Ciele

Installazione

Avvia l'attuale distribuzione Docker Compose a host singolo.

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 immagini, Postgres e file caricati.
  • Riserva più memoria quando abiliti i worker opzionali.

Un comando

Il programma di installazione esegue tutti i passaggi della sezione successiva: verifica i prerequisiti, recupera il 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 o 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 ferma e te lo comunica.

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

Avvia lo 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 integri. Il primo account diventa il proprietario dell'organizzazione.

Usa ./deploy/bootstrap.sh --seed per aggiungere contenuti dimostrativi sanitizzati.

Esegui le immagini pubblicate invece di compilarle

La compilazione di app, migrate e cron dal checkout richiede molto tempo e necessita del repository completo. Ogni release pubblica anche questi tre come immagini container:

./deploy/bootstrap.sh --images v0.4.0

Il comando scrive due impostazioni in deploy/.env ed esegue il pull invece di compilare:

COMPOSE_FILE=docker-compose.yml:docker-compose.images.yml
CIELE_IMAGE_TAG=v0.4.0

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 a compilare dal sorgente. Imposta CIELE_IMAGE_REGISTRY in modo che utilizzi un mirror o la tua ricostruzione.

I profili, l'ordinamento 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

ProfiloPredefinitoServizi
dbPostgres, pgvector, autenticazione, API dati, archiviazione e gateway.
migrateMigrazioni in sospeso e bucket di archiviazione richiesti.
appConsole di amministrazione, runtime dei widget e API v1.
cronJob applicativi pianificati.
workersNoServizi di recupero dei grafi e di crawling con rendering JavaScript.
studioNoInterfaccia di amministrazione del database.

Ispeziona lo stack

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 collegano a 127.0.0.1, quindi non è possibile accedere a nulla da un'altra macchina finché non si inserisce un proxy inverso davanti. Imposta invece BIND_ADDRESS=0.0.0.0 in deploy/.env per pubblicarli 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.

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'e-mail, come la conferma della newsletter, vengono generati a partire da questo valore. Senza di esso, l'applicazione si rifiuta di inviare quelle e-mail. Non crea un link dall'intestazione Host della richiesta.

In questa pagina