#!/bin/bash # # Postgresql Service PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_postgresql() { echo -ne "\n* Configuring /federated/apps/postgresql container.." spin & SPINPID=$! if [ ! -d "/federated/apps/postgresql" ]; then mkdir -p /federated/apps/postgresql/data/var/lib/postgresql /federated/apps/postgresql/data/docker-entrypoint-initdb.d cp /federated/apps/dns/data/etc/letsencrypt/archive/$DOMAIN/fullchain1.pem /federated/apps/postgresql/data/var/lib/postgresql/server.crt cp /federated/apps/dns/data/etc/letsencrypt/archive/$DOMAIN/privkey1.pem /federated/apps/postgresql/data/var/lib/postgresql/server.key chown 999 /federated/apps/postgresql/data/var/lib/postgresql/server.* chmod 600 /federated/apps/postgresql/data/var/lib/postgresql/server.* fi DOMAIN_ARRAY=(${DOMAIN//./ }) DOMAIN_FIRST=${DOMAIN_ARRAY[0]} DOMAIN_LAST=${DOMAIN_ARRAY[1]} cat > /federated/apps/postgresql/docker-compose.yml < -c ssl=on -c ssl_cert_file=/var/lib/postgresql/server.crt -c ssl_key_file=/var/lib/postgresql/server.key healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 5 secrets: federated_psql_password: file: ./.postgresql.secret networks: federated: external: true EOF cat > /federated/apps/postgresql/.env < /federated/apps/postgresql/.postgresql.secret chmod 600 /federated/apps/postgresql/.postgresql.secret NEXTCLOUD_SECRET=$(create_password); VAULTWARDEN_SECRET=$(create_password); LISTMONK_SECRET=$(create_password); MATRIX_SECRET=$(create_password); BASEROW_SECRET=$(create_password); CALCOM_SECRET=$(create_password); GITEA_SECRET=$(create_password); # cat postgresql/data/docker-entrypoint-initdb.d/init.sql cat > /federated/apps/postgresql/data/docker-entrypoint-initdb.d/init.sql < /dev/null echo -ne "done." } start_postgresql() { # Start service with command to make sure it's up before proceeding start_service "postgresql" "nc -z 172.99.0.11 5432 &> /dev/null" kill -9 $SPINPID &> /dev/null echo -ne "done." }