Fixed convert domain for castopod autodiscover and wordpress
This commit is contained in:
parent
7ae905c791
commit
f2c81ded64
@ -31,25 +31,25 @@ check_gluerecords() {
|
||||
}
|
||||
do_serviceprep() {
|
||||
# Create DNS records for newdomain
|
||||
docker exec -it pdns pdnsutil create-zone $DOMAIN_NEW
|
||||
docker exec -it pdns pdnsutil set-kind $DOMAIN_NEW native
|
||||
docker exec -it pdns pdnsutil set-meta $DOMAIN_NEW SOA-EDIT-API DEFAULT
|
||||
docker exec pdns pdnsutil create-zone $DOMAIN_NEW
|
||||
docker exec pdns pdnsutil set-kind $DOMAIN_NEW native
|
||||
docker exec pdns pdnsutil set-meta $DOMAIN_NEW SOA-EDIT-API DEFAULT
|
||||
|
||||
for i in ns1 ns2 powerdns traefik mail www computer panel nextcloud collabora jitsi matrix element listmonk vaultwarden vpn wireguard baserow gitea blog documentation podcasts castopod caddy; do
|
||||
docker exec -it pdns pdnsutil add-record $DOMAIN_NEW $i A 86400 $EXTERNALIP
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW $i A 86400 $EXTERNALIP
|
||||
done
|
||||
|
||||
docker exec -it pdns pdnsutil add-record $DOMAIN_NEW @ NS ns1.$DOMAIN_NEW
|
||||
docker exec -it pdns pdnsutil add-record $DOMAIN_NEW @ NS ns2.$DOMAIN_NEW
|
||||
docker exec -it pdns pdnsutil add-record $DOMAIN_NEW @ MX 86400 "10 mail.$DOMAIN_NEW"
|
||||
docker exec -it pdns pdnsutil add-record $DOMAIN_NEW @ TXT 86400 "\"v=spf1 mx a:$DOMAIN_NEW ~all\""
|
||||
docker exec -it pdns pdnsutil add-record $DOMAIN_NEW \* CNAME 86400 www.$DOMAIN_NEW
|
||||
docker exec -it pdns pdnsutil add-record $DOMAIN_NEW @ A 86400 $EXTERNALIP
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW @ NS ns1.$DOMAIN_NEW
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW @ NS ns2.$DOMAIN_NEW
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW @ MX 86400 "10 mail.$DOMAIN_NEW"
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW @ TXT 86400 "\"v=spf1 mx a:$DOMAIN_NEW ~all\""
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW \* CNAME 86400 www.$DOMAIN_NEW
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW @ A 86400 $EXTERNALIP
|
||||
|
||||
# Other pre-prep service stuff
|
||||
docker exec -it -u 33 nextcloud /var/www/html/occ -vv ldap:delete-config s01
|
||||
docker exec -it -u 33 nextcloud /var/www/html/occ app:disable user_ldap
|
||||
docker exec -it ldap bash -c "slapcat > /root/convertdomain.ldif"
|
||||
docker exec -u 33 nextcloud /var/www/html/occ -vv ldap:delete-config s01
|
||||
docker exec -u 33 nextcloud /var/www/html/occ app:disable user_ldap
|
||||
docker exec ldap bash -c "slapcat > /root/convertdomain.ldif"
|
||||
|
||||
# Remove first lines of ldap config, replace dc= with new domain, replace domain name
|
||||
sed -n '/^dn: ou=people,dc=federatedcomputer,dc=cloud$/,$p' /federated/apps/ldap/data/root/convertdomain.ldif > /federated/apps/ldap/data/root/convertdomain1.ldif
|
||||
@ -179,7 +179,7 @@ convert_ldap() {
|
||||
start_service_convert "ldap" "nc -z $SERVICE_IP 636 &> /dev/null"
|
||||
|
||||
# This imports the modified LDAP configuration above
|
||||
docker exec -it ldap bash -c "slapadd -v -l /root/convertdomain1.ldif" &> /dev/null
|
||||
docker exec ldap bash -c "slapadd -v -l /root/convertdomain1.ldif" &> /dev/null
|
||||
[ $? -ne 0 ] && failcheck "Couldn't slapadd convertdomain1.ldif inside ldap container"
|
||||
|
||||
echo -ne "done."
|
||||
@ -205,17 +205,17 @@ convert_mail() {
|
||||
start_service_convert "mail" "nc -z $SERVICE_IP 25 &> /dev/null"
|
||||
|
||||
# Generate the DKIM DNS key for new domain
|
||||
docker exec -it mail setup config dkim keysize 2048 domain $DOMAIN_NEW &> /dev/null
|
||||
docker exec mail setup config dkim keysize 2048 domain $DOMAIN_NEW &> /dev/null
|
||||
[ $? -ne 0 ] && fail "Couldn't generate DKIM record"
|
||||
|
||||
# Insert the DKIM DNS TXT entry into /federated/apps/pdns container
|
||||
DKIM_RECORD_STRIP=`cat /federated/apps/mail/data/tmp/docker-mailserver/opendkim/keys/$DOMAIN_NEW/mail.txt | sed 's/.*(//'`
|
||||
DKIM_RECORD=`echo $DKIM_RECORD_STRIP | sed 's/).*//'`
|
||||
docker exec -it pdns pdnsutil add-record $DOMAIN_NEW mail._domainkey TXT 86400 "$DKIM_RECORD" &> /dev/null
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW mail._domainkey TXT 86400 "$DKIM_RECORD" &> /dev/null
|
||||
[ $? -ne 0 ] && fail "Couldn't insert DKIM record into /federated/apps/pdns container"
|
||||
|
||||
# Insert the DMARC DNS TXT entry into /federated/apps/pdns container
|
||||
docker exec -it pdns pdnsutil add-record $DOMAIN_NEW _dmarc TXT 86400 "\"v=DMARC1; p=quarantine; rua=mailto:admin@$DOMAIN_NEW; ruf=mailto:admin@$DOMAIN_NEW; sp=none; ri=86400\"" &> /dev/null
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW _dmarc TXT 86400 "\"v=DMARC1; p=quarantine; rua=mailto:admin@$DOMAIN_NEW; ruf=mailto:admin@$DOMAIN_NEW; sp=none; ri=86400\"" &> /dev/null
|
||||
[ $? -ne 0 ] && fail "Couldn't insert DMARC record into /federated/apps/pdns container"
|
||||
|
||||
echo -ne "done."
|
||||
@ -481,7 +481,7 @@ fi
|
||||
docker exec -u 33 nextcloud /var/www/html/occ group:list
|
||||
|
||||
# Config admin email
|
||||
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"
|
||||
docker exec -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"
|
||||
|
||||
# Remove configs
|
||||
rm /federated/apps/nextcloud/data/var/www/html/config.sh /federated/apps/nextcloud/data/var/www/html/configs.json
|
||||
@ -494,11 +494,11 @@ convert_matrix() {
|
||||
|
||||
# Delete matrix database so we can start from scratch
|
||||
MATRIX_SECRET=$(create_password);
|
||||
docker exec -it postgresql psql -U postgres -c "drop database matrix" &> /dev/null
|
||||
docker exec -it postgresql psql -U postgres -c "drop user matrix" &> /dev/null
|
||||
docker exec -it postgresql psql -U postgres -c "CREATE USER matrix WITH PASSWORD '$MATRIX_SECRET'"
|
||||
docker exec -it postgresql psql -U postgres -c "CREATE DATABASE matrix"
|
||||
docker exec -it postgresql psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE matrix TO matrix"
|
||||
docker exec postgresql psql -U postgres -c "drop database matrix" &> /dev/null
|
||||
docker exec postgresql psql -U postgres -c "drop user matrix" &> /dev/null
|
||||
docker exec postgresql psql -U postgres -c "CREATE USER matrix WITH PASSWORD '$MATRIX_SECRET'"
|
||||
docker exec postgresql psql -U postgres -c "CREATE DATABASE matrix"
|
||||
docker exec postgresql psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE matrix TO matrix"
|
||||
|
||||
sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/matrix/docker-compose.yml
|
||||
sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/matrix/.env
|
||||
@ -614,9 +614,9 @@ convert_listmonk() {
|
||||
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 <listmonk@listmonk.$DOMAIN_NEW>\"' 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
|
||||
docker exec postgresql psql -U listmonk -c "update settings set value='\"http://listmonk.$DOMAIN_NEW\"' where key='app.root_url'" &> /dev/null
|
||||
docker exec postgresql psql -U listmonk -c "update settings set value='\"listmonk <listmonk@listmonk.$DOMAIN_NEW>\"' where key='app.from_email'" &> /dev/null
|
||||
docker exec 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."
|
||||
}
|
||||
@ -696,13 +696,13 @@ convert_baserow() {
|
||||
|
||||
sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/baserow/docker-compose.yml
|
||||
sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/baserow/.env
|
||||
docker exec -it postgresql bash -c "psql -U baserow -c \"update auth_user set username='admin@$DOMAIN_NEW' where username='admin@$DOMAIN'\"" &> /dev/null
|
||||
docker exec postgresql bash -c "psql -U baserow -c \"update auth_user set username='admin@$DOMAIN_NEW' where username='admin@$DOMAIN'\"" &> /dev/null
|
||||
[ $? -ne 0 ] && fail "Couldn't update auth_user table in baserow"
|
||||
|
||||
docker exec -it postgresql bash -c "psql -U baserow -c \"update auth_user set email='admin@$DOMAIN_NEW' where email='admin@$DOMAIN'\"" &> /dev/null
|
||||
docker exec postgresql bash -c "psql -U baserow -c \"update auth_user set email='admin@$DOMAIN_NEW' where email='admin@$DOMAIN'\"" &> /dev/null
|
||||
[ $? -ne 0 ] && fail "Couldn't update auth_user table in baserow"
|
||||
|
||||
start_service_convert "baserow" "docker exec -it baserow curl http://localhost:8000 &> /dev/null"
|
||||
start_service_convert "baserow" "docker exec baserow curl http://localhost:8000 &> /dev/null"
|
||||
|
||||
echo -ne "done."
|
||||
}
|
||||
@ -715,10 +715,10 @@ convert_gitea() {
|
||||
sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/gitea/data/data/gitea/conf/app.ini
|
||||
|
||||
# Replace users in Gitea postgres database with new domain name
|
||||
for i in `docker exec -it postgresql bash -c "psql -U gitea -t -c 'select * from email_address;' | grep $DOMAIN" | awk -F\@ '{ print $1 }' | awk '{ print $5 }'`; do
|
||||
for i in `docker exec postgresql bash -c "psql -U gitea -t -c 'select * from email_address;' | grep $DOMAIN" | awk -F\@ '{ print $1 }' | awk '{ print $5 }'`; do
|
||||
USER="$i";
|
||||
docker exec -it postgresql bash -c "psql -U gitea -c \"update email_address set email='$USER@$DOMAIN_NEW' where email='$USER@$DOMAIN'\""
|
||||
docker exec -it postgresql bash -c "psql -U gitea -c \"update email_address set lower_email='$USER@$DOMAIN_NEW' where lower_email='$USER@$DOMAIN'\""
|
||||
docker exec postgresql bash -c "psql -U gitea -c \"update email_address set email='$USER@$DOMAIN_NEW' where email='$USER@$DOMAIN'\""
|
||||
docker exec postgresql bash -c "psql -U gitea -c \"update email_address set lower_email='$USER@$DOMAIN_NEW' where lower_email='$USER@$DOMAIN'\""
|
||||
done
|
||||
|
||||
# Grab the container IP from docker-compose
|
||||
@ -763,8 +763,65 @@ convert_castopod() {
|
||||
start_service_convert "castopod" "nc -z $SERVICE_IP 8000 &> /dev/null"
|
||||
|
||||
MYSQL_ROOTPASSWORD=`cat /federated/apps/pdnsmysql/.env | grep MYSQL_ROOT_PASSWORD | awk -F= '{ print $2 }'`
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e \"update cp_auth_identities set secret='admin@$DOMAIN_NEW' where id='1';\""
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e \"update cp_users set username='admin@$DOMAIN_NEW' where id='1';\""
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD castopod -e \"update cp_auth_identities set secret='admin@$DOMAIN_NEW' where id='1';\""
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD castopod -e \"update cp_users set username='admin@$DOMAIN_NEW' where id='1';\""
|
||||
|
||||
echo -ne "done."
|
||||
}
|
||||
convert_autodiscover() {
|
||||
#### Convert Autodiscover
|
||||
echo -ne "\n* Converting autodiscover.."
|
||||
|
||||
sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/autodiscover/docker-compose.yml
|
||||
sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/autodiscover/.env
|
||||
sed -i "s#COMPANY_NAME=.*#COMPANY_NAME=$ORG_NEW#g" /federated/apps/autodiscover/.env
|
||||
|
||||
# Add DNS records for auto discovery
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW autoconfig A 86400 $EXTERNALIP
|
||||
[ $? -ne 0 ] && fail "Couldn't add dns record for auto discovery"
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW autodiscover A 86400 $EXTERNALIP
|
||||
[ $? -ne 0 ] && fail "Couldn't add dns record for auto discovery"
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW @ TXT 86400 "\"mailconf=https://autoconfig.$DOMAIN_NEW/mail/config-v1.1.xml\""
|
||||
[ $? -ne 0 ] && fail "Couldn't add dns record for auto discovery"
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW _imaps._tcp SRV 86400 "0 0 993 mail.$DOMAIN_NEW"
|
||||
[ $? -ne 0 ] && fail "Couldn't add dns record for auto discovery"
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW _pop3s._tcp SRV 86400 "0 0 995 mail.$DOMAIN_NEW"
|
||||
[ $? -ne 0 ] && fail "Couldn't add dns record for auto discovery"
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW _imaps._tcp SRV 86400 "0 0 993 mail.$DOMAIN_NEW"
|
||||
[ $? -ne 0 ] && fail "Couldn't add dns record for auto discovery"
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW _submission._tcp SRV 86400 "0 0 587 $DOMAIN_NEW"
|
||||
[ $? -ne 0 ] && fail "Couldn't add dns record for auto discovery"
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW _autodiscover._tcp SRV 86400 "0 0 443 autodiscover.$DOMAIN_NEW"
|
||||
[ $? -ne 0 ] && fail "Couldn't add dns record for auto discovery"
|
||||
docker exec pdns pdnsutil add-record $DOMAIN_NEW _ldap._tcp SRV 86400 "0 0 636 ldap.$DOMAIN_NEW"
|
||||
[ $? -ne 0 ] && fail "Couldn't add dns record for auto discovery"
|
||||
|
||||
# Grab the container IP from docker-compose
|
||||
SERVICE_IP=`grep ipv4_address /federated/apps/autodiscover/docker-compose.yml | awk '{ print $2 }'`
|
||||
|
||||
# Start service with command to make sure it's up before proceeding
|
||||
start_service_convert "autodiscover" "nc -z $SERVICE_IP 8000 &> /dev/null"
|
||||
|
||||
echo -ne "done."
|
||||
}
|
||||
convert_wordpress() {
|
||||
#### Convert Wordpress
|
||||
echo -ne "\n* Converting wordpress.."
|
||||
|
||||
sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/wordpress/docker-compose.yml
|
||||
sed -i "s#$DOMAIN#$DOMAIN_NEW#g" /federated/apps/wordpress/.env
|
||||
sed -i "s#WORDPRESS_BLOG_NAME=.*#WORDPRESS_BLOG_NAME=$ORG_NEW#g" /federated/apps/wordpress/.env
|
||||
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD wordpress -e \"update wp_users set user_login='admin@$DOMAIN_NEW' where ID='1';\""
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD wordpress -e \"update wp_users set user_email='admin@$DOMAIN_NEW' where ID='1';\""
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD wordpress -e \"update wp_usermeta set meta_value='admin@$DOMAIN_NEW' where meta_value='admin@$DOMAIN';\""
|
||||
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD wordpress -e \"update wp_users set display_name='admin@$DOMAIN_NEW' where ID='1';\""
|
||||
|
||||
# Grab the container IP from docker-compose
|
||||
SERVICE_IP=`grep ipv4_address /federated/apps/wordpress/docker-compose.yml | awk '{ print $2 }'`
|
||||
|
||||
# Start service with command to make sure it's up before proceeding
|
||||
start_service_convert "wordpress" "nc -z $SERVICE_IP 8080 &> /dev/null"
|
||||
|
||||
echo -ne "done."
|
||||
}
|
||||
@ -798,7 +855,7 @@ LDAP_SECRET=`cat /federated/apps/ldap/.ldap.secret`
|
||||
|
||||
echo -ne "\n\nConverting Federated Core $DOMAIN to $DOMAIN_NEW.\n\n"
|
||||
|
||||
#check_gluerecords
|
||||
check_gluerecords
|
||||
do_serviceprep
|
||||
|
||||
# Stop all services
|
||||
@ -822,3 +879,5 @@ convert_baserow
|
||||
convert_gitea
|
||||
convert_caddy
|
||||
convert_castopod
|
||||
convert_autodiscover
|
||||
convert_wordpress
|
||||
|
Loading…
x
Reference in New Issue
Block a user