Salta ai contenuti
ArenileArenile
Coste360.itCoste360.it

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.

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.

  1. Clona il repository:

    Finestra del terminale
    git clone https://github.com/coste360/arenile.git
    cd arenile
  2. Installa le dipendenze (una volta sola):

    Finestra del terminale
    make setup
  3. Compila le due applicazioni web e il binario:

    Finestra del terminale
    make build

    make build compila il pannello e la pagina pubblica, li copia dentro il binario (internal/http/static) e produce bin/arenile.

  4. Verifica:

    Finestra del terminale
    ./bin/arenile version

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:

Finestra del terminale
make web-build
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -trimpath \
-ldflags "-s -w -X main.version=dev" -o arenile-arm64 ./cmd/arenile
Finestra del terminale
make docker # produce ghcr.io/coste360/arenile:dev
Finestra del terminale
ARENILE_DEV=true ARENILE_DATA_DIR=./data ./bin/arenile serve

In 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.

arenile serve [--dev] avvia il server (migrazioni automatiche con ARENILE_AUTO_MIGRATE=true)
arenile migrate up|status applica o mostra lo stato delle migrazioni
arenile 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 dimostrativo
arenile backup --out FILE backup consistente (SQLite)
arenile restore --in FILE ripristina un backup (server fermo)
arenile version mostra la versione

La configurazione si legge sempre dalle variabili d’ambiente ARENILE_* e DATABASE_URL.