diff --git a/bin/.env b/bin/.env index dd5845e..36c1138 100644 --- a/bin/.env +++ b/bin/.env @@ -1,8 +1,8 @@ # Domain name -DOMAIN="federated.sh" +DOMAIN="customer1.federatedcomputer.cloud" # Company name -COMPANY="FederatedSH Org" +COMPANY="Customer1 Federated Install" # Country Code (US, HK, GB, JP, etc) COUNTRY="US" diff --git a/bin/convertdomain b/bin/convertdomain index c79df66..18a8761 100755 --- a/bin/convertdomain +++ b/bin/convertdomain @@ -5,6 +5,8 @@ # Converts Federated Core services # From: customer.federatedcomputer.cloud # To: domain.com +# +# Assumes all services are currently running . /federated/lib/functions.sh . /federated/bin/.env @@ -241,6 +243,7 @@ convert_nextcloud() { start_service_convert "nextcloud" "nc -z $SERVICE_IP 80 &> /dev/null" docker exec -it -u 33 nextcloud /var/www/html/config.sh + docker exec -it -u 33 nextcloud bash -c "/var/www/html/occ mail:account:create admin admin admin@$DOMAIN_NEW mail.$DOMAIN_NEW 993 ssl admin@$DOMAIN_NEW $ADMINPASS mail.$DOMAIN_NEW 465 ssl admin@$DOMAIN_NEW $ADMINPASS password" &> /dev/null echo -ne "done." } @@ -252,6 +255,9 @@ convert_matrix() { sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/matrix/.env sed -i "s#dc=federatedcomputer,dc=cloud#dc=$DOMAIN_FIRST,dc=$DOMAIN_LAST#g" /federated/apps/matrix/data/matrix/homeserver.yaml sed -i "s#server_name: \"matrix.$DOMAIN\"#server_name: \"matrix.$DOMAIN_NEW\"#g" /federated/apps/matrix/data/matrix/homeserver.yaml + sed -i "s#smtp_host: \"mail.$DOMAIN\"#smtp_host: \"mail.$DOMAIN_NEW\"#g" /federated/apps/matrix/data/matrix/homeserver.yaml + sed -i "s#notif_from:.*#notif_from: \"Your Friendly %(app)s homeserver \"#g" /federated/apps/matrix/data/matrix/homeserver.yaml + sed -i "s#app_name:.*#app_name: $ORG_NEW Matrix Server#g" /federated/apps/matrix/data/matrix/homeserver.yaml sed -i "s#postgresql.$DOMAIN#postgresql.$DOMAIN_NEW#g" /federated/apps/matrix/data/matrix/homeserver.yaml sed -i "s#ldap.$DOMAIN#ldap.$DOMAIN_NEW#g" /federated/apps/matrix/data/matrix/homeserver.yaml sed -i "s#$DOMAIN.crt#$DOMAIN_NEW.crt#g" /federated/apps/matrix/data/matrix/homeserver.yaml @@ -298,6 +304,11 @@ convert_listmonk() { # Start service with command to make sure it's up before proceeding start_service_convert "listmonk" "nc -z $SERVICE_IP 9000 &> /dev/null" + # Change app.root_url and other settings to our domain + docker exec -it postgresql psql -U listmonk -c "update settings set value='\"http://listmonk.$DOMAIN_NEW\"' where key='app.root_url'" &> /dev/null + docker exec -it postgresql psql -U listmonk -c "update settings set value='\"listmonk \"' where key='app.from_email'" &> /dev/null + docker exec -it postgresql psql -U listmonk -c "update settings set value='[{\"host\": \"mail.$DOMAIN_NEW\", \"port\": 587, \"enabled\": true, \"password\": \"$ADMINPASS\", \"tls_type\": \"STARTTLS\", \"username\": \"admin\", \"max_conns\": 10, \"idle_timeout\": \"15s\", \"wait_timeout\": \"5s\", \"auth_protocol\": \"login\", \"email_headers\": [], \"hello_hostname\": \"\", \"max_msg_retries\": 2, \"tls_skip_verify\": false}, {\"host\": \"smtp.gmail.com\", \"port\": 465, \"enabled\": false, \"password\": \"password\", \"tls_type\": \"TLS\", \"username\": \"username@gmail.com\", \"max_conns\": 10, \"idle_timeout\": \"15s\", \"wait_timeout\": \"5s\", \"auth_protocol\": \"login\", \"email_headers\": [], \"hello_hostname\": \"\", \"max_msg_retries\": 2, \"tls_skip_verify\": false}]' where key='smtp';" &> /dev/null + echo -ne "done." } convert_vaultwarden() { @@ -340,6 +351,7 @@ convert_wireguard() { sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/wireguard/.env sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/wireguard/data/config/.donoteditthisfile sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/wireguard/data/config/peer1/peer1.conf + sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/wireguard/data/config/coredns/Corefile # Grab the container IP from docker-compose SERVICE_IP=`grep ipv4_address /federated/apps/wireguard/docker-compose.yml | awk '{ print $2 }'` @@ -410,7 +422,7 @@ convert_caddy() { sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/caddy/docker-compose.yml sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/caddy/.env - sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/data/etc/caddy/Caddyfile + sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/caddy/data/etc/caddy/Caddyfile # Grab the container IP from docker-compose SERVICE_IP=`grep ipv4_address /federated/apps/caddy/docker-compose.yml | awk '{ print $2 }'` diff --git a/bin/install-federated b/bin/install-federated index 75755cd..8a0fea1 100755 --- a/bin/install-federated +++ b/bin/install-federated @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -x # # Federated installation script @@ -68,10 +68,10 @@ get_config() { failcheck "$DOMAIN is not a valid domain.com or sub.domain.com" fi - ADMINPASS=$(create_password); - echo "$ADMINPASS" > /federated/bin/.adminpass - LISTMONKPASS=$(create_password); - echo "$LISTMONKPASS" >> /federated/bin/.adminpass +# ADMINPASS=$(create_password); +# echo "$ADMINPASS" > /federated/bin/.adminpass +# LISTMONKPASS=$(create_password); +# echo "$LISTMONKPASS" >> /federated/bin/.adminpass } while getopts d OPTION; do diff --git a/lib/functions.sh b/lib/functions.sh index f1ce577..3f24180 100644 --- a/lib/functions.sh +++ b/lib/functions.sh @@ -2,6 +2,7 @@ # Define all services SERVICES=("pdnsmysql" "pdns" "pdnsadmin" "traefik" "postgresql" "ldap" "mail" "collabora" "nextcloud" "matrix" "element" "listmonk" "vaultwarden" "panel" "wireguard" "jitsi" "baserow" "gitea" "caddy") +#SERVICES=("nextcloud") fail() { echo -ne "FAILED\n\n$1\n\n" diff --git a/lib/nextcloud.sh b/lib/nextcloud.sh index ae46e22..01a55c6 100644 --- a/lib/nextcloud.sh +++ b/lib/nextcloud.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -x # # NextCloud Service @@ -66,6 +66,8 @@ networks: EOF LDAP_SECRET=`cat /federated/apps/ldap/.ldap.secret` +NEXTCLOUD_SECRET="xXNpkqapcTgVatKlwAaqlbShswzBXplG" +ADMINPASS="uyEb34K1ABoIAF1W4h0jiWzpGJ6s0x8m" echo "$NEXTCLOUD_SECRET" > /federated/apps/nextcloud/.postgresql.secret echo "$ADMINPASS" > /federated/apps/nextcloud/.nextcloud.secret @@ -266,8 +268,11 @@ start_nextcloud() { docker exec -it -u 33 nextcloud /var/www/html/config.sh &> /dev/null [ $? -ne 0 ] && fail "Couldn't run config.sh inside /federated/apps/nextcloud container" + # Add admin user to group + docker exec -it -u 33 nextcloud /var/www/html/occ group:adduser admin admin &> /dev/null + # Setup admin email account - docker exec -it -u 33 nextcloud bash -c "/var/www/html/occ mail:account:create admin admin admin@$DOMAIN mail.$DOMAIN 993 ssl admin@$DOMAIN $ADMINPASS mail.$DOMAIN 465 ssl admin@$DOMAIN $ADMINPASS password" + docker exec -it -u 33 nextcloud bash -c "/var/www/html/occ mail:account:create admin admin admin@$DOMAIN mail.$DOMAIN 993 ssl admin@$DOMAIN $ADMINPASS mail.$DOMAIN 465 ssl admin@$DOMAIN $ADMINPASS password" &> /dev/null kill -9 $SPINPID &> /dev/null echo -ne "done." diff --git a/lib/wireguard.sh b/lib/wireguard.sh index d37cd5d..f6f4f51 100644 --- a/lib/wireguard.sh +++ b/lib/wireguard.sh @@ -10,7 +10,7 @@ config_wireguard() { SPINPID=$! if [ ! -d "/federated/apps/wireguard" ]; then - mkdir -p /federated/apps/wireguard/data/config + mkdir -p /federated/apps/wireguard/data/config/coredns fi cat > /federated/apps/wireguard/docker-compose.yml <