Compilare dai sorgenti
Il risultato della compilazione è un solo file eseguibile, statico (nessuna dipendenza di sistema, niente CGO), che contiene server, API, pannello e pagina pubblica.
Prerequisiti
Sezione intitolata “Prerequisiti”| Strumento | Versione |
|---|---|
| Go | 1.27 o successiva |
| Node.js e npm | Node 22 o successivo, npm 10 o successivo |
| make | qualsiasi versione recente |
| git | per clonare il repository |
In alternativa usa il devcontainer incluso nel repository (VS Code, GitHub Codespaces): ha già tutto.
Compilare
Sezione intitolata “Compilare”-
Clona il repository:
Finestra del terminale git clone https://github.com/coste360/arenile.gitcd arenile -
Installa le dipendenze (una volta sola):
Finestra del terminale make setup -
Compila le due applicazioni web e il binario:
Finestra del terminale make buildmake buildcompila il pannello e la pagina pubblica, li copia dentro il binario (internal/http/static) e producebin/arenile. -
Verifica:
Finestra del terminale ./bin/arenile version
Compilare per un’altra architettura
Sezione intitolata “Compilare per un’altra architettura”Il binario è puro Go: puoi compilarlo per un Raspberry Pi o un server arm64 da qualsiasi computer, dopo aver
compilato le applicazioni web con make web-build:
make web-buildCGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -trimpath \ -ldflags "-s -w -X main.version=dev" -o arenile-arm64 ./cmd/arenileCostruire l’immagine Docker in locale
Sezione intitolata “Costruire l’immagine Docker in locale”make docker # produce ghcr.io/coste360/arenile:devEseguire il binario
Sezione intitolata “Eseguire il binario”ARENILE_DEV=true ARENILE_DATA_DIR=./data ./bin/arenile serveIn modalità sviluppo ARENILE_BASE_URL è facoltativa e, se manca ARENILE_SECRET_KEY, una chiave viene
generata, salvata in ./data/dev-secret.key e mostrata una volta all’avvio. Mai in produzione.
[Unit]Description=ArenileAfter=network-online.target
[Service]User=arenileEnvironmentFile=/etc/arenile/arenile.envExecStart=/usr/local/bin/arenile serveRestart=on-failureNoNewPrivileges=trueProtectSystem=strictReadWritePaths=/var/lib/arenile
[Install]WantedBy=multi-user.targetNel file /etc/arenile/arenile.env imposta almeno ARENILE_BASE_URL, ARENILE_SECRET_KEY e
ARENILE_DATA_DIR=/var/lib/arenile (permessi 600). Tutte le variabili sono in
Configurazione.
Comandi del binario
Sezione intitolata “Comandi del binario”arenile serve [--dev] avvia il server (migrazioni automatiche con ARENILE_AUTO_MIGRATE=true)arenile migrate up|status applica o mostra lo stato delle migrazioniarenile admin create --email E --name N --org O [--password P] crea un utente owner (password da ARENILE_ADMIN_PASSWORD o richiesta)arenile seed demo carica lo stabilimento dimostrativoarenile backup --out FILE backup consistente (SQLite)arenile restore --in FILE ripristina un backup (server fermo)arenile version mostra la versioneLa configurazione si legge sempre dalle variabili d’ambiente ARENILE_* e DATABASE_URL.

