genesis-installer

Installeur Excelsis

install.sh / uninstall.sh sont autonomes : tout le contenu nécessaire (docker-compose.yml, Caddyfile, .env) est généré par le script lui-même, sans dépendre du dépôt source (privé).

Hébergement public

Poussé vers le sous-dossier excelsis/ de genesiscreativeapp/genesis-installer (repo public partagé entre plusieurs projets — le code source de chacun reste privé), servi par GitHub Pages :

curl -fsSL https://genesiscreativeapp.github.io/genesis-installer/excelsis/install.sh | sudo sh
curl -fsSL https://genesiscreativeapp.github.io/genesis-installer/excelsis/uninstall.sh | sudo sh

Les fichiers de ce dossier (installer/) sont la source de vérité — après toute modification, recopier install.sh/uninstall.sh vers ce repo public et pousser (pas de CI de sync automatique pour l’instant).

Testé

Ce qu’il reste à faire avant un vrai curl | bash public

  1. Rendre les images GHCR publiques (ghcr.io/genesiscreativeapp/excelsis-*) — actuellement privées. Sans ça, install.sh échoue sur docker compose pull pour quiconque n’a pas de token GitHub. Réglage dans GitHub → org genesiscreativeapp → Packages → chaque package → Package settings → Change visibility → Public.
  2. L’écran “Réglages → Domaine” (configurer le domaine/wildcard et déclencher Let’s Encrypt via Caddy après l’install) n’existe pas encore — c’est la suite logique, dans une passe séparée. En attendant, un utilisateur avancé peut éditer Caddyfile et .env (WILDCARD_PLATFORM_DOMAIN, APP_URL) à la main puis docker compose restart caddy manager.

Variables d’environnement (install.sh)

Variable Défaut Usage
INSTALL_DIR /opt/excelsis Où tout est installé
IMAGE_TAG latest Tag des images GHCR à utiliser
ADMIN_EMAIL admin@genesiscreativeapp.local E-mail du premier compte
BOOTSTRAP_PORT 8000 Port d’accès initial (avant domaine)

Les autres secrets (mots de passe Postgres/PgBouncer/Garage, mot de passe admin) sont générés aléatoirement et affichés une seule fois à la fin de l’installation — ils sont aussi dans $INSTALL_DIR/.env (chmod 600).