test/lib/freescout.sh
2023-10-09 15:04:42 +00:00

87 lines
2.4 KiB
Bash

#!/bin/bash
#
# Freescout Service
PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
config_freescout() {
echo -ne "\n* Configuring /federated/apps/freescout container.."
spin &
SPINPID=$!
if [ ! -d "/federated/apps/freescout" ]; then
mkdir -p /federated/apps/freescout/data/data
mkdir -p /federated/apps/freescout/data/www/logs
fi
cat > /federated/apps/freescout/docker-compose.yml <<EOF
version: "3.7"
services:
freescout:
image: ghcr.io/tiredofit/docker-freescout:\${IMAGE_VERSION}
container_name: freescout
hostname: freescout.$DOMAIN
domainname: $DOMAIN
restart: always
networks:
federated:
ipv4_address: 172.99.0.37
env_file:
- ./.env
volumes:
- ./data/data:/data
- ./data/www/logs:/www/logs
labels:
- "traefik.enable=true"
- "traefik.http.routers.freescout.rule=Host(\`freescout.$DOMAIN\`)"
- "traefik.http.routers.freescout.entrypoints=websecure"
- "traefik.http.routers.freescout.tls.certresolver=letsencrypt"
networks:
federated:
external: true
EOF
ADMINPASS=`cat /federated/apps/panel/.env | grep SMTP_PASSWORD | awk -F= '{ print $2 }'`
FREESCOUT_SECRET=$(create_password);
cat > /federated/apps/freescout/.env <<EOF
IMAGE_VERSION="latest_php8.2"
ADMIN_EMAIL=admin@$DOMAIN
ADMIN_PASS=$ADMINPASS
SITE_URL=https://freescout.$DOMAIN
DB_TYPE=pgsql
DB_HOST=postgresql.$DOMAIN
DB_USER=freescout
DB_PASS=$FREESCOUT_SECRET
DB_PORT=5432
DB_NAME=freescout
ENABLE_SSL_PROXY=TRUE
DISPLAY_ERRORS=FALSE
SMTP_HOST=mail.$DOMAIN
SMTP_USER=admin
SMTP_PASS=$ADMINPASS
SMTP_TLS=true
SMTP_PORT=587
EOF
chmod 600 /federated/apps/freescout/.env
# Create database and user in postgresql
docker exec postgresql psql -U postgres -c "CREATE USER freescout WITH PASSWORD '$FREESCOUT_SECRET'"
docker exec postgresql psql -U postgres -c "CREATE DATABASE freescout"
docker exec postgresql psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE freescout TO freescout"
kill -9 $SPINPID &> /dev/null
echo -ne "done."
}
start_freescout() {
# Start service with command to make sure it's up before proceeding
start_service "freescout" "nc -z 172.99.0.37 80 &> /dev/null" "7"
docker exec pdns pdnsutil add-record $DOMAIN freescout A 86400 $EXTERNALIP
[ $? -ne 0 ] && fail "Couldn't add dns record for freescout"
kill -9 $SPINPID &> /dev/null
echo -ne "done."
}