Ciele

Installation

Démarrez le déploiement Docker Compose actuel sur un seul hôte.

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.

Prérequis

  • Installez Git.
  • Installez Docker avec Docker Compose.
  • Réservez suffisamment d'espace disque pour les images, Postgres et les fichiers importés.
  • Réservez davantage de mémoire lorsque vous activez les workers optionnels.

Une seule commande

Le programme d'installation exécute toutes les étapes de la section suivante : il vérifie les prérequis, récupère les sources dans ./ciele et exécute bootstrap.sh.

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

Passez les options de bootstrap via le pipe avec -s --, et définissez CIELE_DIR pour choisir le répertoire de checkout ou CIELE_REF pour installer une balise de version :

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

L'installateur ne supprime jamais rien : si le répertoire cible existe et n'est pas un checkout Ciele, il s'arrête et vous en informe.

Sur un Mac sans Docker, l'installeur ne s'arrête pas en cas d'erreur. Il ouvre Ciele Desktop et, si l'application n'est pas présente, télécharge d'abord la version correspondante. La configuration guidée qui s'y trouve associe Docker Desktop et démarre la même pile que celle décrite sur cette page. Sous Linux, l'installateur refuse, car il n'existe pas d'application de bureau à laquelle confier la tâche.

Initialiser la pile

Pour effectuer les mêmes étapes manuellement :

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

Le script génère les secrets requis dans deploy/.env. Il construit ensuite les profils par défaut et les démarre.

Ouvrez http://localhost:3000 une fois que les services sont passés à l'état « healthy ». Le premier compte devient le propriétaire de l'organisation.

Utilisez ./deploy/bootstrap.sh --seed pour ajouter du contenu de démonstration assaini.

Exécuter les images publiées au lieu de les générer

La compilation de app, migrate et cron à partir du checkout prend beaucoup de temps et nécessite le dépôt complet. Chaque version publie également ces trois éléments sous forme d'images de conteneur :

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

La commande écrit deux paramètres dans deploy/.env et effectue un pull au lieu de procéder à la compilation :

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

Étant donné que les deux se trouvent dans deploy/.env, un docker compose up -d ultérieur dans ce répertoire reste en mode image. Effacez les deux paramètres pour revenir à la compilation à partir des sources. Définissez CIELE_IMAGE_REGISTRY pour utiliser un miroir ou votre propre reconstruction.

Les profils, l'ordre des services et la couche de base de données sont identiques dans les deux modes. Seule l'origine de ces trois services change.

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.

Profils par défaut

ProfileDefaultServices
dbOuiPostgres, pgvector, authentification, API de données, stockage et passerelle.
migrateOuiMigrations en attente et buckets de stockage requis.
appOuiAdministrator console, widget runtime et API v1.
cronOuiTâches d'application planifiées.
workersNonService de crawl avec rendu JavaScript.
studioNonInterface d'administration de la base de données.

Inspecter la pile

La passerelle actualise les adresses des services via Docker DNS. Après la recréation d'un service, les requêtes peuvent échouer brièvement pendant la résolution de sa nouvelle adresse. La passerelle se rétablit sans redémarrage. La détection de l'état de disponibilité de PostgreSQL utilise TCP ; ainsi, les services attendent que l'initialisation de la base de données soit terminée sur une nouvelle installation. Le migration runner attend également que l'authentification et le stockage aient terminé leurs propres migrations avant d'appliquer le schéma Ciele.

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

La configuration par défaut publie l'application sur le port 3000 et la passerelle de base de données sur le port 8000. Les deux se lient à 127.0.0.1, de sorte que rien n'est accessible depuis une autre machine tant que vous n'avez pas placé un reverse proxy en amont. Définissez BIND_ADDRESS=0.0.0.0 dans deploy/.env pour les publier sur toutes les interfaces à la place. Postgres n'est jamais publié. La console de base de données (Studio) reste toujours sur loopback. Accédez-y via 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'application vérifie cela au démarrage. Il lit PUBLIC_URL, CIELE_PUBLIC_ORIGIN et NEXT_PUBLIC_APP_URL. Lorsque l'une d'entre elles commence par http:// et ne pointe pas vers la machine locale, l'application ne démarre pas. Le journal du conteneur indique le nom de la variable. La valeur par défaut PUBLIC_URL=http://localhost:3000 réussit la vérification. Pour exécuter délibérément sur HTTP non chiffré, par exemple sur un réseau privé, définissez CIELE_ALLOW_INSECURE_HTTP=1 dans deploy/.env.

Une fois qu'une origine publique existe, définissez CIELE_PUBLIC_ORIGIN dans deploy/.env sur cette URL HTTPS. Les liens qui figurent dans un e-mail, comme la confirmation d'inscription à la newsletter, sont générés à partir de cette valeur. Sans cela, l'application refuse d'envoyer ces e-mails. Il ne génère pas de lien à partir de l'en-tête Host de la requête.

Sur cette page