Browse Source

add setup script to create all the required env files

also prefix env variables with `CHATONS_` to avoid conflicts
e.g. `MAIL` was conflicting with system env variable (and losing)
Tom Jorquera 7 years ago
parent
commit
213b0c986f
2 changed files with 36 additions and 9 deletions
  1. 9 9
      docker-compose.yml
  2. 27 0
      setup.sh

+ 9 - 9
docker-compose.yml

@@ -15,7 +15,7 @@ services:
     networks:
       - cloud
     volumes:
-      - /srv/nextcloud/db:/var/lib/mysql
+      - ${CHATONS_ROOT_DIR}/nextcloud/db:/var/lib/mysql
 
   cloud_app:
     image: nextcloud
@@ -25,7 +25,7 @@ services:
     ports:
       - "127.0.0.1:9000:80"
     volumes:
-      - /srv/nextcloud/app:/var/www/html
+      - ${CHATONS_ROOT_DIR}/nextcloud/app:/var/www/html
 
   ### SERVICE: git
 
@@ -34,17 +34,17 @@ services:
     restart: always
     environment:
       - GITLAB_OMNIBUS_CONFIG |
-        external_url 'https://git.${DOMAIN}'
-    hostname: 'git.${DOMAIN}' # required by gitlab
+        external_url 'https://git.${CHATONS_DOMAIN}'
+    hostname: 'git.${CHATONS_DOMAIN}' # required by gitlab
     networks:
       - git
     ports:
       - "127.0.0.1:9002:80"
       - "22:22"
     volumes:
-      - /srv/gitlab/app/config:/etc/gitlab
-      - /srv/gitlab/app/logs:/var/log/gitlab
-      - /srv/gitlab/app/data:/var/opt/gitlab
+      - ${CHATONS_ROOT_DIR}/gitlab/app/config:/etc/gitlab
+      - ${CHATONS_ROOT_DIR}/gitlab/app/logs:/var/log/gitlab
+      - ${CHATONS_ROOT_DIR}/gitlab/app/data:/var/opt/gitlab
 
   ### SERVICE: homepage
 
@@ -66,7 +66,7 @@ services:
     networks:
       - pad
     volumes:
-      - /srv/etherpad/db:/var/lib/mysql
+      - ${CHATONS_ROOT_DIR}/etherpad/db:/var/lib/mysql
 
   pad_app:
     build: pad
@@ -81,7 +81,7 @@ services:
     ports:
       - "127.0.0.1:9001:9001"
     volumes:
-      - /srv/etherpad/app:/opt/etherpad-lite/var
+      - ${CHATONS_ROOT_DIR}/etherpad/app:/opt/etherpad-lite/var
 
 ### NETWORKS
 

+ 27 - 0
setup.sh

@@ -0,0 +1,27 @@
+#!/bin/sh
+
+# Set variables
+export CHATONS_ROOT_DIR=/srv
+export CHATONS_DOMAIN=oxyta.net
+export CHATONS_MAIL=services@$CHATONS_DOMAIN
+export CHATONS_MYSQL_PASSWORD=$(openssl rand -base64 32)
+export CHATONS_MYSQL_ROOT_PASSWORD=$(openssl rand -base64 32)
+
+if [ ! -d "$CHATONS_ROOT_DIR" ]; then
+    echo "error: $CHATONS_ROOT_DIR must exist and be a regular folder" >&2
+    exit 1
+fi
+
+# Export common environment variables
+
+echo "CHATONS_ROOT_DIR=$CHATONS_ROOT_DIR" > .env
+echo "CHATONS_DOMAIN=$CHATONS_DOMAIN" >> .env
+echo "CHATONS_MAIL=$CHATONS_MAIL" >> .env
+
+# Export specific environment configuration
+
+echo "MYSQL_PASSWORD=$CHATONS_MYSQL_PASSWORD" > cloud/.env
+echo "MYSQL_ROOT_PASSWORD=$CHATONS_MYSQL_ROOT_PASSWORD" >> cloud/.env
+echo "MYSQL_ROOT_PASSWORD=$CHATONS_MYSQL_ROOT_PASSWORD" > pad/.env
+echo "ETHERPAD_DB_PASSWORD=$CHATONS_MYSQL_ROOT_PASSWORD" >> pad/.env
+