Added connector container
This commit is contained in:
parent
a4a0ab566d
commit
91d9fd1ee4
@ -61,6 +61,7 @@ get_config() {
|
|||||||
. /federated/lib/panel.sh
|
. /federated/lib/panel.sh
|
||||||
. /federated/lib/proxy.sh
|
. /federated/lib/proxy.sh
|
||||||
. /federated/lib/wireguard.sh
|
. /federated/lib/wireguard.sh
|
||||||
|
. /federated/lib/connector.sh
|
||||||
|
|
||||||
echo -ne "\nFederated Stack install script\n\n"
|
echo -ne "\nFederated Stack install script\n\n"
|
||||||
read -p '* Enter domain name (domain.com): ' DOMAIN
|
read -p '* Enter domain name (domain.com): ' DOMAIN
|
||||||
@ -91,13 +92,26 @@ check_ports
|
|||||||
config_network
|
config_network
|
||||||
|
|
||||||
# Configure and start each federated service
|
# Configure and start each federated service
|
||||||
for i in dns postgresql ldap mail collabora proxy nextcloud matrix element listmonk vaultwarden panel wireguard jitsi; do
|
for i in postgresql ldap mail collabora proxy nextcloud matrix element listmonk vaultwarden panel wireguard jitsi connector; do
|
||||||
config_$i
|
config_$i
|
||||||
start_$i
|
start_$i
|
||||||
done
|
done
|
||||||
|
|
||||||
# Print out fstack environment details
|
# Print out federated environment details
|
||||||
echo -ne "\n\nInstall completed successfully.\n\n"
|
cat << EOF
|
||||||
echo -ne "Certificates at apps/dns/data/etc/letsencrypt/archive/$DOMAIN\n"
|
* The services are at these hostnames..
|
||||||
echo -ne "Webmail is at http://www.$DOMAIN:9002\n"
|
mail.$DOMAIN
|
||||||
echo -ne "Login user: admin Password: Provided at start\n"
|
www.$DOMAIN
|
||||||
|
panel.$DOMAIN
|
||||||
|
nextcloud.$DOMAIN
|
||||||
|
jitsi.$DOMAIN
|
||||||
|
element.$DOMAIN
|
||||||
|
listmonk.$DOMAIN
|
||||||
|
vaultwarden.$DOMAIN
|
||||||
|
vpn.$DOMAIN
|
||||||
|
connector.$DOMAIN
|
||||||
|
|
||||||
|
* Your VPN Wireguard configuration is..
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat /federated/apps/wireguard/data/config/peer1/peer1.conf
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
# Federated Start Script
|
# Federated Start Script
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "$0: all|dns|postgresql|ldap|mail|collabora|nextcloud|matrix|jitsi|listmonk|vaultwarden|panel|proxy|wireguard"
|
echo "$0: all|dns|postgresql|ldap|mail|collabora|nextcloud|matrix|jitsi|listmonk|vaultwarden|panel|proxy|wireguard|connector"
|
||||||
exit 2
|
exit 2
|
||||||
}
|
}
|
||||||
startservice() {
|
startservice() {
|
||||||
@ -11,7 +11,7 @@ startservice() {
|
|||||||
cd /federated/apps/$SERVICE && docker-compose -f docker-compose.yml -p $SERVICE up -d
|
cd /federated/apps/$SERVICE && docker-compose -f docker-compose.yml -p $SERVICE up -d
|
||||||
}
|
}
|
||||||
startservice_all() {
|
startservice_all() {
|
||||||
for i in dns postgresql ldap mail collabora nextcloud matrix jitsi listmonk vaultwarden panel proxy wireguard; do
|
for i in dns postgresql ldap mail collabora nextcloud matrix jitsi listmonk vaultwarden panel proxy wireguard connector; do
|
||||||
echo "* Starting $i.."
|
echo "* Starting $i.."
|
||||||
cd /federated/apps/$i && docker-compose -f docker-compose.yml -p $i up -d
|
cd /federated/apps/$i && docker-compose -f docker-compose.yml -p $i up -d
|
||||||
done
|
done
|
||||||
@ -22,6 +22,6 @@ SERVICE=$1
|
|||||||
|
|
||||||
case "$SERVICE" in
|
case "$SERVICE" in
|
||||||
all) startservice_all;;
|
all) startservice_all;;
|
||||||
dns|postgresql|ldap|mail|collabora|nextcloud|matrix|jitsi|listmonk|vaultwarden|panel|proxy|wireguard) startservice;;
|
dns|postgresql|ldap|mail|collabora|nextcloud|matrix|jitsi|listmonk|vaultwarden|panel|proxy|wireguard|connector) startservice;;
|
||||||
*) usage;;
|
*) usage;;
|
||||||
esac
|
esac
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
# Federated Stop Script
|
# Federated Stop Script
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "$0: all|dns|postgresql|ldap|mail|collabora|nextcloud|matrix|jitsi|listmonk|vaultwarden|panel|proxy|wireguard"
|
echo "$0: all|dns|postgresql|ldap|mail|collabora|nextcloud|matrix|jitsi|listmonk|vaultwarden|panel|proxy|wireguard|connector"
|
||||||
exit 2
|
exit 2
|
||||||
}
|
}
|
||||||
stopservice() {
|
stopservice() {
|
||||||
@ -11,7 +11,7 @@ stopservice() {
|
|||||||
cd /federated/apps/$SERVICE && docker-compose -f docker-compose.yml -p $SERVICE down
|
cd /federated/apps/$SERVICE && docker-compose -f docker-compose.yml -p $SERVICE down
|
||||||
}
|
}
|
||||||
stopservice_all() {
|
stopservice_all() {
|
||||||
for i in dns postgresql ldap mail collabora nextcloud matrix jitsi listmonk vaultwarden panel proxy wireguard; do
|
for i in dns postgresql ldap mail collabora nextcloud matrix jitsi listmonk vaultwarden panel proxy wireguard connector; do
|
||||||
echo "* Stopping $i.."
|
echo "* Stopping $i.."
|
||||||
cd /federated/apps/$i && docker-compose -f docker-compose.yml -p $i down
|
cd /federated/apps/$i && docker-compose -f docker-compose.yml -p $i down
|
||||||
done
|
done
|
||||||
@ -22,6 +22,6 @@ SERVICE=$1
|
|||||||
|
|
||||||
case "$SERVICE" in
|
case "$SERVICE" in
|
||||||
all) stopservice_all;;
|
all) stopservice_all;;
|
||||||
dns|postgresql|ldap|mail|collabora|nextcloud|matrix|jitsi|listmonk|vaultwarden|panel|proxy|wireguard) stopservice;;
|
dns|postgresql|ldap|mail|collabora|nextcloud|matrix|jitsi|listmonk|vaultwarden|panel|proxy|wireguard|connector) stopservice;;
|
||||||
*) usage;;
|
*) usage;;
|
||||||
esac
|
esac
|
||||||
|
94
lib/connector.sh
Normal file
94
lib/connector.sh
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Connector Service
|
||||||
|
|
||||||
|
PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
|
||||||
|
config_connector() {
|
||||||
|
echo -ne "\n* Configuring /federated/apps/connector container.."
|
||||||
|
spin &
|
||||||
|
SPINPID=$!
|
||||||
|
|
||||||
|
if [ ! -d "/federated/apps/connector" ]; then
|
||||||
|
mkdir -p /federated/apps/connector/data/source/public/downloads
|
||||||
|
fi
|
||||||
|
|
||||||
|
DOMAIN_ARRAY=(${DOMAIN//./ })
|
||||||
|
DOMAIN_FIRST=${DOMAIN_ARRAY[0]}
|
||||||
|
DOMAIN_LAST=${DOMAIN_ARRAY[1]}
|
||||||
|
|
||||||
|
cat > /federated/apps/connector/docker-compose.yml <<EOF
|
||||||
|
version: '3.7'
|
||||||
|
|
||||||
|
services:
|
||||||
|
connector:
|
||||||
|
image: federatedcomputer/web-connector:\${IMAGE_VERSION}
|
||||||
|
container_name: connector
|
||||||
|
hostname: connector.$DOMAIN
|
||||||
|
domainname: $DOMAIN
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
federated:
|
||||||
|
ipv4_address: 172.99.0.27
|
||||||
|
ports:
|
||||||
|
- 3000:3000
|
||||||
|
env_file:
|
||||||
|
- ./.env
|
||||||
|
volumes:
|
||||||
|
- ./data/source/public/downloads:/source/public/downloads
|
||||||
|
|
||||||
|
networks:
|
||||||
|
federated:
|
||||||
|
external: true
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > /federated/apps/connector/.env <<EOF
|
||||||
|
DOMAIN=$DOMAIN
|
||||||
|
IMAGE_VERSION="latest"
|
||||||
|
VIRTUAL_PROTO=http
|
||||||
|
VIRTUAL_PORT=3000
|
||||||
|
VIRTUAL_HOST=connector.$DOMAIN
|
||||||
|
EOF
|
||||||
|
chmod 600 /federated/apps/connector/.env
|
||||||
|
|
||||||
|
cp /federated/lib/files/connector/FederatedCore.dmg /federated/apps/connector/data/source/public/downloads/
|
||||||
|
|
||||||
|
kill -9 $SPINPID &> /dev/null
|
||||||
|
echo -ne "done."
|
||||||
|
}
|
||||||
|
|
||||||
|
start_connector() {
|
||||||
|
# Start /federated/apps/connector with output to /dev/null
|
||||||
|
echo -ne "\n* Starting /federated/apps/connector service.."
|
||||||
|
spin &
|
||||||
|
SPINPID=$!
|
||||||
|
|
||||||
|
if [ $DEBUG ]; then
|
||||||
|
# Start /federated/apps/connector with output to console for debug
|
||||||
|
docker-compose -f /federated/apps/connector/docker-compose.yml -p connector up
|
||||||
|
[ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service /federated/apps/connector"
|
||||||
|
else
|
||||||
|
docker-compose -f /federated/apps/connector/docker-compose.yml -p connector up -d &> /dev/null
|
||||||
|
|
||||||
|
# Keep trying connector port 80 to make sure it's up
|
||||||
|
# before we proceed
|
||||||
|
RETRY="30"
|
||||||
|
while [ $RETRY -gt 0 ]; do
|
||||||
|
nc -z 172.99.0.27 3000 &> /dev/null
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
if [ "$RETRY" == 1 ]; then
|
||||||
|
docker-compose -f /federated/apps/connector/docker-compose.yml -p connector down &> /dev/null
|
||||||
|
kill -9 $SPINPID &> /dev/null
|
||||||
|
fail "There was a problem starting service /federated/apps/connector\nCheck the output of 'docker logs connector' or turn on\ndebug with -d"
|
||||||
|
fi
|
||||||
|
((RETRY--))
|
||||||
|
sleep 7
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
kill -9 $SPINPID &> /dev/null
|
||||||
|
echo -ne "done."
|
||||||
|
}
|
@ -15,7 +15,7 @@ config_dns() {
|
|||||||
mkdir -p /federated/apps/dns/data/etc/bind/zones
|
mkdir -p /federated/apps/dns/data/etc/bind/zones
|
||||||
mkdir -p /federated/apps/dns/data/var/log/letsencrypt
|
mkdir -p /federated/apps/dns/data/var/log/letsencrypt
|
||||||
|
|
||||||
cat > /federated/apps/dns/docker-compose.yml <<'EOF'
|
cat > /federated/apps/dns/docker-compose.yml <<EOF
|
||||||
version: '3.7'
|
version: '3.7'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@ -186,6 +186,7 @@ element IN A $EXTERNALIP
|
|||||||
listmonk IN A $EXTERNALIP
|
listmonk IN A $EXTERNALIP
|
||||||
vaultwarden IN A $EXTERNALIP
|
vaultwarden IN A $EXTERNALIP
|
||||||
vpn IN A $EXTERNALIP
|
vpn IN A $EXTERNALIP
|
||||||
|
connector IN A $EXTERNALIP
|
||||||
$DOMAIN. IN A $EXTERNALIP
|
$DOMAIN. IN A $EXTERNALIP
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
BIN
lib/files/connector/FederatedCore.dmg
Normal file
BIN
lib/files/connector/FederatedCore.dmg
Normal file
Binary file not shown.
@ -4,3 +4,41 @@ create_password() {
|
|||||||
SECRET=`tr -cd '[:alnum:]' < /dev/urandom | fold -w32 | head -n1`
|
SECRET=`tr -cd '[:alnum:]' < /dev/urandom | fold -w32 | head -n1`
|
||||||
echo "$SECRET";
|
echo "$SECRET";
|
||||||
}
|
}
|
||||||
|
start_blah() {
|
||||||
|
echo "val1 is $1";
|
||||||
|
echo "val2 is $2";
|
||||||
|
echo "val3 is $3";
|
||||||
|
echo "val4 is $4";
|
||||||
|
}
|
||||||
|
start_service() {
|
||||||
|
# Start /federated/apps/SERVICE with output to /dev/null
|
||||||
|
echo -ne "\n* Starting /federated/apps/$SERVICE service.."
|
||||||
|
spin &
|
||||||
|
SPINPID=$!
|
||||||
|
|
||||||
|
if [ $DEBUG ]; then
|
||||||
|
# Start /federated/apps/SERVICE with output to console for debug
|
||||||
|
docker-compose -f /federated/apps/$SERVICE/docker-compose.yml -p $SERVICE up
|
||||||
|
[ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service /federated/apps/SERVICE"
|
||||||
|
else
|
||||||
|
docker-compose -f /federated/apps/$SERVICE/docker-compose.yml -p $SERVICE up -d &> /dev/null
|
||||||
|
|
||||||
|
# Keep trying service port to make sure it's up before
|
||||||
|
# we proceed
|
||||||
|
RETRY="30"
|
||||||
|
while [ $RETRY -gt 0 ]; do
|
||||||
|
nc -z 172.99.0.19 9000 &> /dev/null
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
if [ "$RETRY" == 1 ]; then
|
||||||
|
docker-compose -f /federated/apps/$SERVICE/docker-compose.yml -p $SERVICE down &> /dev/null
|
||||||
|
kill -9 $SPINPID &> /dev/null
|
||||||
|
fail "There was a problem starting service /federated/apps/$SERVICE\nCheck the output of 'docker logs $SERVICE' or turn on\ndebug with -d"
|
||||||
|
fi
|
||||||
|
((RETRY--))
|
||||||
|
sleep 7
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
@ -630,7 +630,7 @@ start_jitsi() {
|
|||||||
# before we proceed
|
# before we proceed
|
||||||
RETRY="30"
|
RETRY="30"
|
||||||
while [ $RETRY -gt 0 ]; do
|
while [ $RETRY -gt 0 ]; do
|
||||||
nc -z 172.99.0.25 443 &> /dev/null
|
nc -z 172.99.0.23 443 &> /dev/null
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
|
@ -90,7 +90,6 @@ modules:
|
|||||||
local_certificate_file: /data/fullchain1.pem
|
local_certificate_file: /data/fullchain1.pem
|
||||||
local_private_key_file: /data/privkey1.pem
|
local_private_key_file: /data/privkey1.pem
|
||||||
EOF
|
EOF
|
||||||
chmod 600 /federated/apps/matrix/data/matrix/homeserver.yaml
|
|
||||||
|
|
||||||
kill -9 $SPINPID &> /dev/null
|
kill -9 $SPINPID &> /dev/null
|
||||||
echo -ne "done."
|
echo -ne "done."
|
||||||
|
@ -160,6 +160,7 @@ PATH=/var/www/html:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/sbin:/bin
|
|||||||
./occ ldap:set-config s01 turnOnPasswordChange 0
|
./occ ldap:set-config s01 turnOnPasswordChange 0
|
||||||
./occ ldap:set-config s01 useMemberOfToDetectMembership 1
|
./occ ldap:set-config s01 useMemberOfToDetectMembership 1
|
||||||
./occ ldap:set-config s01 ldapConfigurationActive 1
|
./occ ldap:set-config s01 ldapConfigurationActive 1
|
||||||
|
./occ config:system:set overwriteprotocol --value=https
|
||||||
./occ config:system:delete trusted_domains
|
./occ config:system:delete trusted_domains
|
||||||
./occ config:system:set trusted_domains 1 --value=*
|
./occ config:system:set trusted_domains 1 --value=*
|
||||||
ADMINUUID=\`./occ user:list | grep admin | awk '{ print \$2 }' | awk -F: '{ print \$1 }'\`
|
ADMINUUID=\`./occ user:list | grep admin | awk '{ print \$2 }' | awk -F: '{ print \$1 }'\`
|
||||||
|
@ -26,7 +26,7 @@ version: "3.7"
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
postgresql:
|
postgresql:
|
||||||
image: postgres:${IMAGE_VERSION}
|
image: postgres:\${IMAGE_VERSION}
|
||||||
container_name: postgresql
|
container_name: postgresql
|
||||||
hostname: postgresql.$DOMAIN
|
hostname: postgresql.$DOMAIN
|
||||||
domainname: $DOMAIN
|
domainname: $DOMAIN
|
||||||
|
Loading…
x
Reference in New Issue
Block a user