Deploy della Documentazione su Coolify con MkDocs e CodeCommit¶
Questa guida descrive come configurare e pubblicare il portale della documentazione di mdm_docs su Coolify dev (https://coolify.dev.bsqdev.uk), sincronizzato automaticamente con AWS CodeCommit tramite EventBridge.
1. Architettura del Servizio¶
flowchart LR
DEV[git push su CodeCommit<br/>repository mdm_docs] --> EB[AWS EventBridge<br/>regola mdm-docs-deploy-dev]
EB -- "POST /api/v1/deploy" --> AD[API Destination<br/>qalarm-coolify-dev-deploy]
AD --> CO[Coolify Dev<br/>coolify.dev.bsqdev.uk]
CO -- "git clone & docker build" --> MK[Container Nginx + MkDocs<br/>docs.dev.bsqdev.uk]
MK -- "Serve HTML & Mermaid" --> BROWSER[Sistemisti e Operatori]
Hold "Ctrl" to enable pan & zoom
- Motore Documentale: Material for MkDocs (configurato in
mkdocs.yml), con supporto nativo per diagrammi Mermaid, ricerca istantanea, tema Dark/Light e navigazione a schede. - Runtime:
Dockerfilemulti-stage: compila i Markdown in file statici HTML/SVG e li serve con un'immaginenginx:alpineultra-leggera (< 15 MB di RAM). - Dominio e SSL: Gestiti automaticamente dal reverse proxy Traefik di Coolify con certificato Let's Encrypt gratuito.
- Aggiornamento Automatico: A ogni
git pushsul branchmain, EventBridge notifica Coolify che ricostruisce il container e aggiorna il sito live senza intervento manuale.
2. Passo 1: Configurazione dell'Applicazione su Coolify¶
- Accedere al pannello Coolify dev:
https://coolify.dev.bsqdev.uk. - Selezionare il progetto (es. MDM o creare un nuovo progetto/ambiente dedicato).
- Cliccare su + New Resource → Git Repository (Private / Custom).
- Impostazioni Repository:
- Se si usa la chiave SSH CodeCommit:
ssh://<SSH_KEY_ID>@git-codecommit.eu-west-1.amazonaws.com/v1/repos/mdm_docs - Se si usano le credenziali HTTPS Git:
https://<GIT_USER>:<GIT_PASSWORD>@git-codecommit.eu-west-1.amazonaws.com/v1/repos/mdm_docs - Branch:
main. - Configurazione di Build:
- Build Pack: Selezionare
Dockerfile(Coolify userà ilDockerfilepresente nella radice dimdm_docs). - Port:
3000. IlDockerfilecopianginx.confnella configurazione di Nginx: il server ascolta sulla porta3000sia su IPv4 sia su IPv6, in accordo conEXPOSE 3000e con il setup Coolify esistente. - Domains (FQDN): Inserire il dominio desiderato, ad esempio
https://docs.dev.bsqdev.uk. - Cliccare su Deploy per eseguire la prima compilazione.
- Al termine, copiare l'UUID dell'applicazione (visibile nella barra degli indirizzi del browser, es.
https://coolify.dev.bsqdev.uk/.../application/<UUID>).
3. Passo 2: Configurazione del Trigger Automatico su AWS (EventBridge)¶
Per fare in modo che a ogni git push su CodeCommit la documentazione si aggiorni da sola, si riusa l'API Destination qalarm-coolify-dev-deploy già attiva su AWS (account 407138933921, regione eu-west-1).
A. Creazione della Regola EventBridge¶
Eseguire da terminale con AWS CLI:
aws events put-rule \
--name mdm-docs-deploy-dev \
--description "Deploy automatico di mdm_docs su Coolify dev ad ogni push su main" \
--region eu-west-1 \
--event-pattern '{
"source": ["aws.codecommit"],
"detail-type": ["CodeCommit Repository State Change"],
"resources": ["arn:aws:codecommit:eu-west-1:407138933921:mdm_docs"],
"detail": {
"event": ["referenceUpdated", "referenceCreated"],
"referenceType": ["branch"],
"referenceName": ["main"]
}
}'
B. Collegamento del Target con l'UUID di Coolify¶
Creare il file temporaneo target-docs.json (sostituire <UUID_RISORSA_COOLIFY> con l'UUID ottenuto al Passo 1):
[
{
"Id": "coolify-docs-deploy",
"Arn": "arn:aws:events:eu-west-1:407138933921:api-destination/qalarm-coolify-dev-deploy/37a21a64-c726-42b5-b600-2f28a4141d42",
"RoleArn": "arn:aws:iam::407138933921:role/service-role/Amazon_EventBridge_Invoke_Api_Destination_1696033803",
"Input": "{\"uuid\": \"<UUID_RISORSA_COOLIFY>\", \"force\": false}"
}
]
Applicare il target alla regola:
aws events put-targets \
--rule mdm-docs-deploy-dev \
--region eu-west-1 \
--targets file://target-docs.json
4. Verifica e Collaudo¶
- Eseguire un commit e push sul branch
maindimdm_docs: - In Coolify, nella schermata Deployments della risorsa, apparirà automaticamente il nuovo job di build.
- Al termine (circa 30-45 secondi), aprire l'URL configurato (es.
https://docs.dev.bsqdev.uk) per verificare la navigazione a schede, i diagrammi Mermaid renderizzati e la ricerca full-text.