Ciele

Installazione

Avvia l'attuale deployment Docker Compose su un singolo host.

No terminal? Use the desktop app

Ciele Desktop performs every step on this page for you, including generating the secrets and starting the stack. It needs only Docker Desktop. This page is the server path.

Requisiti

  • Installa Git.
  • Installa Docker con Docker Compose.
  • Riserva spazio su disco sufficiente per le immagini, per Postgres e per i file caricati.
  • Riserva più memoria quando abiliti i worker opzionali.

Un solo comando

Il programma di installazione esegue tutti i passaggi descritti nella sezione successiva: verifica i prerequisiti, recupera il codice sorgente in ./ciele ed esegue bootstrap.sh.

curl -fsSL https://ciele.app/install.sh | sh

Passa i flag di bootstrap attraverso la pipe con -s -- e imposta CIELE_DIR per scegliere la directory di checkout oppure CIELE_REF per installare un tag di release:

curl -fsSL https://ciele.app/install.sh | sh -s -- --seed

Il programma di installazione non elimina mai nulla: se la directory di destinazione esiste e non è un checkout di Ciele, si interrompe e te lo comunica.

Su un Mac senza Docker, l'installer non si interrompe in caso di errore. Apre Ciele Desktop, scaricando prima la release se l'app non è presente. La configurazione guidata disponibile lì collega Docker Desktop e avvia lo stesso stack descritto in questa pagina. Su Linux l'installer rifiuta, perché non c'è alcuna app desktop a cui affidare il lavoro.

Esegui il bootstrap dello stack

Per eseguire gli stessi passaggi manualmente:

git clone https://github.com/MattiaIppoliti/ciele.git
cd ciele
./deploy/bootstrap.sh

Lo script genera i segreti necessari in deploy/.env. Quindi compila e avvia i profili predefiniti.

Apri http://localhost:3000 dopo che i servizi sono diventati operativi. Il primo account diventa il proprietario dell'organizzazione.

Usa ./deploy/bootstrap.sh --seed per aggiungere contenuti dimostrativi sottoposti a sanitizzazione.

Esegui le immagini pubblicate anziché compilarle

La compilazione di app, migrate e cron dal checkout richiede molto tempo e l'intero repository. Ogni release pubblica anche questi tre elementi come immagini container:

./deploy/bootstrap.sh --images v1.0.62

Il comando scrive due impostazioni in deploy/.env ed esegue il pull anziché la compilazione:

COMPOSE_FILE=docker-compose.yml:docker-compose.images.yml
CIELE_IMAGE_TAG=v1.0.62

Poiché entrambi risiedono in deploy/.env, un successivo docker compose up -d in quella directory rimane in modalità immagine. Cancella entrambe le impostazioni per tornare alla compilazione dal codice sorgente. Imposta CIELE_IMAGE_REGISTRY per utilizzare un mirror o la tua ricostruzione personalizzata.

I profili, l'ordine dei servizi e il livello del database sono identici in entrambe le modalità. Cambia solo l'origine di questi tre servizi.

Recreate the container after changing the public URL

The published application image resolves SUPABASE_PUBLIC_URL once, when the container starts, because Next.js inlines that class of value at build time. Run docker compose up -d to recreate the container after you change it. A restart alone keeps the previous value.

Profili predefiniti

ProfileDefaultServices
dbSìPostgres, pgvector, autenticazione, API dati, storage e gateway.
migrateSìMigrazioni in sospeso e storage bucket richiesti.
appSìAdministrator console, widget runtime e API v1.
cronSìJob pianificati dell'applicazione.
workersNoServizio di crawling con rendering JavaScript.
studioNoInterfaccia di amministrazione del database.

Esamina lo stack

Il gateway aggiorna gli indirizzi dei servizi tramite Docker DNS. Dopo la ricreazione di un servizio, le richieste possono temporaneamente fallire durante la risoluzione del suo nuovo indirizzo. Il gateway si ripristina senza necessità di riavvio. La readiness di PostgreSQL utilizza TCP, pertanto i servizi attendono fino al completamento dell'inizializzazione del database su una nuova installazione. Il migration runner attende inoltre che l'autenticazione e lo storage completino le rispettive migrazioni prima di applicare lo schema di Ciele.

docker compose -f deploy/docker-compose.yml ps
docker compose -f deploy/docker-compose.yml logs -f app

La configurazione predefinita pubblica l'applicazione sulla porta 3000 e il gateway del database sulla porta 8000. Entrambi si associano a 127.0.0.1, quindi nulla è raggiungibile da un'altra macchina finché non metti un reverse proxy a monte. Imposta BIND_ADDRESS=0.0.0.0 in deploy/.env per pubblicarli invece su ogni interfaccia. Postgres non viene mai pubblicato. La console del database (Studio) rimane sempre su loopback. Accedi tramite un tunnel SSH.

Add TLS before public use

The Compose stack serves plain HTTP. Put a trusted reverse proxy in front of every public origin.

L'applicazione esegue questo controllo all'avvio. Legge PUBLIC_URL, CIELE_PUBLIC_ORIGIN e NEXT_PUBLIC_APP_URL. Quando una di queste inizia con http:// e non punta alla macchina locale, l'applicazione non si avvia. Il log del container indica il nome della variabile. Il valore predefinito PUBLIC_URL=http://localhost:3000 supera il controllo. Per eseguire intenzionalmente su HTTP non protetto, ad esempio su una rete privata, imposta CIELE_ALLOW_INSECURE_HTTP=1 in deploy/.env.

Una volta che esiste un'origine pubblica, imposta CIELE_PUBLIC_ORIGIN in deploy/.env su quell'URL HTTPS. I link che vengono inseriti in un'email, come la conferma dell'iscrizione alla newsletter, vengono generati a partire da questo valore. Senza di esso, l'applicazione rifiuta di inviare quelle email. Non crea un link a partire dall'header Host della richiesta.

In questa pagina