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:
@@ -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:
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
11
scripts/subinstallers/extra/nextcloud-db.sh
Executable file
11
scripts/subinstallers/extra/nextcloud-db.sh
Executable 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
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user