test/lib/collabora.sh

74 lines
1.8 KiB
Bash

#!/bin/bash
#
# Collabora Service
PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
config_collabora() {
echo -ne "\n* Configuring /federated/apps/collabora container.."
spin &
SPINPID=$!
if [ ! -d "/federated/apps/collabora" ]; then
mkdir -p /federated/apps/collabora/data/root/certs &> /dev/null
cp -rf /federated/apps/dns/data/etc/letsencrypt/archive/$DOMAIN/*.pem /federated/apps/collabora/data/root/certs/
chown 104 /federated/apps/collabora/data/root/certs/*
fi
DOMAIN_ARRAY=(${DOMAIN//./ })
DOMAIN_FIRST=${DOMAIN_ARRAY[0]}
DOMAIN_LAST=${DOMAIN_ARRAY[1]}
cat > /federated/apps/collabora/docker-compose.yml <<EOF
version: '3.7'
services:
collabora:
image: collabora/code:\${IMAGE_VERSION}
container_name: collabora
hostname: collabora.$DOMAIN
domainname: $DOMAIN
restart: always
networks:
federated:
ipv4_address: 172.99.0.14
extra_hosts:
- "nextcloud.$DOMAIN:$EXTERNALIP"
ports:
- "9980:9980"
volumes:
- ./data/root:/root
- ./data/root/certs/fullchain1.pem:/etc/coolwsd/cert.pem
- ./data/root/certs/privkey1.pem:/etc/coolwsd/key.pem
- ./data/root/certs/chain1.pem:/etc/coolwsd/ca-chain.cert.pem
env_file:
- ./.env
cap_add:
- MKNOD
networks:
federated:
external: true
EOF
cat > /federated/apps/collabora/.env <<EOF
IMAGE_VERSION="latest"
VIRTUAL_PROTO=https
VIRTUAL_PORT=9980
VIRTUAL_HOST=collabora.$DOMAIN
domain=nextcloud.$DOMAIN
server_name=collabora.$DOMAIN
EOF
chmod 600 /federated/apps/collabora/.env
kill -9 $SPINPID &> /dev/null
echo -ne "done."
}
start_vaultwarden() {
# Start service with command to make sure it's up before proceeding
start_service "collabora" "nc -z 172.99.0.14 9980 &> /dev/null"
kill -9 $SPINPID &> /dev/null
echo -ne "done."
}