diff --git a/apps/.gitignore b/apps/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/backups/.gitignore b/backups/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/install-federated.sh b/bin/install-federated.sh similarity index 68% rename from install-federated.sh rename to bin/install-federated.sh index 447e93c..0769b58 100755 --- a/install-federated.sh +++ b/bin/install-federated.sh @@ -24,7 +24,7 @@ spin() { fail() { echo -ne "FAILED\n\n$1\n\n" kill -9 $SPINPID &> /dev/null -# [ -d "fstack/dns" ] && rm -rf fstack/dns +# [ -d "apps/dns" ] && rm -rf apps/dns # docker network rm fstack &> /dev/null exit 2; } @@ -34,30 +34,30 @@ failcheck() { } get_config() { FSTACKURL="http://137.184.95.3:8000" - [ ! -d "fstack/lib" ] && mkdir -p fstack/lib + [ ! -d "/federated/lib" ] && mkdir -p /federated/lib # Download each library file for i in checks network dns ldap mail; do - if [ ! -f "fstack/lib/$i.sh" ]; then - curl $FSTACKURL/$i.sh -o fstack/lib/$i.sh -s -f &> /dev/null + if [ ! -f "/federated/lib/$i.sh" ]; then + curl $FSTACKURL/$i.sh -o /federated/lib/$i.sh -s -f &> /dev/null [ $? -ne 0 ] && failcheck "Couldn't download $i.sh" fi done - . fstack/lib/checks.sh - . fstack/lib/network.sh - . fstack/lib/dns.sh - . fstack/lib/postgresql.sh - . fstack/lib/ldap.sh - . fstack/lib/mail.sh - . fstack/lib/collabora.sh - . fstack/lib/nextcloud.sh - . fstack/lib/matrix.sh - . fstack/lib/jitsi.sh - . fstack/lib/listmonk.sh - . fstack/lib/vaultwarden.sh - . fstack/lib/panel.sh - . fstack/lib/proxy.sh + . /federated/lib/checks.sh + . /federated/lib/network.sh + . /federated/lib/dns.sh + . /federated/lib/postgresql.sh + . /federated/lib/ldap.sh + . /federated/lib/mail.sh + . /federated/lib/collabora.sh + . /federated/lib/nextcloud.sh + . /federated/lib/matrix.sh + . /federated/lib/jitsi.sh + . /federated/lib/listmonk.sh + . /federated/lib/vaultwarden.sh + . /federated/lib/panel.sh + . /federated/lib/proxy.sh echo -ne "\nFederated Stack install script\n\n" read -p '* Enter domain name (domain.com): ' DOMAIN @@ -88,13 +88,14 @@ check_ports config_network # Configure and start each federated service -for i in dns postgresql ldap mail collabora nextcloud matrix listmonk vaultwarden panel proxy jitsi; do +#for i in dns postgresql ldap mail collabora nextcloud matrix listmonk vaultwarden panel proxy jitsi; do +for i in dns postgresql; do config_$i start_$i done # Print out fstack environment details echo -ne "\n\nInstall completed successfully.\n\n" -echo -ne "Certificates at fstack/dns/data/etc/letsencrypt/archive/$DOMAIN\n" +echo -ne "Certificates at apps/dns/data/etc/letsencrypt/archive/$DOMAIN\n" echo -ne "Webmail is at http://www.$DOMAIN:9002\n" echo -ne "Login user: admin Password: Provided at start\n" diff --git a/start.sh b/bin/start.sh similarity index 77% rename from start.sh rename to bin/start.sh index 8cf4446..08f7dbc 100755 --- a/start.sh +++ b/bin/start.sh @@ -8,12 +8,12 @@ usage() { } startservice() { echo "* Starting $SERVICE.." - cd fstack/$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() { for i in dns postgresql ldap mail collabora nextcloud matrix jitsi listmonk vaultwarden panel proxy; do echo "* Starting $i.." - cd fstack/$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 } diff --git a/stop.sh b/bin/stop.sh similarity index 79% rename from stop.sh rename to bin/stop.sh index 2c9bb30..791736b 100755 --- a/stop.sh +++ b/bin/stop.sh @@ -8,12 +8,12 @@ usage() { } stopservice() { echo "* Stopping $SERVICE.." - docker-compose -f fstack/$SERVICE/docker-compose.yml -p $SERVICE down + docker-compose -f /federated/apps/$SERVICE/docker-compose.yml -p $SERVICE down } stopservice_all() { for i in dns postgresql ldap mail collabora nextcloud matrix jitsi listmonk vaultwarden panel proxy; do echo "* Stopping $i.." - docker-compose -f fstack/$i/docker-compose.yml -p $i down + docker-compose -f /federated/apps/$i/docker-compose.yml -p $i down done } diff --git a/fstack/files/jitsi/stable-7882.tar.gz b/files/jitsi/stable-7882.tar.gz similarity index 100% rename from fstack/files/jitsi/stable-7882.tar.gz rename to files/jitsi/stable-7882.tar.gz diff --git a/fstack/files/panel/new_user.php b/files/panel/new_user.php similarity index 100% rename from fstack/files/panel/new_user.php rename to files/panel/new_user.php diff --git a/fstack/files/jitsi/docker-compose.yml b/fstack/files/jitsi/docker-compose.yml deleted file mode 100644 index 52f3113..0000000 --- a/fstack/files/jitsi/docker-compose.yml +++ /dev/null @@ -1,353 +0,0 @@ -version: '3.5' - -services: - # Frontend - web: - image: jitsi/web:${JITSI_IMAGE_VERSION:-stable-7882} - restart: ${RESTART_POLICY:-unless-stopped} - ports: - - '${HTTP_PORT}:80' - - '${HTTPS_PORT}:443' - volumes: - - ${CONFIG}/web:/config:Z - - ${CONFIG}/web/crontabs:/var/spool/cron/crontabs:Z - - ${CONFIG}/transcripts:/usr/share/jitsi-meet/transcripts:Z - - ./data/config/keys:/config/keys:Z - environment: - - VIRTUAL_PROTO=https - - VIRTUAL_PORT=443 - - VIRTUAL_HOST=jitsi.northendnetwork.com - - AMPLITUDE_ID - - ANALYTICS_SCRIPT_URLS - - ANALYTICS_WHITELISTED_EVENTS - - AUDIO_QUALITY_OPUS_BITRATE - - BRANDING_DATA_URL - - CALLSTATS_CUSTOM_SCRIPT_URL - - CALLSTATS_ID - - CALLSTATS_SECRET - - CHROME_EXTENSION_BANNER_JSON - - CONFCODE_URL - - CONFIG_EXTERNAL_CONNECT - - DEFAULT_LANGUAGE - - DEPLOYMENTINFO_ENVIRONMENT - - DEPLOYMENTINFO_ENVIRONMENT_TYPE - - DEPLOYMENTINFO_REGION - - DEPLOYMENTINFO_SHARD - - DEPLOYMENTINFO_USERREGION - - DESKTOP_SHARING_FRAMERATE_MIN - - DESKTOP_SHARING_FRAMERATE_MAX - - DIALIN_NUMBERS_URL - - DIALOUT_AUTH_URL - - DIALOUT_CODES_URL - - DISABLE_AUDIO_LEVELS - - DISABLE_DEEP_LINKING - - DISABLE_GRANT_MODERATOR - - DISABLE_HTTPS - - DISABLE_KICKOUT - - DISABLE_LOCAL_RECORDING - - DISABLE_POLLS - - DISABLE_PRIVATE_CHAT - - DISABLE_PROFILE - - DISABLE_REACTIONS - - DISABLE_REMOTE_VIDEO_MENU - - DROPBOX_APPKEY - - DROPBOX_REDIRECT_URI - - DYNAMIC_BRANDING_URL - - ENABLE_AUDIO_PROCESSING - - ENABLE_AUTH - - ENABLE_BREAKOUT_ROOMS - - ENABLE_CALENDAR - - ENABLE_COLIBRI_WEBSOCKET - - ENABLE_E2EPING - - ENABLE_FILE_RECORDING_SHARING - - ENABLE_GUESTS - - ENABLE_HSTS - - ENABLE_HTTP_REDIRECT - - ENABLE_IPV6 - - ENABLE_LETSENCRYPT - - ENABLE_LIPSYNC - - ENABLE_NO_AUDIO_DETECTION - - ENABLE_NOISY_MIC_DETECTION - - ENABLE_OCTO - - ENABLE_OPUS_RED - - ENABLE_PREJOIN_PAGE - - ENABLE_P2P - - ENABLE_WELCOME_PAGE - - ENABLE_CLOSE_PAGE - - ENABLE_LIVESTREAMING - - ENABLE_LOCAL_RECORDING_NOTIFY_ALL_PARTICIPANT - - ENABLE_LOCAL_RECORDING_SELF_START - - ENABLE_RECORDING - - ENABLE_REMB - - ENABLE_REQUIRE_DISPLAY_NAME - - ENABLE_SERVICE_RECORDING - - ENABLE_SIMULCAST - - ENABLE_STATS_ID - - ENABLE_STEREO - - ENABLE_SUBDOMAINS - - ENABLE_TALK_WHILE_MUTED - - ENABLE_TCC - - ENABLE_TRANSCRIPTIONS - - ENABLE_XMPP_WEBSOCKET - - ENABLE_JAAS_COMPONENTS - - ENABLE_MULTI_STREAM - - ETHERPAD_PUBLIC_URL - - ETHERPAD_URL_BASE - - E2EPING_NUM_REQUESTS - - E2EPING_MAX_CONFERENCE_SIZE - - E2EPING_MAX_MESSAGE_PER_SECOND - - GOOGLE_ANALYTICS_ID - - GOOGLE_API_APP_CLIENT_ID - - HIDE_PREMEETING_BUTTONS - - HIDE_PREJOIN_DISPLAY_NAME - - HIDE_PREJOIN_EXTRA_BUTTONS - - INVITE_SERVICE_URL - - JICOFO_AUTH_USER - - LETSENCRYPT_DOMAIN - - LETSENCRYPT_EMAIL - - LETSENCRYPT_USE_STAGING - - MATOMO_ENDPOINT - - MATOMO_SITE_ID - - MICROSOFT_API_APP_CLIENT_ID - - NGINX_RESOLVER - - NGINX_WORKER_PROCESSES - - NGINX_WORKER_CONNECTIONS - - PEOPLE_SEARCH_URL - - PUBLIC_URL - - P2P_PREFERRED_CODEC - - RESOLUTION - - RESOLUTION_MIN - - RESOLUTION_WIDTH - - RESOLUTION_WIDTH_MIN - - START_AUDIO_MUTED - - START_AUDIO_ONLY - - START_BITRATE - - START_SILENT - - START_WITH_AUDIO_MUTED - - START_VIDEO_MUTED - - START_WITH_VIDEO_MUTED - - TESTING_CAP_SCREENSHARE_BITRATE - - TESTING_OCTO_PROBABILITY - - TOKEN_AUTH_URL - - TOOLBAR_BUTTONS - - TZ - - VIDEOQUALITY_BITRATE_H264_LOW - - VIDEOQUALITY_BITRATE_H264_STANDARD - - VIDEOQUALITY_BITRATE_H264_HIGH - - VIDEOQUALITY_BITRATE_VP8_LOW - - VIDEOQUALITY_BITRATE_VP8_STANDARD - - VIDEOQUALITY_BITRATE_VP8_HIGH - - VIDEOQUALITY_BITRATE_VP9_LOW - - VIDEOQUALITY_BITRATE_VP9_STANDARD - - VIDEOQUALITY_BITRATE_VP9_HIGH - - VIDEOQUALITY_ENFORCE_PREFERRED_CODEC - - VIDEOQUALITY_PREFERRED_CODEC - - XMPP_AUTH_DOMAIN - - XMPP_BOSH_URL_BASE - - XMPP_DOMAIN - - XMPP_GUEST_DOMAIN - - XMPP_MUC_DOMAIN - - XMPP_RECORDER_DOMAIN - - XMPP_PORT - networks: - fstack: - ipv4_address: 172.99.0.25 - - # XMPP server - prosody: - image: jitsi/prosody:${JITSI_IMAGE_VERSION:-stable-7882} - restart: ${RESTART_POLICY:-unless-stopped} - expose: - - '${XMPP_PORT:-5222}' - - '5347' - - '5280' - volumes: - - ${CONFIG}/prosody/config:/config:Z - - ${CONFIG}/prosody/prosody-plugins-custom:/prosody-plugins-custom:Z - environment: - - AUTH_TYPE - - DISABLE_POLLS - - ENABLE_AUTH - - ENABLE_AV_MODERATION - - ENABLE_BREAKOUT_ROOMS - - ENABLE_END_CONFERENCE - - ENABLE_GUESTS - - ENABLE_IPV6 - - ENABLE_LOBBY - - ENABLE_RECORDING - - ENABLE_XMPP_WEBSOCKET - - ENABLE_JAAS_COMPONENTS - - GC_TYPE - - GC_INC_TH - - GC_INC_SPEED - - GC_INC_STEP_SIZE - - GC_GEN_MIN_TH - - GC_GEN_MAX_TH - - GLOBAL_CONFIG - - GLOBAL_MODULES - - JIBRI_RECORDER_USER - - JIBRI_RECORDER_PASSWORD - - JIBRI_XMPP_USER - - JIBRI_XMPP_PASSWORD - - JICOFO_AUTH_USER - - JICOFO_AUTH_PASSWORD - - JICOFO_COMPONENT_SECRET - - JIGASI_XMPP_USER - - JIGASI_XMPP_PASSWORD - - JVB_AUTH_USER - - JVB_AUTH_PASSWORD - - JWT_APP_ID - - JWT_APP_SECRET - - JWT_ACCEPTED_ISSUERS - - JWT_ACCEPTED_AUDIENCES - - JWT_ASAP_KEYSERVER - - JWT_ALLOW_EMPTY - - JWT_AUTH_TYPE - - JWT_ENABLE_DOMAIN_VERIFICATION - - JWT_TOKEN_AUTH_MODULE - - MATRIX_UVS_URL - - MATRIX_UVS_ISSUER - - MATRIX_UVS_AUTH_TOKEN - - MATRIX_UVS_SYNC_POWER_LEVELS - - LOG_LEVEL - - LDAP_AUTH_METHOD - - LDAP_BASE - - LDAP_BINDDN - - LDAP_BINDPW - - LDAP_FILTER - - LDAP_VERSION - - LDAP_TLS_CIPHERS - - LDAP_TLS_CHECK_PEER - - LDAP_TLS_CACERT_FILE - - LDAP_TLS_CACERT_DIR - - LDAP_START_TLS - - LDAP_URL - - LDAP_USE_TLS - - MAX_PARTICIPANTS - - PROSODY_RESERVATION_ENABLED - - PROSODY_RESERVATION_REST_BASE_URL - - PUBLIC_URL - - TURN_CREDENTIALS - - TURN_HOST - - TURNS_HOST - - TURN_PORT - - TURNS_PORT - - TZ - - XMPP_DOMAIN - - XMPP_AUTH_DOMAIN - - XMPP_GUEST_DOMAIN - - XMPP_MUC_DOMAIN - - XMPP_INTERNAL_MUC_DOMAIN - - XMPP_MODULES - - XMPP_MUC_MODULES - - XMPP_MUC_CONFIGURATION - - XMPP_INTERNAL_MUC_MODULES - - XMPP_RECORDER_DOMAIN - - XMPP_PORT - networks: - fstack: - ipv4_address: 172.99.0.26 - aliases: - - xmpp.meet.jitsi - - xmpp.northendnetwork.com - - # Focus component - jicofo: - image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable-7882} - restart: ${RESTART_POLICY:-unless-stopped} - volumes: - - ${CONFIG}/jicofo:/config:Z - environment: - - AUTH_TYPE - - BRIDGE_AVG_PARTICIPANT_STRESS - - BRIDGE_STRESS_THRESHOLD - - ENABLE_AUTH - - ENABLE_AUTO_OWNER - - ENABLE_CODEC_VP8 - - ENABLE_CODEC_VP9 - - ENABLE_CODEC_H264 - - ENABLE_OCTO - - ENABLE_RECORDING - - ENABLE_SCTP - - ENABLE_AUTO_LOGIN - - JICOFO_AUTH_USER - - JICOFO_AUTH_PASSWORD - - JICOFO_ENABLE_BRIDGE_HEALTH_CHECKS - - JICOFO_CONF_INITIAL_PARTICIPANT_WAIT_TIMEOUT - - JICOFO_CONF_SINGLE_PARTICIPANT_TIMEOUT - - JICOFO_ENABLE_HEALTH_CHECKS - - JICOFO_SHORT_ID - - JIBRI_BREWERY_MUC - - JIBRI_REQUEST_RETRIES - - JIBRI_PENDING_TIMEOUT - - JIGASI_BREWERY_MUC - - JIGASI_SIP_URI - - JVB_BREWERY_MUC - - MAX_BRIDGE_PARTICIPANTS - - OCTO_BRIDGE_SELECTION_STRATEGY - - SENTRY_DSN="${JICOFO_SENTRY_DSN:-0}" - - SENTRY_ENVIRONMENT - - SENTRY_RELEASE - - TZ - - XMPP_DOMAIN - - XMPP_AUTH_DOMAIN - - XMPP_INTERNAL_MUC_DOMAIN - - XMPP_MUC_DOMAIN - - XMPP_RECORDER_DOMAIN - - XMPP_SERVER - - XMPP_PORT - depends_on: - - prosody - networks: - fstack: - ipv4_address: 172.99.0.27 - - # Video bridge - jvb: - image: jitsi/jvb:${JITSI_IMAGE_VERSION:-stable-7882} - restart: ${RESTART_POLICY:-unless-stopped} - ports: - - '${JVB_PORT:-10000}:${JVB_PORT:-10000}/udp' - - '127.0.0.1:${JVB_COLIBRI_PORT:-9090}:9090' - volumes: - - ${CONFIG}/jvb:/config:Z - environment: - - DOCKER_HOST_ADDRESS - - ENABLE_COLIBRI_WEBSOCKET - - ENABLE_OCTO - - ENABLE_MULTI_STREAM - - JVB_ADVERTISE_IPS - - JVB_ADVERTISE_PRIVATE_CANDIDATES - - JVB_AUTH_USER - - JVB_AUTH_PASSWORD - - JVB_BREWERY_MUC - - JVB_DISABLE_STUN - - JVB_PORT - - JVB_MUC_NICKNAME - - JVB_STUN_SERVERS - - JVB_OCTO_BIND_ADDRESS - - JVB_OCTO_REGION - - JVB_OCTO_RELAY_ID - - JVB_WS_DOMAIN - - JVB_WS_SERVER_ID - - PUBLIC_URL - - SENTRY_DSN="${JVB_SENTRY_DSN:-0}" - - SENTRY_ENVIRONMENT - - SENTRY_RELEASE - - COLIBRI_REST_ENABLED - - SHUTDOWN_REST_ENABLED - - TZ - - XMPP_AUTH_DOMAIN - - XMPP_INTERNAL_MUC_DOMAIN - - XMPP_SERVER - - XMPP_PORT - depends_on: - - prosody - networks: - fstack: - ipv4_address: 172.99.0.28 - -# Custom network so all services can communicate using a FQDN -networks: - fstack: - external: true diff --git a/fstack/lib/checks.sh b/lib/checks.sh similarity index 100% rename from fstack/lib/checks.sh rename to lib/checks.sh diff --git a/fstack/lib/collabora.sh b/lib/collabora.sh similarity index 59% rename from fstack/lib/collabora.sh rename to lib/collabora.sh index 1b3a547..5790c74 100644 --- a/fstack/lib/collabora.sh +++ b/lib/collabora.sh @@ -5,21 +5,21 @@ 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.." + echo -ne "\n* Configuring /federated/apps/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/ - chown 104 fstack/collabora/data/root/certs/* + 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 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 > fstack/collabora/docker-compose.yml < /federated/apps/collabora/docker-compose.yml < /dev/null + docker-compose -f /federated/apps/collabora/docker-compose.yml -p collabora up -d &> /dev/null # Keep trying collabora port 9980 to make sure it's up # before we proceed @@ -79,9 +79,9 @@ start_collabora() { break else if [ "$RETRY" == 1 ]; then - docker-compose -f fstack/collabora/docker-compose.yml -p collabora down &> /dev/null + docker-compose -f /federated/apps/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" + fail "There was a problem starting service /federated/apps/collabora\nCheck the output of 'docker logs collabora' or turn on\ndebug with -d" fi ((RETRY--)) sleep 7 diff --git a/fstack/lib/dns.sh b/lib/dns.sh similarity index 74% rename from fstack/lib/dns.sh rename to lib/dns.sh index 5721f53..43f2468 100644 --- a/fstack/lib/dns.sh +++ b/lib/dns.sh @@ -5,17 +5,17 @@ PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_dns() { - echo -ne "\n* Configuring fstack/dns container.." + echo -ne "\n* Configuring /federated/apps/dns container.." spin & SPINPID=$! EXTERNAL_IP_LASTDIGIT=`echo $EXTERNALIP | awk -F . '{ print $4 }'` EXTERNALIP_INADDR=`echo $EXTERNALIP | awk -F . '{ print $3"."$2"."$1".in-addr.arpa"}'` EXTERNALIP_INADDR_CAPS=`echo $EXTERNALIP | awk -F . '{ print $3"."$2"."$1".IN-ADDR.ARPA"}'` - mkdir -p fstack/dns/data/root - mkdir -p fstack/dns/data/etc/bind/zones - mkdir -p fstack/dns/data/var/log/letsencrypt + mkdir -p /federated/apps/dns/data/root + mkdir -p /federated/apps/dns/data/etc/bind/zones + mkdir -p /federated/apps/dns/data/var/log/letsencrypt -cat > fstack/dns/docker-compose.yml <<'EOF' +cat > /federated/apps/dns/docker-compose.yml <<'EOF' version: '3.7' services: @@ -26,7 +26,7 @@ services: restart: always working_dir: /root networks: - fstack: + federated: ipv4_address: 172.99.0.10 volumes: - ./data/etc/bind:/etc/bind @@ -39,11 +39,11 @@ services: command: [ "/root/dns-cert.sh" ] networks: - fstack: + federated: external: true EOF -cat > fstack/dns/data/root/dns-cert.sh <<'EOF' +cat > /federated/apps/dns/data/root/dns-cert.sh <<'EOF' #!/bin/sh -x PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin @@ -82,15 +82,15 @@ if [ ! -e /etc/bind/.firstdone ]; then # Run Certbot again to generate the certificate certbot certonly --manual --manual-auth-hook /root/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d \*.$DOMAIN -d $DOMAIN --agree-tos --email hostmaster@$DOMAIN -n &> /dev/null if [ $? -eq 0 ]; then - echo "[fstack]: SUCCESS generating certificates for $DOMAIN!" - echo "[fstack]: Certificates are at /etc/letsencrypt/live/$DOMAIN" + echo "[federated]: SUCCESS generating certificates for $DOMAIN!" + echo "[federated]: Certificates are at /etc/letsencrypt/live/$DOMAIN" echo -ne "#!/bin/sh\n\n/usr/bin/certbot renew -q" > /etc/periodic/15min/certbot-renew.sh chmod +x /etc/periodic/15min/certbot-renew.sh else touch /etc/bind/.failedcert touch /etc/bind/.firstdone - echo "[fstack]: FAILED generating certificates for $DOMAIN" - echo "[fstack]: Check that you have DNS setup properly" + echo "[federated]: FAILED generating certificates for $DOMAIN" + echo "[federated]: Check that you have DNS setup properly" exit 2; fi @@ -110,12 +110,12 @@ elif [ -e /etc/bind/.firstdone ] && [ -e /etc/bind/.failedcert ]; then certbot certonly --manual --manual-auth-hook /root/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d \*.$DOMAIN -d $DOMAIN --agree-tos --email hostmaster@$DOMAIN -n &> /dev/null if [ $? -eq 0 ]; then rm /etc/bind/.failedcert - echo "[fstack]: SUCCESS generating certificates for $DOMAIN!" - echo "[fstack]: Certificates are at /etc/letsencrypt/live/$DOMAIN" + echo "[federated]: SUCCESS generating certificates for $DOMAIN!" + echo "[federated]: Certificates are at /etc/letsencrypt/live/$DOMAIN" else touch /etc/bind/.failedcert - echo "[fstack]: FAILED generating certificates for $DOMAIN" - echo "[fstack]: Check that you have DNS setup properly" + echo "[federated]: FAILED generating certificates for $DOMAIN" + echo "[federated]: Check that you have DNS setup properly" exit 2; fi wait -n @@ -127,9 +127,9 @@ else fi EOF - chmod +x fstack/dns/data/root/dns-cert.sh + chmod +x /federated/apps/dns/data/root/dns-cert.sh -cat > fstack/dns/data/etc/bind/named.conf < /federated/apps/dns/data/etc/bind/named.conf < fstack/dns/data/etc/bind/zones/$DOMAIN < /federated/apps/dns/data/etc/bind/zones/$DOMAIN < fstack/dns/data/etc/bind/zones/$DOMAIN.rev < /federated/apps/dns/data/etc/bind/zones/$DOMAIN.rev < /dev/null } start_dns() { - echo -ne "\n* Starting fstack/dns service.." + echo -ne "\n* Starting /federated/apps/dns service.." spin & SPINPID=$! if [ $DEBUG ]; then - # Start fstack/dns with output to console for debug - docker-compose -f fstack/dns/docker-compose.yml -p dns up - [ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service fstack/dns" + # Start /federated/apps/dns with output to console for debug + docker-compose -f /federated/apps/dns/docker-compose.yml -p dns up + [ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service /federated/apps/dns" else - # Start fstack/dns with output to /dev/null - docker-compose -f fstack/dns/docker-compose.yml -p dns up -d &> /dev/null + # Start /federated/apps/dns with output to /dev/null + docker-compose -f /federated/apps/dns/docker-compose.yml -p dns up -d &> /dev/null # Keep trying to see that certificates are generated RETRY="18" while [ $RETRY -gt 0 ]; do - ls fstack/dns/data/etc/letsencrypt/live/$DOMAIN/*.pem &> /dev/null + ls /federated/apps/dns/data/etc/letsencrypt/live/$DOMAIN/*.pem &> /dev/null if [ $? -eq 0 ]; then kill -9 $SPINPID &> /dev/null echo -ne "done." -# echo -ne "* Certificates at fstack/dns/data/etc/letsencrypt/live/$DOMAIN\n" +# echo -ne "* Certificates at /federated/apps/dns/data/etc/letsencrypt/live/$DOMAIN\n" break else if [ "$RETRY" == 1 ]; then - docker-compose -f fstack/dns/docker-compose.yml -p dns down &> /dev/null - fail "There was a problem starting service fstack/dns\nCheck the output of 'docker logs dns' or turn on\ndebug with -d" + docker-compose -f /federated/apps/dns/docker-compose.yml -p dns down &> /dev/null + fail "There was a problem starting service /federated/apps/dns\nCheck the output of 'docker logs dns' or turn on\ndebug with -d" fi ((RETRY--)) sleep 9 diff --git a/fstack/lib/jitsi.sh b/lib/jitsi.sh similarity index 92% rename from fstack/lib/jitsi.sh rename to lib/jitsi.sh index 18c741b..92d4fd7 100644 --- a/fstack/lib/jitsi.sh +++ b/lib/jitsi.sh @@ -5,29 +5,29 @@ PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_jitsi() { - echo -ne "\n* Configuring fstack/jitsi container.." + echo -ne "\n* Configuring /federated/apps/jitsi container.." spin & SPINPID=$! - if [ ! -d "fstack/jitsi" ]; then - mkdir -p fstack/jitsi -# mkdir -p fstack/jitsi/data/config/keys &> /dev/null -# cp -rf fstack/dns/data/etc/letsencrypt/archive/$DOMAIN/*.pem fstack/jitsi/data/config/keys -# mv fstack/jitsi/data/config/keys/fullchain1.pem fstack/jitsi/data/config/keys/cert.crt -# mv fstack/jitsi/data/config/keys/privkey1.pem fstack/jitsi/data/config/keys/cert.key -# chmod 644 fstack/jitsi/data/config/keys/*.pem + if [ ! -d "/federated/apps/jitsi" ]; then + mkdir -p /federated/apps/jitsi +# mkdir -p /federated/apps/jitsi/data/config/keys &> /dev/null +# cp -rf /federated/apps/dns/data/etc/letsencrypt/archive/$DOMAIN/*.pem apps/jitsi/data/config/keys +# mv /federated/apps/jitsi/data/config/keys/fullchain1.pem apps/jitsi/data/config/keys/cert.crt +# mv /federated/apps/jitsi/data/config/keys/privkey1.pem apps/jitsi/data/config/keys/cert.key +# chmod 644 /federated/apps/jitsi/data/config/keys/*.pem fi DOMAIN_ARRAY=(${DOMAIN//./ }) DOMAIN_FIRST=${DOMAIN_ARRAY[0]} DOMAIN_LAST=${DOMAIN_ARRAY[1]} -# Extract Jitsi into fstack/jitsi -tar zxvf fstack/files/jitsi/stable-* --strip-components 1 -C fstack/jitsi &> /dev/null -[ $? -ne 0 ] && fail "Couldn't extract files/jitsi/stable* into fstack/jitsi" +# Extract Jitsi into /federated/apps/jitsi +tar zxvf /federated/apps/files/jitsi/stable-* --strip-components 1 -C apps/jitsi &> /dev/null +[ $? -ne 0 ] && fail "Couldn't extract files/jitsi/stable* into /federated/apps/jitsi" # Create docker compose file -cat > fstack/jitsi/docker-compose.yml < /federated/apps/jitsi/docker-compose.yml < fstack/jitsi/.env < /federated/apps/jitsi/.env < /dev/null @@ -614,17 +614,17 @@ echo -ne "done." } start_jitsi() { - # Start fstack/jitsi with output to /dev/null - echo -ne "\n* Starting fstack/jitsi service.." + # Start /federated/apps/jitsi with output to /dev/null + echo -ne "\n* Starting /federated/apps/jitsi service.." spin & SPINPID=$! if [ $DEBUG ]; then - # Start fstack/jitsi with output to console for debug - cd fstack/jitsi && docker-compose -f docker-compose.yml -p jitsi up - [ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service fstack/jitsi" + # Start /federated/apps/jitsi with output to console for debug + cd /federated/apps/jitsi && docker-compose -f docker-compose.yml -p jitsi up + [ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service /federated/apps/jitsi" else - cd fstack/jitsi && docker-compose -f docker-compose.yml -p jitsi up -d &> /dev/null + cd /federated/apps/jitsi && docker-compose -f docker-compose.yml -p jitsi up -d &> /dev/null # Keep trying jitsi port 443 to make sure it's up # before we proceed @@ -637,7 +637,7 @@ start_jitsi() { if [ "$RETRY" == 1 ]; then docker-compose -f docker-compose.yml -p jitsi down &> /dev/null kill -9 $SPINPID &> /dev/null - fail "There was a problem starting service fstack/jitsi\nCheck the output of 'docker logs jitsi' or turn on\ndebug with -d" + fail "There was a problem starting service /federated/apps/jitsi\nCheck the output of 'docker logs jitsi' or turn on\ndebug with -d" fi ((RETRY--)) sleep 7 diff --git a/fstack/lib/ldap.sh b/lib/ldap.sh similarity index 75% rename from fstack/lib/ldap.sh rename to lib/ldap.sh index 744552a..ad0ba6b 100644 --- a/fstack/lib/ldap.sh +++ b/lib/ldap.sh @@ -5,17 +5,17 @@ PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_ldap() { - echo -ne "\n* Configuring fstack/ldap container.." + echo -ne "\n* Configuring /federated/apps/ldap container.." spin & SPINPID=$! - if [ ! -d "fstack/ldap" ]; then - mkdir -p fstack/ldap/data &> /dev/null - mkdir -p fstack/ldap/data/var/lib/ldap &> /dev/null - mkdir -p fstack/ldap/data/etc/ldap/slap.d &> /dev/null - mkdir -p fstack/ldap/data/certs &> /dev/null - mkdir -p fstack/ldap/data/root &> /dev/null - cp -rf fstack/dns/data/etc/letsencrypt/archive/$DOMAIN/*.pem fstack/ldap/data/certs/ + if [ ! -d "/federated/apps/ldap" ]; then + mkdir -p /federated/apps/ldap/data &> /dev/null + mkdir -p /federated/apps/ldap/data/var/lib/ldap &> /dev/null + mkdir -p /federated/apps/ldap/data/etc/ldap/slap.d &> /dev/null + mkdir -p /federated/apps/ldap/data/certs &> /dev/null + mkdir -p /federated/apps/ldap/data/root &> /dev/null + cp -rf /federated/apps/dns/data/etc/letsencrypt/archive/$DOMAIN/*.pem apps/ldap/data/certs/ fi DOMAIN_ARRAY=(${DOMAIN//./ }) @@ -23,7 +23,7 @@ config_ldap() { DOMAIN_LAST=${DOMAIN_ARRAY[1]} LDAPADMINPASS=`echo -n $ADMINPASS | openssl dgst -sha1 -binary | openssl enc -base64 | awk '{print "{SHA}"$0}'` -cat > fstack/ldap/docker-compose.yml < /federated/apps/ldap/docker-compose.yml < fstack/ldap/data/root/ldap.ldif < /federated/apps/ldap/data/root/ldap.ldif < fstack/ldap/data/root/ldap.sh <<'EOF' +cat > /federated/apps/ldap/data/root/ldap.sh <<'EOF' #!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin @@ -141,24 +141,24 @@ if [ ! -f .initialized ]; then fi EOF -chmod +x fstack/ldap/data/root/ldap.sh +chmod +x /federated/apps/ldap/data/root/ldap.sh kill -9 $SPINPID &> /dev/null echo -ne "done." } start_ldap() { - # Start fstack/ldap with output to /dev/null - echo -ne "\n* Starting fstack/ldap service.." + # Start /federated/apps/ldap with output to /dev/null + echo -ne "\n* Starting /federated/apps/ldap service.." spin & SPINPID=$! if [ $DEBUG ]; then - # Start fstack/ldap with output to console for debug - docker-compose -f fstack/ldap/docker-compose.yml -p ldap up - [ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service fstack/ldap" + # Start /federated/apps/ldap with output to console for debug + docker-compose -f /federated/apps/ldap/docker-compose.yml -p ldap up + [ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service /federated/apps/ldap" else - docker-compose -f fstack/ldap/docker-compose.yml -p ldap up -d &> /dev/null + docker-compose -f /federated/apps/ldap/docker-compose.yml -p ldap up -d &> /dev/null # Keep trying ldap port to make sure it's up # before we proceed @@ -169,9 +169,9 @@ start_ldap() { break else if [ "$RETRY" == 1 ]; then - docker-compose -f fstack/ldap/docker-compose.yml -p ldap down &> /dev/null + docker-compose -f /federated/apps/ldap/docker-compose.yml -p ldap down &> /dev/null kill -9 $SPINPID &> /dev/null - fail "There was a problem starting service fstack/ldap\nCheck the output of 'docker logs ldap' or turn on\ndebug with -d" + fail "There was a problem starting service /federated/apps/ldap\nCheck the output of 'docker logs ldap' or turn on\ndebug with -d" fi ((RETRY--)) sleep 7 diff --git a/fstack/lib/listmonk.sh b/lib/listmonk.sh similarity index 64% rename from fstack/lib/listmonk.sh rename to lib/listmonk.sh index 7b15bf4..4868765 100644 --- a/fstack/lib/listmonk.sh +++ b/lib/listmonk.sh @@ -5,19 +5,19 @@ PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_listmonk() { - echo -ne "\n* Configuring fstack/listmonk container.." + echo -ne "\n* Configuring /federated/apps/listmonk container.." spin & SPINPID=$! - if [ ! -d "fstack/listmonk" ]; then - mkdir -p fstack/listmonk/static fstack/listmonk/data/listmonk + if [ ! -d "/federated/apps/listmonk" ]; then + mkdir -p /federated/apps/listmonk/static apps/listmonk/data/listmonk fi DOMAIN_ARRAY=(${DOMAIN//./ }) DOMAIN_FIRST=${DOMAIN_ARRAY[0]} DOMAIN_LAST=${DOMAIN_ARRAY[1]} -cat > fstack/listmonk/docker-compose.yml < /federated/apps/listmonk/docker-compose.yml < fstack/listmonk/data/listmonk/config.toml < /federated/apps/listmonk/data/listmonk/config.toml < /dev/null + docker-compose -f /federated/apps/listmonk/docker-compose.yml -p listmonk up -d &> /dev/null # Keep trying listmonk port 9000 to make sure it's up # before we proceed @@ -90,9 +90,9 @@ start_listmonk() { break else if [ "$RETRY" == 1 ]; then - docker-compose -f fstack/listmonk/docker-compose.yml -p listmonk down &> /dev/null + docker-compose -f /federated/apps/listmonk/docker-compose.yml -p listmonk down &> /dev/null kill -9 $SPINPID &> /dev/null - fail "There was a problem starting service fstack/listmonk\nCheck the output of 'docker logs listmonk' or turn on\ndebug with -d" + fail "There was a problem starting service /federated/apps/listmonk\nCheck the output of 'docker logs listmonk' or turn on\ndebug with -d" fi ((RETRY--)) sleep 7 diff --git a/fstack/lib/mail.sh b/lib/mail.sh similarity index 66% rename from fstack/lib/mail.sh rename to lib/mail.sh index 4a032be..957585b 100644 --- a/fstack/lib/mail.sh +++ b/lib/mail.sh @@ -5,24 +5,24 @@ PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_mail() { - echo -ne "\n* Configuring fstack/mail container.." + echo -ne "\n* Configuring /federated/apps/mail container.." spin & SPINPID=$! - if [ ! -d "fstack/mail" ]; then - mkdir -p fstack/mail/data/root/certs &> /dev/null - mkdir -p fstack/mail/data/var/mail &> /dev/null - mkdir -p fstack/mail/data/var/mail-state &> /dev/null - mkdir -p fstack/mail/data/var/log/mail &> /dev/null - mkdir -p fstack/mail/data/tmp/docker-mailserver &> /dev/null - cp -rf fstack/dns/data/etc/letsencrypt/archive/$DOMAIN/*.pem fstack/mail/data/root/certs/ + if [ ! -d "/federated/apps/mail" ]; then + mkdir -p /federated/apps/mail/data/root/certs &> /dev/null + mkdir -p /federated/apps/mail/data/var/mail &> /dev/null + mkdir -p /federated/apps/mail/data/var/mail-state &> /dev/null + mkdir -p /federated/apps/mail/data/var/log/mail &> /dev/null + mkdir -p /federated/apps/mail/data/tmp/docker-mailserver &> /dev/null + cp -rf /federated/apps/dns/data/etc/letsencrypt/archive/$DOMAIN/*.pem apps/mail/data/root/certs/ fi DOMAIN_ARRAY=(${DOMAIN//./ }) DOMAIN_FIRST=${DOMAIN_ARRAY[0]} DOMAIN_LAST=${DOMAIN_ARRAY[1]} -cat > fstack/mail/docker-compose.yml < /federated/apps/mail/docker-compose.yml < fstack/mail/data/tmp/docker-mailserver/postfix-main.cf <<'EOF' +cat > /federated/apps/mail/data/tmp/docker-mailserver/postfix-main.cf <<'EOF' smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unknown_sender_domain, reject_sender_login_mismatch smtpd_sender_login_maps = ldap:/etc/postfix/ldap-aliases.cf EOF @@ -106,16 +106,16 @@ EOF } start_mail() { - echo -ne "\n* Starting fstack/mail service.." + echo -ne "\n* Starting /federated/apps/mail service.." spin & SPINPID=$! if [ $DEBUG ]; then - # Start fstack/mail with output to console for debug - docker-compose -f fstack/mail/docker-compose.yml -p mail up - [ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service fstack/mail" + # Start /federated/apps/mail with output to console for debug + docker-compose -f /federated/apps/mail/docker-compose.yml -p mail up + [ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service /federated/apps/mail" else - docker-compose -f fstack/mail/docker-compose.yml -p mail up -d &> /dev/null + docker-compose -f /federated/apps/mail/docker-compose.yml -p mail up -d &> /dev/null # Keep trying mail port 25 to make sure it's up # before we proceed @@ -126,9 +126,9 @@ start_mail() { break else if [ "$RETRY" == 1 ]; then - docker-compose -f fstack/mail/docker-compose.yml -p mail down &> /dev/null + docker-compose -f /federated/apps/mail/docker-compose.yml -p mail down &> /dev/null kill -9 $SPINPID &> /dev/null - fail "There was a problem starting service fstack/mail\nCheck the output of 'docker logs mail' or turn on\ndebug with -d" + fail "There was a problem starting service /federated/apps/mail\nCheck the output of 'docker logs mail' or turn on\ndebug with -d" fi ((RETRY--)) sleep 7 @@ -140,20 +140,20 @@ start_mail() { docker exec -it mail setup config dkim keysize 2048 domain $DOMAIN &> /dev/null [ $? -ne 0 ] && fail "Couldn't generate DKIM record" - # Insert the DKIM DNS TXT entry into fstack/dns container - cat fstack/mail/data/tmp/docker-mailserver/opendkim/keys/$DOMAIN/mail.txt >> fstack/dns/data/etc/bind/zones/$DOMAIN - [ $? -ne 0 ] && fail "Couldn't insert DKIM record into fstack/dns container" + # Insert the DKIM DNS TXT entry into /federated/apps/dns container + cat /federated/apps/mail/data/tmp/docker-mailserver/opendkim/keys/$DOMAIN/mail.txt >> apps/dns/data/etc/bind/zones/$DOMAIN + [ $? -ne 0 ] && fail "Couldn't insert DKIM record into /federated/apps/dns container" - # Insert the DMARC DNS TXT entry into fstack/dns container - echo "_dmarc.$DOMAIN. IN TXT \"v=DMARC1; p=none; rua=mailto:admin@$DOMAIN; ruf=mailto:admin@$DOMAIN; sp=none; ri=86400\"" >> fstack/dns/data/etc/bind/zones/$DOMAIN - [ $? -ne 0 ] && fail "Couldn't insert DMARC record into fstack/dns container" + # Insert the DMARC DNS TXT entry into /federated/apps/dns container + echo "_dmarc.$DOMAIN. IN TXT \"v=DMARC1; p=none; rua=mailto:admin@$DOMAIN; ruf=mailto:admin@$DOMAIN; sp=none; ri=86400\"" >> /federated/apps/dns/data/etc/bind/zones/$DOMAIN + [ $? -ne 0 ] && fail "Couldn't insert DMARC record into /federated/apps/dns container" - # Reload DNS configuration in fstack/dns container + # Reload DNS configuration in /federated/apps/dns container docker exec -it dns rndc reload $DOMAIN &> /dev/null - [ $? -ne 0 ] && fail "Couldn't run rndc reload DOMAIN on fstack/dns container" + [ $? -ne 0 ] && fail "Couldn't run rndc reload DOMAIN on /federated/apps/dns container" docker exec -it dns rndc reload &> /dev/null - [ $? -ne 0 ] && fail "Couldn't run rndc reload on fstack/dns container" + [ $? -ne 0 ] && fail "Couldn't run rndc reload on /federated/apps/dns container" kill -9 $SPINPID &> /dev/null echo -ne "done." diff --git a/fstack/lib/matrix.sh b/lib/matrix.sh similarity index 74% rename from fstack/lib/matrix.sh rename to lib/matrix.sh index e24a179..0915a39 100644 --- a/fstack/lib/matrix.sh +++ b/lib/matrix.sh @@ -5,21 +5,21 @@ PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_matrix() { - echo -ne "\n* Configuring fstack/matrix container.." + echo -ne "\n* Configuring /federated/apps/matrix container.." spin & SPINPID=$! - if [ ! -d "fstack/matrix" ]; then - mkdir -p fstack/matrix/data/matrix fstack/matrix/data/element &> /dev/null - cp -rf fstack/dns/data/etc/letsencrypt/archive/$DOMAIN/*.pem fstack/matrix/data/matrix - chmod 644 fstack/matrix/data/matrix/*.pem + if [ ! -d "/federated/apps/matrix" ]; then + mkdir -p /federated/apps/matrix/data/matrix apps/matrix/data/element &> /dev/null + cp -rf /federated/apps/dns/data/etc/letsencrypt/archive/$DOMAIN/*.pem apps/matrix/data/matrix + chmod 644 /federated/apps/matrix/data/matrix/*.pem fi DOMAIN_ARRAY=(${DOMAIN//./ }) DOMAIN_FIRST=${DOMAIN_ARRAY[0]} DOMAIN_LAST=${DOMAIN_ARRAY[1]} -cat > fstack/matrix/docker-compose.yml < /federated/apps/matrix/docker-compose.yml < fstack/matrix/data/element/element-config.json < /federated/apps/matrix/data/element/element-config.json < fstack/matrix/data/element/element-config.json < /dev/null +docker run -it --rm -v "`pwd`//federated/apps/matrix/data/matrix:/data" -e SYNAPSE_SERVER_NAME=matrix.$DOMAIN -e SYNAPSE_REPORT_STATS=yes matrixdotorg/synapse:latest generate &> /dev/null [ $? -ne 0 ] && fail "Couldn't run docker matrixdotorg/synapse:latest generate" # Take out default Sqlite database config -sed -i 's!database: /data/homeserver.db!!g' fstack/matrix/data/matrix/homeserver.yaml -sed -i 's!database:!!g' fstack/matrix/data/matrix/homeserver.yaml -sed -i 's!name: sqlite3!!g' fstack/matrix/data/matrix/homeserver.yaml -sed -i 's!args:!!g' fstack/matrix/data/matrix/homeserver.yaml +sed -i 's!database: /data/homeserver.db!!g' /federated/apps/matrix/data/matrix/homeserver.yaml +sed -i 's!database:!!g' /federated/apps/matrix/data/matrix/homeserver.yaml +sed -i 's!name: sqlite3!!g' /federated/apps/matrix/data/matrix/homeserver.yaml +sed -i 's!args:!!g' /federated/apps/matrix/data/matrix/homeserver.yaml # Insert our Postgres and LDAP config -cat >> fstack/matrix/data/matrix/homeserver.yaml <> /federated/apps/matrix/data/matrix/homeserver.yaml < /dev/null + docker-compose -f /federated/apps/matrix/docker-compose.yml -p matrix up -d &> /dev/null # Keep trying matrix port 8008 to make sure it's up # before we proceed @@ -206,9 +206,9 @@ start_matrix() { break else if [ "$RETRY" == 1 ]; then - docker-compose -f fstack/matrix/docker-compose.yml -p matrix down &> /dev/null + docker-compose -f /federated/apps/matrix/docker-compose.yml -p matrix down &> /dev/null kill -9 $SPINPID &> /dev/null - fail "There was a problem starting service fstack/matrix\nCheck the output of 'docker logs matrix' or turn on\ndebug with -d" + fail "There was a problem starting service /federated/apps/matrix\nCheck the output of 'docker logs matrix' or turn on\ndebug with -d" fi ((RETRY--)) sleep 7 diff --git a/fstack/lib/network.sh b/lib/network.sh similarity index 71% rename from fstack/lib/network.sh rename to lib/network.sh index 279c02a..ae1352a 100644 --- a/fstack/lib/network.sh +++ b/lib/network.sh @@ -9,8 +9,8 @@ config_network() { spin & SPINPID=$! - if [ ! `docker network ls -q --filter name=fstack` ]; then - docker network create --subnet 172.99.0.0/16 fstack &> /dev/null + if [ ! `docker network ls -q --filter name=federated` ]; then + docker network create --subnet 172.99.0.0/16 federated &> /dev/null [ $? -ne 0 ] && fail "Couldn't run docker network create" fi diff --git a/fstack/lib/nextcloud.sh b/lib/nextcloud.sh similarity index 81% rename from fstack/lib/nextcloud.sh rename to lib/nextcloud.sh index 1256deb..13f41d1 100644 --- a/fstack/lib/nextcloud.sh +++ b/lib/nextcloud.sh @@ -5,19 +5,19 @@ PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_nextcloud() { - echo -ne "\n* Configuring fstack/nextcloud container.." + echo -ne "\n* Configuring /federated/apps/nextcloud container.." spin & SPINPID=$! - if [ ! -d "fstack/nextcloud" ]; then - mkdir -p fstack/nextcloud/data/var/www/html &> /dev/null + if [ ! -d "/federated/apps/nextcloud" ]; then + mkdir -p /federated/apps/nextcloud/data/var/www/html &> /dev/null fi DOMAIN_ARRAY=(${DOMAIN//./ }) DOMAIN_FIRST=${DOMAIN_ARRAY[0]} DOMAIN_LAST=${DOMAIN_ARRAY[1]} -cat > fstack/nextcloud/docker-compose.yml < /federated/apps/nextcloud/docker-compose.yml < fstack/nextcloud/supervisord.conf < /federated/apps/nextcloud/supervisord.conf < fstack/nextcloud/Dockerfile < /federated/apps/nextcloud/Dockerfile < fstack/nextcloud/data/nextcloud.sh < /federated/apps/nextcloud/data/nextcloud.sh < /dev/null echo -ne "done." } start_nextcloud() { - echo -ne "\n* Starting fstack/nextcloud service.." + echo -ne "\n* Starting /federated/apps/nextcloud service.." spin & SPINPID=$! if [ $DEBUG ]; then - # Start fstack/nextcloud with output to console for debug - docker-compose -f fstack/nextcloud/docker-compose.yml -p nextcloud up --build - [ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service fstack/nextcloud" + # Start /federated/apps/nextcloud with output to console for debug + docker-compose -f /federated/apps/nextcloud/docker-compose.yml -p nextcloud up --build + [ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service /federated/apps/nextcloud" else - docker-compose -f fstack/nextcloud/docker-compose.yml -p nextcloud up --build -d &> /dev/null + docker-compose -f /federated/apps/nextcloud/docker-compose.yml -p nextcloud up --build -d &> /dev/null # Keep trying nextcloud port 80 to make sure it's up # before we proceed @@ -191,9 +191,9 @@ start_nextcloud() { break else if [ "$RETRY" == 1 ]; then - docker-compose -f fstack/nextcloud/docker-compose.yml -p nextcloud down &> /dev/null + docker-compose -f /federated/apps/nextcloud/docker-compose.yml -p nextcloud down &> /dev/null kill -9 $SPINPID &> /dev/null - fail "There was a problem starting service fstack/nextcloud\nCheck the output of 'docker logs nextcloud' or turn on\ndebug with -d" + fail "There was a problem starting service /federated/apps/nextcloud\nCheck the output of 'docker logs nextcloud' or turn on\ndebug with -d" fi ((RETRY--)) sleep 7 @@ -202,14 +202,14 @@ start_nextcloud() { fi # Move nextcloud.sh and set nextcloud.sh executable - mv fstack/nextcloud/data/nextcloud.sh fstack/nextcloud/data/var/www/html/ + mv /federated/apps/nextcloud/data/nextcloud.sh apps/nextcloud/data/var/www/html/ docker exec -it nextcloud chown www-data:root /var/www/html/nextcloud.sh docker exec -it nextcloud chmod 755 /var/www/html/nextcloud.sh - [ $? -ne 0 ] && fail "Couldn't chown nextcloud.sh in fstack/nextcloud container" + [ $? -ne 0 ] && fail "Couldn't chown nextcloud.sh in /federated/apps/nextcloud container" # Run nextcloud.sh - Setup LDAP, configuration for nextcloud docker exec -it -u 33 nextcloud /var/www/html/nextcloud.sh &> /dev/null - [ $? -ne 0 ] && fail "Couldn't run nextcloud.sh inside fstack/nextcloud container" + [ $? -ne 0 ] && fail "Couldn't run nextcloud.sh inside /federated/apps/nextcloud container" kill -9 $SPINPID &> /dev/null echo -ne "done." diff --git a/fstack/lib/panel.sh b/lib/panel.sh similarity index 74% rename from fstack/lib/panel.sh rename to lib/panel.sh index 9cb5ef7..69ad482 100644 --- a/fstack/lib/panel.sh +++ b/lib/panel.sh @@ -5,19 +5,19 @@ PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_panel() { - echo -ne "\n* Configuring fstack/panel container.." + echo -ne "\n* Configuring /federated/apps/panel container.." spin & SPINPID=$! - if [ ! -d "fstack/panel" ]; then - mkdir -p fstack/panel + if [ ! -d "/federated/apps/panel" ]; then + mkdir -p /federated/apps/panel fi DOMAIN_ARRAY=(${DOMAIN//./ }) DOMAIN_FIRST=${DOMAIN_ARRAY[0]} DOMAIN_LAST=${DOMAIN_ARRAY[1]} -cat > fstack/panel/ansible_hosts < /federated/apps/panel/ansible_hosts < fstack/panel/Dockerfile < /federated/apps/panel/Dockerfile < fstack/panel/docker-compose.yml < /federated/apps/panel/docker-compose.yml < /dev/null + docker-compose -f /federated/apps/panel/docker-compose.yml -p panel up --build -d &> /dev/null # Keep trying panel port 443 to make sure it's up # before we proceed @@ -112,9 +112,9 @@ start_panel() { break else if [ "$RETRY" == 1 ]; then - docker-compose -f fstack/panel/docker-compose.yml -p panel down &> /dev/null + docker-compose -f /federated/apps/panel/docker-compose.yml -p panel down &> /dev/null kill -9 $SPINPID &> /dev/null - fail "There was a problem starting service fstack/panel\nCheck the output of 'docker logs panel' or turn on\ndebug with -d" + fail "There was a problem starting service /federated/apps/panel\nCheck the output of 'docker logs panel' or turn on\ndebug with -d" fi ((RETRY--)) sleep 7 diff --git a/fstack/lib/postgresql.sh b/lib/postgresql.sh similarity index 61% rename from fstack/lib/postgresql.sh rename to lib/postgresql.sh index a6fe9e8..de9f9e4 100644 --- a/fstack/lib/postgresql.sh +++ b/lib/postgresql.sh @@ -5,23 +5,23 @@ PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_postgresql() { - echo -ne "\n* Configuring fstack/postgresql container.." + echo -ne "\n* Configuring /federated/apps/postgresql container.." spin & SPINPID=$! - if [ ! -d "fstack/postgresql" ]; then - mkdir -p fstack/postgresql/data/var/lib/postgresql fstack/postgresql/data/docker-entrypoint-initdb.d - cp fstack/dns/data/etc/letsencrypt/archive/$DOMAIN/fullchain1.pem fstack/postgresql/data/var/lib/postgresql/server.crt - cp fstack/dns/data/etc/letsencrypt/archive/$DOMAIN/privkey1.pem fstack/postgresql/data/var/lib/postgresql/server.key - chown 999 fstack/postgresql/data/var/lib/postgresql/server.* - chmod 600 fstack/postgresql/data/var/lib/postgresql/server.* + if [ ! -d "/federated/apps/postgresql" ]; then + mkdir -p /federated/apps/postgresql/data/var/lib/postgresql apps/postgresql/data/docker-entrypoint-initdb.d + cp /federated/apps/dns/data/etc/letsencrypt/archive/$DOMAIN/fullchain1.pem apps/postgresql/data/var/lib/postgresql/server.crt + cp /federated/apps/dns/data/etc/letsencrypt/archive/$DOMAIN/privkey1.pem apps/postgresql/data/var/lib/postgresql/server.key + chown 999 /federated/apps/postgresql/data/var/lib/postgresql/server.* + chmod 600 /federated/apps/postgresql/data/var/lib/postgresql/server.* fi DOMAIN_ARRAY=(${DOMAIN//./ }) DOMAIN_FIRST=${DOMAIN_ARRAY[0]} DOMAIN_LAST=${DOMAIN_ARRAY[1]} -cat > fstack/postgresql/docker-compose.yml < /federated/apps/postgresql/docker-compose.yml < fstack/postgresql/data/docker-entrypoint-initdb.d/init.sql < /federated/apps/postgresql/data/docker-entrypoint-initdb.d/init.sql < /dev/null + docker-compose -f /federated/apps/postgresql/docker-compose.yml -p postgresql up -d &> /dev/null # Keep trying postgresql port 5432 to make sure it's up # before we proceed @@ -98,9 +98,9 @@ start_postgresql() { break else if [ "$RETRY" == 1 ]; then - docker-compose -f fstack/postgresql/docker-compose.yml -p postgresql down &> /dev/null + docker-compose -f /federated/apps/postgresql/docker-compose.yml -p postgresql down &> /dev/null kill -9 $SPINPID &> /dev/null - fail "There was a problem starting service fstack/postgresql\nCheck the output of 'docker logs postgresql' or turn on\ndebug with -d" + fail "There was a problem starting service /federated/apps/postgresql\nCheck the output of 'docker logs postgresql' or turn on\ndebug with -d" fi ((RETRY--)) sleep 7 diff --git a/fstack/lib/proxy.sh b/lib/proxy.sh similarity index 53% rename from fstack/lib/proxy.sh rename to lib/proxy.sh index 8ac3d6b..90e29a8 100644 --- a/fstack/lib/proxy.sh +++ b/lib/proxy.sh @@ -5,21 +5,21 @@ PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_proxy() { - echo -ne "\n* Configuring fstack/proxy container.." + echo -ne "\n* Configuring /federated/apps/proxy container.." spin & SPINPID=$! - if [ ! -d "fstack/proxy" ]; then - mkdir -p fstack/proxy/data/root/certs &> /dev/null - cp fstack/dns/data/etc/letsencrypt/archive/$DOMAIN/fullchain1.pem fstack/proxy/data/root/certs/$DOMAIN.crt - cp fstack/dns/data/etc/letsencrypt/archive/$DOMAIN/privkey1.pem fstack/proxy/data/root/certs/$DOMAIN.key + if [ ! -d "/federated/apps/proxy" ]; then + mkdir -p /federated/apps/proxy/data/root/certs &> /dev/null + cp /federated/apps/dns/data/etc/letsencrypt/archive/$DOMAIN/fullchain1.pem apps/proxy/data/root/certs/$DOMAIN.crt + cp /federated/apps/dns/data/etc/letsencrypt/archive/$DOMAIN/privkey1.pem apps/proxy/data/root/certs/$DOMAIN.key fi DOMAIN_ARRAY=(${DOMAIN//./ }) DOMAIN_FIRST=${DOMAIN_ARRAY[0]} DOMAIN_LAST=${DOMAIN_ARRAY[1]} -cat > fstack/proxy/docker-compose.yml < /federated/apps/proxy/docker-compose.yml < /dev/null + docker-compose -f /federated/apps/proxy/docker-compose.yml -p proxy up -d &> /dev/null # Keep trying proxy port 443 to make sure it's up # before we proceed @@ -70,9 +70,9 @@ start_proxy() { break else if [ "$RETRY" == 1 ]; then - docker-compose -f fstack/proxy/docker-compose.yml -p proxy down &> /dev/null + docker-compose -f /federated/apps/proxy/docker-compose.yml -p proxy down &> /dev/null kill -9 $SPINPID &> /dev/null - fail "There was a problem starting service fstack/proxy\nCheck the output of 'docker logs proxy' or turn on\ndebug with -d" + fail "There was a problem starting service /federated/apps/proxy\nCheck the output of 'docker logs proxy' or turn on\ndebug with -d" fi ((RETRY--)) sleep 7 diff --git a/fstack/lib/vaultwarden.sh b/lib/vaultwarden.sh similarity index 62% rename from fstack/lib/vaultwarden.sh rename to lib/vaultwarden.sh index 53748d2..d20e37c 100644 --- a/fstack/lib/vaultwarden.sh +++ b/lib/vaultwarden.sh @@ -5,19 +5,19 @@ PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin config_vaultwarden() { - echo -ne "\n* Configuring fstack/vaultwarden container.." + echo -ne "\n* Configuring /federated/apps/vaultwarden container.." spin & SPINPID=$! - if [ ! -d "fstack/vaultwarden" ]; then - mkdir -p fstack/vaultwarden/data/data + if [ ! -d "/federated/apps/vaultwarden" ]; then + mkdir -p /federated/apps/vaultwarden/data/data fi DOMAIN_ARRAY=(${DOMAIN//./ }) DOMAIN_FIRST=${DOMAIN_ARRAY[0]} DOMAIN_LAST=${DOMAIN_ARRAY[1]} -cat > fstack/vaultwarden/docker-compose.yml < /federated/apps/vaultwarden/docker-compose.yml < /dev/null + docker-compose -f /federated/apps/vaultwarden/docker-compose.yml -p vaultwarden up -d &> /dev/null # Keep trying vaultwarden port 80 to make sure it's up # before we proceed @@ -73,9 +73,9 @@ start_vaultwarden() { break else if [ "$RETRY" == 1 ]; then - docker-compose -f fstack/vaultwarden/docker-compose.yml -p vaultwarden down &> /dev/null + docker-compose -f /federated/apps/vaultwarden/docker-compose.yml -p vaultwarden down &> /dev/null kill -9 $SPINPID &> /dev/null - fail "There was a problem starting service fstack/vaultwarden\nCheck the output of 'docker logs vaultwarden' or turn on\ndebug with -d" + fail "There was a problem starting service /federated/apps/vaultwarden\nCheck the output of 'docker logs vaultwarden' or turn on\ndebug with -d" fi ((RETRY--)) sleep 7