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 | shPassa 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 -- --seedIl 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.shLo 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.62Il 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.62Poiché 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
| Profile | Default | Services |
|---|---|---|
db | Sì | Postgres, pgvector, autenticazione, API dati, storage e gateway. |
migrate | Sì | Migrazioni in sospeso e storage bucket richiesti. |
app | Sì | Administrator console, widget runtime e API v1. |
cron | Sì | Job pianificati dell'applicazione. |
workers | No | Servizio di crawling con rendering JavaScript. |
studio | No | Interfaccia 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 appLa 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.