From 033f25700e5f526d5c44bd7cc37198f67ce9ae79 Mon Sep 17 00:00:00 2001
From: Quentin Duchemin <quentinduchemin@tuta.io>
Date: Tue, 9 Jun 2020 23:14:30 +0200
Subject: [PATCH] [PicaPlume] Auto-build of DATABASE_URL for easy use

---
 pica-plume/README.md                     |  8 ++++++--
 pica-plume/docker-compose.yml            |  1 -
 pica-plume/entrypoint.sh                 | 12 +++++++++++-
 pica-plume/secrets/plume.secrets.example |  2 --
 4 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/pica-plume/README.md b/pica-plume/README.md
index 09c22996..53ef5988 100644
--- a/pica-plume/README.md
+++ b/pica-plume/README.md
@@ -22,14 +22,18 @@ Vérifier que les vulnérabilités de [clair-whitelist.yml](./clair-whitelist.ym
 
 Copier le fichier `plume.secrets.example` dans `plume.secrets` et `plume_db.secrets.example` dans `plume_db.secrets` et remplacez les valeurs par des mots de passe de production.
 
-**Attention** : `DATABASE_URL` doit refléter les valeurs `POSTGRES_*`.
-
 Lancer :
 
 ```bash
 docker-compose up -d
 ```
 
+### Évolution de l'image
+
+Toutes les variables d'environnement ajoutées dans le [docker-compose.yml](./docker-compose.yml) à destination de Plume doivent être écrite dans le fichier `/app/.env` : cette tâche est réalisée dans le ficheir [entrypoint.sh](./entrypoint.sh).
+
+On pourra vérifier les variables configurables dans Plume [sur le fichier d'exemple officiel](https://github.com/Plume-org/Plume/blob/master/.env.sample) (à adapter à la version courante).
+
 ### Documentation générale
 
 Vous pouvez trouver la documentation officielle ici : https://docs.joinplu.me/
diff --git a/pica-plume/docker-compose.yml b/pica-plume/docker-compose.yml
index 7d91840a..f1c93e51 100644
--- a/pica-plume/docker-compose.yml
+++ b/pica-plume/docker-compose.yml
@@ -25,7 +25,6 @@ services:
       - ./secrets/plume.secrets
     environment:
       BASE_URL: "blog.picasoft.net"
-      URL: "blog.picasoft.net"
       NAME: "Picablog"
       ADMIN_EMAIL: picasoft@assos.utc.fr
       DB_HOST: "plumedb"
diff --git a/pica-plume/entrypoint.sh b/pica-plume/entrypoint.sh
index c9115d90..25a8c6d2 100755
--- a/pica-plume/entrypoint.sh
+++ b/pica-plume/entrypoint.sh
@@ -51,7 +51,17 @@ if [ "${PLUME_VERSION}" != "$(cat ${FIRSTLAUNCH_PATH})" ]; then
    plm migration run
 fi
 
-# Now write the version if the file
+# Now write the current version into the file
 echo "${PLUME_VERSION}" > ${FIRSTLAUNCH_PATH}
+
+# Create the .env file used by Plume
+echo "Create environment file for Plume..."
+echo "BASE_URL=${BASE_URL}" > /app/.env
+echo "MIGRATION_DIRECTORY=${MIGRATION_DIRECTORY}" >> /app/.env
+echo "ROCKET_SECRET_KEY=${ROCKET_SECRET_KEY}" >> /app/.env
+echo "ROCKET_PORT=${ROCKET_PORT}" >> /app/.env
+echo "ROCKET_ADDRESS=${ROCKET_ADDRESS}" >> /app/.env
+echo "DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DB_HOST}:5432/${POSTGRES_DB}" >> /app/.env
+
 echo "Launching Plume..."
 exec "$@"
diff --git a/pica-plume/secrets/plume.secrets.example b/pica-plume/secrets/plume.secrets.example
index 553b9bc9..0774b6a1 100644
--- a/pica-plume/secrets/plume.secrets.example
+++ b/pica-plume/secrets/plume.secrets.example
@@ -10,5 +10,3 @@ MAIL_SERVER=smtp.example.org
 # Generate one with openssl rand -base64 32
 # DO NOT USE THIS VALUE IN PRODUCTION !!!!
 ROCKET_SECRET_KEY=p7IgOzStZ/9F65OeHMwUMfHVa4yKOB6xcBqXzV5Lfp0=
-
-DATABASE_URL=postgres://plume:passw0rd@plumedb:5432/plume
-- 
GitLab