#!/bin/bash # # Postgresql Service PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin . /etc/federated config_postgresql() { echo -ne "* Configuring postgresql container.." # if [[ "${POSTGRESQL_SSL}" = "true" ]]; then # POSTGRESQL_SSL="true" # elif [[ ! "${POSTGRESQL_SSL}" ]]; then # POSTGRESQL_SSL="true" # else # POSTGRESQL_SSL="false" # fi if [ ! -d "/federated/apps/postgresql" ]; then mkdir -p /federated/apps/postgresql/data/var/lib/postgresql /federated/apps/postgresql/data/docker-entrypoint-initdb.d if [[ "${PLUS}" != "true" ]]; then cp /federated/certs/certs/$DOMAIN.crt /federated/apps/postgresql/data/var/lib/postgresql/server.crt cp /federated/certs/private/$DOMAIN.key /federated/apps/postgresql/data/var/lib/postgresql/server.key chown 999 /federated/apps/postgresql/data/var/lib/postgresql/server.crt /federated/apps/postgresql/data/var/lib/postgresql/server.key chmod 600 /federated/apps/postgresql/data/var/lib/postgresql/server.crt /federated/apps/postgresql/data/var/lib/postgresql/server.key fi fi if [[ "${PLUS}" != "true" ]]; then 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: core: external: true EOF else cat > /federated/apps/postgresql/docker-compose.yml < /federated/apps/postgresql/.env < /federated/apps/postgresql/.postgresql.secret chmod 600 /federated/apps/postgresql/.postgresql.secret echo -ne "done.\n" } start_postgresql() { # Start service with command to make sure it's up before proceeding start_service "postgresql" "nc -z 192.168.0.14 5432 &> /dev/null" "18" # Tune PostgreSQL # if [[ "$BUNDLE" = "starter" ]]; then # sed -i "s#shared_buffers =.*#shared_buffers = 50MB#g" /federated/apps/postgresql/data/var/lib/postgresql/data/postgresql.conf # sed -i "s#max_connections =.*#max_connections = 400#g" /federated/apps/postgresql/data/var/lib/postgresql/data/postgresql.conf # sed -i "s/#work_mem =.*/work_mem = 4MB/g" /federated/apps/postgresql/data/var/lib/postgresql/data/postgresql.conf # sed -i "s/#maintenance_work_mem =.*/maintenance_work_mem = 50MB/g" /federated/apps/postgresql/data/var/lib/postgresql/data/postgresql.conf # else sed -i "s#shared_buffers =.*#shared_buffers = 800MB#g" /federated/apps/postgresql/data/var/lib/postgresql/data/postgresql.conf sed -i "s#max_connections =.*#max_connections = 400#g" /federated/apps/postgresql/data/var/lib/postgresql/data/postgresql.conf sed -i "s/#work_mem =.*/work_mem = 16MB/g" /federated/apps/postgresql/data/var/lib/postgresql/data/postgresql.conf sed -i "s/#maintenance_work_mem =.*/maintenance_work_mem = 128MB/g" /federated/apps/postgresql/data/var/lib/postgresql/data/postgresql.conf # fi # Restart PostgreSQL /federated/bin/stop postgresql &> /dev/null /federated/bin/start postgresql &> /dev/null echo -ne "done." }