
Un repositorio para generar automáticamente y mantener actualizada una serie de imágenes Docker a través de GitHub Actions.
RAUDI (Regularly and Automatically Updated Docker Images) genera y mantiene actualizadas automáticamente una serie de imágenes Docker mediante GitHub Actions para herramientas que no son proporcionadas por los desarrolladores.
RAUDI es lo que te ahorrará la tarea de crear y gestionar muchas imágenes Docker manualmente. Cada vez que un software se actualiza, necesitas actualizar la imagen Docker si quieres usar las últimas funciones, las dependencias ya no funcionan.
Esto es desordenado y consume mucho tiempo.
No te preocupes más, nosotros te cubrimos.
Puedes hacer un fork de este repositorio y usar el flujo de trabajo de GitHub tú mismo, o usarlo localmente (y gestionar su ejecución como prefieras).
Si deseas hacer un fork de este repositorio, también debes configurar algunos secretos para poder subir tus imágenes a tu cuenta personal de Docker Hub. Dos secretos de GitHub deben configurarse:
Después de configurar esos secretos, debes editar la variable organization establecida en el archivo tools/main.py, ya que está configurada para subir a Docker Hub para SecSI.
Eso es todo: ve a Action, actívalo para tu repositorio bifurcado, espera hasta la medianoche, ¡y el flujo de trabajo hará el trabajo pesado!
Este repositorio también se puede ejecutar localmente. Los requisitos que se deben cumplir son los siguientes:
Aquí está la documentación para trabajar con BuildX: https://docs.docker.com/buildx/working-with-buildx/
La fase de configuración es bastante sencilla, solo necesitas los siguientes comandos:
git clone https://github.com/cybersecsi/RAUDI
cd RAUDI
pip install -r requirements.txt
¡Estás listo para empezar!
Para ejecutar la prueba necesitas instalar pytest con el comando pip install pytest (no está en requirements.txt ya que solo se necesita con fines de prueba) y luego puedes ejecutar:
pytest -s
o
python -m pytest -s
para ejecutar las pruebas.
RAUDI puede construir y subir todas las herramientas que se colocan en el directorio tools. Hay diferentes opciones que se pueden usar al ejecutarlo. Antes de usarlo localmente, debes crear un archivo .env (puedes copiar el archivo .env.sample) y agregar tu token de acceso personal de GitHub para evitar la limitación de tasa. Para usuarios no autenticados, GitHub permite hasta 60 solicitudes por hora, mientras que los usuarios autenticados pueden realizar hasta 15.000 solicitudes por hora. ¡Por esta razón te recomendamos que lo agregues! También puedes crear un token de acceso personal sin ningún ámbito, ya que todo lo que hacemos es leer información de cada repositorio de GitHub.
En este modo, RAUDI intenta construir todas las herramientas si es necesario. El comando para ejecutarlo es simplemente:
python3 ./raudi.py --all
En este modo, RAUDI intenta construir solo la herramienta especificada. El comando en este caso es:
python3 ./raudi.py --single <tool_name>
tool_name DEBE ser el nombre del directorio dentro de la carpeta tools.
Dado que el parámetro tests se ha añadido a la estructura de configuración de la herramienta, puede ser útil para probar si los comandos insertados devuelven un código de estado 0. El comando para probar una herramienta específica es:
python3 ./raudi.py --test <tool_name>
tool_name DEBE ser el nombre del directorio dentro de la carpeta tools.
Si quieres conocer las herramientas disponibles, puedes ejecutar este comando:
python3 ./raudi.py --list
Si quieres agregar rápidamente una nueva carpeta de herramienta a partir de una de las plantillas disponibles, puedes ejecutar este comando:
python3 ./raudi.py --bootstrap <new_tool_name>
| Opción | Descripción | Valor predeterminado |
|---|---|---|
| --push | Si se sube automáticamente a Docker Hub | False |
| --remote | Si se verifica en Docker Hub en lugar de Docker local antes de construir | False |
| --force | Si se construye o no si se ha encontrado una imagen con el mismo nombre de etiqueta | False |
Esta es la lista actual de herramientas que se han añadido. Son todas aquellas herramientas que no tienen una imagen Docker oficial proporcionada por el desarrollador: