Installation
Starten Sie die aktuelle Single-Host-Bereitstellung mit Docker Compose.
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.
Voraussetzungen
- Installieren Sie Git.
- Installieren Sie Docker zusammen mit Docker Compose.
- Reservieren Sie ausreichend Speicherplatz für Images, Postgres und hochgeladene Dateien.
- Reservieren Sie mehr Arbeitsspeicher, wenn Sie die optionalen Worker aktivieren.
Ein einziger Befehl
Das Installationsprogramm führt jeden Schritt im nächsten Abschnitt aus: Es
überprüft die Voraussetzungen, holt den Quellcode in ./ciele und führt
bootstrap.sh aus.
curl -fsSL https://ciele.app/install.sh | shÜbergeben Sie Bootstrap-Flags über die Pipe mit -s -- und setzen Sie
CIELE_DIR, um das Checkout-Verzeichnis auszuwählen, oder CIELE_REF, um ein
Release-Tag zu installieren:
curl -fsSL https://ciele.app/install.sh | sh -s -- --seedDas Installationsprogramm löscht niemals etwas: Wenn das Zielverzeichnis existiert und kein Ciele-Checkout ist, bricht es ab und informiert Sie darüber.
Auf einem Mac ohne Docker hält der Installer bei einem Fehler nicht an. Es öffnet Ciele Desktop und lädt zunächst die Release-Version herunter, wenn die App nicht vorhanden ist. Die dortige geführte Einrichtung verknüpft Docker Desktop und startet denselben Stack, der auf dieser Seite beschrieben wird. Unter Linux verweigert das Installationsprogramm die Ausführung, da es keine Desktop-App gibt, an die die Aufgabe übergeben werden kann.
Den Stack bootstrappen
Um dieselben Schritte manuell durchzuführen:
git clone https://github.com/MattiaIppoliti/ciele.git
cd ciele
./deploy/bootstrap.shDas Skript generiert die erforderlichen Secrets in deploy/.env. Anschließend
werden die Standardprofile erstellt und gestartet.
Öffnen Sie http://localhost:3000, nachdem die Services den Status „healthy“ erreicht haben. Das erste Konto wird zum Organization Owner.
Verwenden Sie ./deploy/bootstrap.sh --seed, um bereinigte Demo-Inhalte
hinzuzufügen.
Veröffentlichte Images ausführen, statt sie zu bauen
Das Builden von app, migrate und cron aus dem Checkout nimmt erheblich
Zeit in Anspruch und erfordert das vollständige Repository. Jedes Release
veröffentlicht diese drei Elemente auch als Container-Images:
./deploy/bootstrap.sh --images v1.0.62Der Befehl schreibt zwei Einstellungen in deploy/.env und führt einen Pull
statt eines Builds durch:
COMPOSE_FILE=docker-compose.yml:docker-compose.images.yml
CIELE_IMAGE_TAG=v1.0.62Da sich beide in deploy/.env befinden, bleibt ein späterer Aufruf von
docker compose up -d in diesem Verzeichnis im Image-Modus. Löschen Sie beide
Einstellungen, um wieder zum Builden aus dem Quellcode zurückzukehren. Setzen
Sie CIELE_IMAGE_REGISTRY, um einen Mirror oder Ihren eigenen Rebuild zu
verwenden.
Profiles, Service Ordering und die Database Layer sind in beiden Modi identisch. Es ändert sich lediglich die Herkunft dieser drei Services.
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.
Standardprofile
| Profile | Default | Services |
|---|---|---|
db | Ja | Postgres, pgvector, Authentifizierung, Data API, Speicher und Gateway. |
migrate | Ja | Ausstehende Migrationen und erforderliche Storage Buckets. |
app | Ja | Administrator console, Widget-Runtime und API v1. |
cron | Ja | Geplante Anwendungsjobs. |
workers | Nein | JavaScript-Rendering-Crawl-Service. |
studio | Nein | Database administration interface. |
Den Stack untersuchen
Das Gateway aktualisiert Serviceadressen über Docker DNS. Nachdem ein Service neu erstellt wurde, können Anfragen kurzzeitig fehlschlagen, während seine neue Adresse aufgelöst wird. Das Gateway erholt sich ohne Neustart. Die PostgreSQL-Bereitschaft nutzt TCP, sodass Services warten, bis die Datenbankinitialisierung bei einer Neuinstallation abgeschlossen ist. Der Migration Runner wartet ebenfalls darauf, dass die Authentication und der Storage ihre eigenen Migrationen abschließen, bevor er das Ciele-Schema anwendet.
docker compose -f deploy/docker-compose.yml ps
docker compose -f deploy/docker-compose.yml logs -f appDie Standardkonfiguration veröffentlicht die Anwendung auf Port 3000 und das
Datenbank-Gateway auf Port 8000. Beide binden an 127.0.0.1, sodass von einem
anderen Rechner aus nichts erreichbar ist, bis Sie einen Reverse Proxy
vorgeschaltet haben. Setzen Sie BIND_ADDRESS=0.0.0.0 in deploy/.env, um sie
stattdessen auf jeder Schnittstelle zu veröffentlichen. Postgres wird niemals
veröffentlicht. Die Datenbankkonsole (Studio) bleibt stets auf Loopback. Greifen
Sie über einen SSH-Tunnel darauf zu.
Add TLS before public use
The Compose stack serves plain HTTP. Put a trusted reverse proxy in front of every public origin.
Die Anwendung überprüft dies beim Start. Es liest PUBLIC_URL,
CIELE_PUBLIC_ORIGIN und NEXT_PUBLIC_APP_URL. Wenn eine dieser Variablen mit
http:// beginnt und nicht auf den lokalen Rechner verweist, startet die
Anwendung nicht. Das Container-Log nennt die Variable. Der Standardwert
PUBLIC_URL=http://localhost:3000 besteht die Prüfung. Um absichtlich über
unverschlüsseltes HTTP zu arbeiten, beispielsweise in einem privaten Netzwerk,
setzen Sie CIELE_ALLOW_INSECURE_HTTP=1 in deploy/.env.
Sobald ein öffentlicher Ursprung vorhanden ist, setzen Sie CIELE_PUBLIC_ORIGIN
in deploy/.env auf diese HTTPS-URL. Links, die in eine E-Mail eingefügt
werden, wie etwa die Newsletter-Bestätigung, werden aus diesem Wert generiert.
Ohne diesen Wert verweigert die Anwendung das Versenden dieser E-Mails. Es wird
kein Link aus dem Host-Header der Anfrage erstellt.