
Un repository per generare e mantenere automaticamente aggiornata una serie di immagini Docker tramite GitHub Actions.
RAUDI (Regularly and Automatically Updated Docker Images) genera e mantiene aggiornate automaticamente una serie di Immagini Docker tramite GitHub Actions per strumenti non forniti dagli sviluppatori.
RAUDI è ciò che ti salverà dal creare e gestire manualmente molte Immagini Docker. Ogni volta che un software viene aggiornato, devi aggiornare l'Immagine Docker per utilizzare le ultime funzionalità, le dipendenze non funzionano più.
È disordinato e richiede tempo.
Non preoccuparti più, ci pensiamo noi.
Puoi fare il fork di questo repository e utilizzare tu stesso il Workflow GitHub, oppure usarlo localmente (e gestirne l'esecuzione come preferisci).
Se vuoi fare il fork di questo repository devi anche impostare alcuni secret per poter inviare le tue immagini sul tuo account Docker Hub personale. Due secret GitHub devono essere impostati:
Dopo aver impostato questi secret, devi modificare la variabile organization impostata nel file tools/main.py poiché è configurata per inviare su Docker Hub per SecSI.
Questo è tutto ragazzi: vai su Action, abilitalo per il tuo repository forkato, aspetta fino a mezzanotte, e il Workflow farà il lavoro pesante!
Questo repository può anche essere eseguito localmente. I requisiti da soddisfare sono i seguenti:
Ecco la documentazione per lavorare con BuildX: https://docs.docker.com/buildx/working-with-buildx/
La fase di setup è abbastanza semplice, hai solo bisogno dei seguenti comandi:
git clone https://github.com/cybersecsi/RAUDI
cd RAUDI
pip install -r requirements.txt
Sei pronto per iniziare!
Per eseguire il test devi installare pytest con il comando pip install pytest (non è in requirements.txt poiché è necessario solo per scopi di test) e poi puoi eseguire:
pytest -s
oppure
python -m pytest -s
per eseguire i test.
RAUDI può costruire e inviare tutti gli strumenti presenti nella directory tools. Ci sono diverse opzioni che possono essere utilizzate durante l'esecuzione. Prima di usarlo localmente dovresti creare un file .env (puoi semplicemente copiare il file .env.sample) e aggiungere il tuo GitHub Personal Access Token per evitare il Rate Limiting. Per gli utenti non autenticati GitHub permette fino a 60 richieste all'ora, mentre gli utenti autenticati possono effettuare fino a 15.000 richieste all'ora. Per questo motivo ti consigliamo di aggiungerlo! Puoi anche creare un personal access token senza alcun scope poiché tutto ciò che facciamo è leggere alcune informazioni per ogni repository GitHub.
In questa modalità RAUDI tenta di costruire tutti gli strumenti se necessario. Il comando per eseguirlo è semplicemente:
python3 ./raudi.py --all
In questa modalità RAUDI tenta di costruire solo lo strumento specificato. Il comando in questo caso è:
python3 ./raudi.py --single <tool_name>
tool_name DEVE essere il nome della directory all'interno della cartella tools.
Poiché il parametro tests è stato aggiunto alla struttura di configurazione dello strumento, può essere utile per verificare se i comandi inseriti restituiscono un codice di stato 0. Il comando per testare uno strumento specifico è:
python3 ./raudi.py --test <tool_name>
tool_name DEVE essere il nome della directory all'interno della cartella tools.
Se vuoi conoscere gli strumenti disponibili puoi eseguire questo comando:
python3 ./raudi.py --list
Se vuoi aggiungere rapidamente una nuova cartella strumento partendo da uno dei template disponibili, puoi eseguire questo comando:
python3 ./raudi.py --bootstrap <new_tool_name>
| Opzione | Descrizione | Valore Predefinito |
|---|---|---|
| --push | Se inviare automaticamente a Docker Hub | False |
| --remote | Se controllare su Docker Hub invece che su Docker locale prima della build | False |
| --force | Se costruire o meno se è stata trovata un'immagine con lo stesso nome tag | False |
Questa è l'attuale lista di strumenti che sono stati aggiunti. Sono tutti strumenti che non hanno un'Immagine Docker ufficiale fornita dallo sviluppatore: