1
0
mirror of https://gitlab.com/cyber5k/mistborn.git synced 2022-06-09 18:03:35 +03:00

Resolve "nextcloud db"

This commit is contained in:
Steven Foerster
2022-02-17 04:32:12 +00:00
parent 5e41fa41b0
commit 631258cf3d
5 changed files with 40 additions and 5 deletions

View File

@@ -1,12 +1,26 @@
version: '3'
volumes:
nextcloud-db:
services:
nextcloud-db:
image: mariadb:10.5.11
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- nextcloud-db:/var/lib/mysql
env_file:
- ../.envs/.production/.nextcloud-db
nextcloud:
image: nextcloud:22.2.4-apache
container_name: mistborn_production_nextcloud
depends_on:
- nextcloud-db
env_file:
- ../.envs/.production/.postgres
- ../.envs/.production/.nextcloud
- ../.envs/.production/.nextcloud-db
labels:
- "traefik.enable=true"
- "traefik.http.routers.nextcloud-http.rule=Host(`nextcloud.mistborn`)"
@@ -19,8 +33,11 @@ services:
- "traefik.http.services.nextcloud-service.loadbalancer.server.port=80"
volumes:
- ../../mistborn_volumes/extra/nextcloud:/var/www/html
links:
- nextcloud-db
environment:
- VIRTUAL_HOST=nextcloud.mistborn
- MYSQL_HOST=nextcloud-db
restart: unless-stopped
networks:

View File

@@ -7,17 +7,18 @@ PartOf=Mistborn-base.service
[Service]
Restart=always
RestartSec=15
TimeoutStartSec=300
User=root
Group=docker
PermissionsStartOnly=true
# Shutdown container (if running) when unit is stopped
ExecStartPre=/opt/mistborn/scripts/wrappers/mistborn_docker.sh nextcloud docker-compose -f /opt/mistborn/extra/nextcloud.yml down
ExecStartPre=/opt/mistborn/scripts/wrappers/mistborn_docker.sh nextcloud,nextcloud-db docker-compose -f /opt/mistborn/extra/nextcloud.yml down
# Start container when unit is started
ExecStart=/opt/mistborn/scripts/wrappers/mistborn_docker.sh nextcloud docker-compose -f /opt/mistborn/extra/nextcloud.yml up --build
ExecStart=/opt/mistborn/scripts/wrappers/mistborn_docker.sh nextcloud,nextcloud-db docker-compose -f /opt/mistborn/extra/nextcloud.yml up --build
ExecStartPost=-/bin/bash /opt/mistborn/scripts/services/nextcloud/startpost.sh
# Stop container when unit is stopped
ExecStop=/opt/mistborn/scripts/wrappers/mistborn_docker.sh nextcloud docker-compose -f /opt/mistborn/extra/nextcloud.yml down
ExecStop=/opt/mistborn/scripts/wrappers/mistborn_docker.sh nextcloud,nextcloud-db docker-compose -f /opt/mistborn/extra/nextcloud.yml down
# Post stop
[Install]

View File

@@ -16,7 +16,7 @@ fi
HTTPD="404"
until [ "$HTTPD" == "200" ]; do
echo "Waiting for Nextcloud to start..."
sleep 5
sleep 10
HTTPD=$(curl -A "Web Check" -sL --connect-timeout 3 -w "%{http_code}\n" "http://nextcloud.${MISTBORN_BASE_DOMAIN}" -o /dev/null)
done

View File

@@ -0,0 +1,11 @@
#!/bin/bash
# generate nextcloud-db .env files
NEXTCLOUD_DB_PROD_FILE="$1"
#NEXTCLOUD_PASSWORD=$(python3 -c "import secrets; import string; print(f''.join([secrets.choice(string.ascii_letters+string.digits) for x in range(32)]))")
NEXTCLOUD_PASSWORD="${MISTBORN_DEFAULT_PASSWORD}"
echo "MYSQL_ROOT_PASSWORD=$(pwgen 40 1)" > $NEXTCLOUD_DB_PROD_FILE
echo "MYSQL_PASSWORD=$(pwgen 40 1)" >> $NEXTCLOUD_DB_PROD_FILE
echo "MYSQL_DATABASE=nextcloud" >> $NEXTCLOUD_DB_PROD_FILE
echo "MYSQL_USER=nextcloud" >> $NEXTCLOUD_DB_PROD_FILE
chmod 600 $NEXTCLOUD_DB_PROD_FILE

View File

@@ -4,6 +4,12 @@ set -e
MISTBORN_HOME="/opt/mistborn"
# check that pwgen exists
if ! [ -x "$(command -v pwgen)" ]; then
echo "Installing pwgen"
sudo apt-get install -y pwgen
fi
SERVICES="$1"
shift