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é).
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).
8000 → manager:80 : OK, healthcheck et connexion
admin vérifiés.curl -fsSL https://genesiscreativeapp.github.io/.../install.sh | sh
depuis GitHub Pages : le fichier est bien servi (vérifié), mais pas encore
exécuté de bout en bout depuis cette URL sur un serveur réel.uninstall.sh, avec et sans PURGE=1) : à tester en
conditions réelles sur un serveur, pas encore fait.curl | bash publicghcr.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.Caddyfile et .env (WILDCARD_PLATFORM_DOMAIN,
APP_URL) à la main puis docker compose restart caddy manager.| 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).