Added Collabora service
This commit is contained in:
parent
03b04da1a3
commit
28a697bdfc
@ -59,6 +59,7 @@ check_ports() {
|
|||||||
# Check if ss command exists
|
# Check if ss command exists
|
||||||
if command -v ss &> /dev/null; then
|
if command -v ss &> /dev/null; then
|
||||||
# Check every port we need if it's in use
|
# Check every port we need if it's in use
|
||||||
|
# for i in 8000; do
|
||||||
for i in 25 53 80 143 389 587 993 8000; do
|
for i in 25 53 80 143 389 587 993 8000; do
|
||||||
SS=`ss -tulwn | grep LISTEN | awk '{ print $5 }' | awk -F: '{ print $NF }' | grep "^$i$" | head -1`
|
SS=`ss -tulwn | grep LISTEN | awk '{ print $5 }' | awk -F: '{ print $NF }' | grep "^$i$" | head -1`
|
||||||
# If port 53 (dns) in use by system-resolvd (Ubuntu) then auto fix
|
# If port 53 (dns) in use by system-resolvd (Ubuntu) then auto fix
|
||||||
|
93
fstack/lib/collabora.sh
Normal file
93
fstack/lib/collabora.sh
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Federated Computer Collabora Service
|
||||||
|
|
||||||
|
PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
|
||||||
|
config_collabora() {
|
||||||
|
echo -ne "\n* Configuring fstack/collabora container.."
|
||||||
|
spin &
|
||||||
|
SPINPID=$!
|
||||||
|
|
||||||
|
if [ ! -d "fstack/collabora" ]; then
|
||||||
|
mkdir -p fstack/collabora/data/root/certs &> /dev/null
|
||||||
|
cp -rf fstack/dns/data/etc/letsencrypt/archive/$DOMAIN/*.pem fstack/collabora/data/root/certs/
|
||||||
|
fi
|
||||||
|
|
||||||
|
DOMAIN_ARRAY=(${DOMAIN//./ })
|
||||||
|
DOMAIN_FIRST=${DOMAIN_ARRAY[0]}
|
||||||
|
DOMAIN_LAST=${DOMAIN_ARRAY[1]}
|
||||||
|
|
||||||
|
cat > fstack/collabora/docker-compose.yml <<EOF
|
||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
collabora:
|
||||||
|
image: collabora/code:latest
|
||||||
|
container_name: collabora
|
||||||
|
hostname: collabora.$DOMAIN
|
||||||
|
domainname: $DOMAIN
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
fstack:
|
||||||
|
ipv4_address: 172.99.0.20
|
||||||
|
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
|
||||||
|
environment:
|
||||||
|
- VIRTUAL_PROTO=https
|
||||||
|
- VIRTUAL_PORT=9980
|
||||||
|
- VIRTUAL_HOST=collabora.$DOMAIN
|
||||||
|
- domain=nextcloud.$DOMAIN
|
||||||
|
- server_name=collabora.$DOMAIN
|
||||||
|
cap_add:
|
||||||
|
- MKNOD
|
||||||
|
|
||||||
|
networks:
|
||||||
|
fstack:
|
||||||
|
external: true
|
||||||
|
EOF
|
||||||
|
|
||||||
|
kill -9 $SPINPID &> /dev/null
|
||||||
|
echo -ne "done."
|
||||||
|
}
|
||||||
|
|
||||||
|
start_collabora() {
|
||||||
|
# Start fstack/collabora with output to /dev/null
|
||||||
|
echo -ne "\n* Starting fstack/collabora service.."
|
||||||
|
spin &
|
||||||
|
SPINPID=$!
|
||||||
|
|
||||||
|
if [ $DEBUG ]; then
|
||||||
|
# Start fstack/collabora with output to console for debug
|
||||||
|
docker-compose -f fstack/collabora/docker-compose.yml -p collabora up
|
||||||
|
[ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service fstack/collabora"
|
||||||
|
else
|
||||||
|
docker-compose -f fstack/collabora/docker-compose.yml -p collabora up -d &> /dev/null
|
||||||
|
|
||||||
|
# Keep trying collabora port 9980 to make sure it's up
|
||||||
|
# before we proceed
|
||||||
|
RETRY="30"
|
||||||
|
while [ $RETRY -gt 0 ]; do
|
||||||
|
nc -z 172.99.0.20 9980 &> /dev/null
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
if [ "$RETRY" == 1 ]; then
|
||||||
|
docker-compose -f fstack/collabora/docker-compose.yml -p collabora down &> /dev/null
|
||||||
|
kill -9 $SPINPID &> /dev/null
|
||||||
|
fail "There was a problem starting service fstack/collabora\nCheck the output of 'docker logs collabora' or turn on\ndebug with -d"
|
||||||
|
fi
|
||||||
|
((RETRY--))
|
||||||
|
sleep 7
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
kill -9 $SPINPID &> /dev/null
|
||||||
|
echo -ne "done."
|
||||||
|
}
|
@ -116,6 +116,9 @@ elif [ -e /etc/bind/.firstdone ] && [ -e /etc/bind/.failedcert ]; then
|
|||||||
fi
|
fi
|
||||||
wait -n
|
wait -n
|
||||||
else
|
else
|
||||||
|
# Install bind and certbot packages
|
||||||
|
apk add --no-cache bind
|
||||||
|
apk add --no-cache certbot
|
||||||
[ ! `pgrep -x named` ] && named -f -g && crond
|
[ ! `pgrep -x named` ] && named -f -g && crond
|
||||||
fi
|
fi
|
||||||
EOF
|
EOF
|
||||||
@ -169,6 +172,7 @@ panel IN A $EXTERNALIP
|
|||||||
webmail IN A $EXTERNALIP
|
webmail IN A $EXTERNALIP
|
||||||
nextcloud IN A $EXTERNALIP
|
nextcloud IN A $EXTERNALIP
|
||||||
computer IN A $EXTERNALIP
|
computer IN A $EXTERNALIP
|
||||||
|
collabora IN A $EXTERNALIP
|
||||||
$DOMAIN. IN A $EXTERNALIP
|
$DOMAIN. IN A $EXTERNALIP
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
@ -57,6 +57,8 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "8000:80"
|
- "8000:80"
|
||||||
- "8444:443"
|
- "8444:443"
|
||||||
|
extra_hosts:
|
||||||
|
- "collabora.$DOMAIN:$EXTERNALIP"
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/root:/root
|
- ./data/root:/root
|
||||||
- ./data/etc/apache2/sites-enabled:/etc/apache2/sites-enabled
|
- ./data/etc/apache2/sites-enabled:/etc/apache2/sites-enabled
|
||||||
@ -184,12 +186,18 @@ ADMINUUID=\`./occ user:list | grep admin | awk '{ print \$2 }' | awk -F: '{ prin
|
|||||||
./occ app:enable forms
|
./occ app:enable forms
|
||||||
./occ app:enable spreed
|
./occ app:enable spreed
|
||||||
./occ mail:account:create \$ADMINUUID admin admin@$DOMAIN mail.$DOMAIN 993 ssl admin@$DOMAIN $ADMINPASS mail.$DOMAIN 465 ssl admin@$DOMAIN $ADMINPASS password
|
./occ mail:account:create \$ADMINUUID admin admin@$DOMAIN mail.$DOMAIN 993 ssl admin@$DOMAIN $ADMINPASS mail.$DOMAIN 465 ssl admin@$DOMAIN $ADMINPASS password
|
||||||
|
./occ app:enable richdocuments
|
||||||
|
./occ config:app:set --value https:\/\/collabora.$DOMAIN richdocuments public_wopi_url
|
||||||
|
./occ config:app:set --value https:\/\/collabora.$DOMAIN richdocuments wopi_url
|
||||||
|
./occ config:app:set --value ooxml richdocuments doc_format
|
||||||
|
./occ config:app:set --value "" richdocuments disable_certificate_verification
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chmod +x fstack/nextcloud/data/root/*.sh
|
chmod +x fstack/nextcloud/data/root/*.sh
|
||||||
|
|
||||||
cat > fstack/nextcloud/data/etc/apache2/sites-enabled/000-default.conf <<'EOF'
|
cat > fstack/nextcloud/data/etc/apache2/sites-enabled/000-default.conf <<'EOF'
|
||||||
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
|
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
|
||||||
|
Listen 443
|
||||||
|
|
||||||
<VirtualHost *:80>
|
<VirtualHost *:80>
|
||||||
ServerAdmin admin@localhost
|
ServerAdmin admin@localhost
|
||||||
|
@ -49,6 +49,7 @@ get_config() {
|
|||||||
. fstack/lib/dns.sh
|
. fstack/lib/dns.sh
|
||||||
. fstack/lib/ldap.sh
|
. fstack/lib/ldap.sh
|
||||||
. fstack/lib/mail.sh
|
. fstack/lib/mail.sh
|
||||||
|
. fstack/lib/collabora.sh
|
||||||
. fstack/lib/nextcloud.sh
|
. fstack/lib/nextcloud.sh
|
||||||
. fstack/lib/panel.sh
|
. fstack/lib/panel.sh
|
||||||
. fstack/lib/proxy.sh
|
. fstack/lib/proxy.sh
|
||||||
@ -93,6 +94,10 @@ start_ldap
|
|||||||
config_mail
|
config_mail
|
||||||
start_mail
|
start_mail
|
||||||
|
|
||||||
|
# Configure fstack/collabora container and start it
|
||||||
|
config_collabora
|
||||||
|
start_collabora
|
||||||
|
|
||||||
# Configure fstack/nextcloud container and start it
|
# Configure fstack/nextcloud container and start it
|
||||||
config_nextcloud
|
config_nextcloud
|
||||||
start_nextcloud
|
start_nextcloud
|
||||||
|
Loading…
x
Reference in New Issue
Block a user