Ciele

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 -- --seed

Das 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.sh

Das 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.62

Der 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.62

Da 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

ProfileDefaultServices
dbJaPostgres, pgvector, Authentifizierung, Data API, Speicher und Gateway.
migrateJaAusstehende Migrationen und erforderliche Storage Buckets.
appJaAdministrator console, Widget-Runtime und API v1.
cronJaGeplante Anwendungsjobs.
workersNeinJavaScript-Rendering-Crawl-Service.
studioNeinDatabase 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 app

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

Auf dieser Seite