First round of wordpress
This commit is contained in:
parent
aff24281c8
commit
ad8b559461
@ -59,6 +59,10 @@ backupservice() {
|
|||||||
docker exec -it pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} castopod | gzip -9 > /federated/apps/castopod/dump_$SERVICE.sql.gz
|
docker exec -it pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} castopod | gzip -9 > /federated/apps/castopod/dump_$SERVICE.sql.gz
|
||||||
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@$UUID/$SERVICE/
|
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@$UUID/$SERVICE/
|
||||||
rm /federated/apps/castopod/dump_$SERVICE.sql.gz
|
rm /federated/apps/castopod/dump_$SERVICE.sql.gz
|
||||||
|
elif [ "$SERVICE" = "wordpress" ]; then
|
||||||
|
docker exec -it pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} wordpress | gzip -9 > /federated/apps/wordpress/dump_$SERVICE.sql.gz
|
||||||
|
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@$UUID/$SERVICE/
|
||||||
|
rm /federated/apps/wordpress/dump_$SERVICE.sql.gz
|
||||||
else
|
else
|
||||||
# For all other services, If the postgresql database exists for that service then dump it
|
# For all other services, If the postgresql database exists for that service then dump it
|
||||||
if [ ! "`docker exec -it postgresql psql -U $SERVICE -c '\q'`" ]; then
|
if [ ! "`docker exec -it postgresql psql -U $SERVICE -c '\q'`" ]; then
|
||||||
@ -94,6 +98,10 @@ backupserviceall() {
|
|||||||
docker exec -it pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} castopod | gzip -9 > /federated/apps/castopod/dump_$i.sql.gz
|
docker exec -it pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} castopod | gzip -9 > /federated/apps/castopod/dump_$i.sql.gz
|
||||||
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$i b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@$UUID/$i/
|
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$i b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@$UUID/$i/
|
||||||
rm /federated/apps/castopod/dump_$i.sql.gz
|
rm /federated/apps/castopod/dump_$i.sql.gz
|
||||||
|
elif [ "$i" = "wordpress" ]; then
|
||||||
|
docker exec -it pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} wordpress | gzip -9 > /federated/apps/wordpress/dump_$i.sql.gz
|
||||||
|
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$i b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@$UUID/$i/
|
||||||
|
rm /federated/apps/wordpress/dump_$i.sql.gz
|
||||||
else
|
else
|
||||||
if [ ! "`docker exec -it postgresql psql -U $i -c '\q'`" ]; then
|
if [ ! "`docker exec -it postgresql psql -U $i -c '\q'`" ]; then
|
||||||
docker exec postgresql /bin/bash -c "pg_dump $i -c -U postgres | gzip -9 > /docker-entrypoint-initdb.d/dump_$i.sql.gz"
|
docker exec postgresql /bin/bash -c "pg_dump $i -c -U postgres | gzip -9 > /docker-entrypoint-initdb.d/dump_$i.sql.gz"
|
||||||
|
@ -40,6 +40,7 @@ get_config() {
|
|||||||
. /federated/lib/caddy.sh
|
. /federated/lib/caddy.sh
|
||||||
. /federated/lib/autodiscover.sh
|
. /federated/lib/autodiscover.sh
|
||||||
. /federated/lib/castopod.sh
|
. /federated/lib/castopod.sh
|
||||||
|
. /federated/lib/wordpress.sh
|
||||||
|
|
||||||
COUNTRIES=("AF" "AL" "DZ" "AS" "AD" "AO" "AI" "AQ" "AG" "AR" "AM" "AW" "AU" "AT" "AZ" "BS" "BH" "BD" "BB" "BY" "BE" "BZ" "BJ" "BM" "BT" "BO" "BO" "BA" "BW" "BV" "BR" "IO" "BN" "BN" "BG" "BF" "BI" "KH" "CM" "CA" "CV" "KY" "CF" "TD" "CL" "CN" "CX" "CC" "CO" "KM" "CG" "CD" "CK" "CR" "CI" "CI" "HR" "CU" "CY" "CZ" "DK" "DJ" "DM" "DO" "EC" "EG" "SV" "GQ" "ER" "EE" "ET" "FK" "FO" "FJ" "FI" "FR" "GF" "PF" "TF" "GA" "GM" "GE" "DE" "GH" "GI" "GR" "GL" "GD" "GP" "GU" "GT" "GG" "GN" "GW" "GY" "HT" "HM" "VA" "HN" "HK" "HU" "IS" "IN" "ID" "IR" "IQ" "IE" "IM" "IL" "IT" "JM" "JP" "JE" "JO" "KZ" "KE" "KI" "KP" "KR" "KR" "KW" "KG" "LA" "LV" "LB" "LS" "LR" "LY" "LY" "LI" "LT" "LU" "MO" "MK" "MG" "MW" "MY" "MV" "ML" "MT" "MH" "MQ" "MR" "MU" "YT" "MX" "FM" "MD" "MC" "MN" "ME" "MS" "MA" "MZ" "MM" "MM" "NA" "NR" "NP" "NL" "AN" "NC" "NZ" "NI" "NE" "NG" "NU" "NF" "MP" "NO" "OM" "PK" "PW" "PS" "PA" "PG" "PY" "PE" "PH" "PN" "PL" "PT" "PR" "QA" "RE" "RO" "RU" "RU" "RW" "SH" "KN" "LC" "PM" "VC" "VC" "VC" "WS" "SM" "ST" "SA" "SN" "RS" "SC" "SL" "SG" "SK" "SI" "SB" "SO" "ZA" "GS" "SS" "ES" "LK" "SD" "SR" "SJ" "SZ" "SE" "CH" "SY" "TW" "TW" "TJ" "TZ" "TH" "TL" "TG" "TK" "TO" "TT" "TN" "TR" "TM" "TC" "TV" "UG" "UA" "AE" "GB" "US" "UM" "UY" "UZ" "VU" "VE" "VE" "VN" "VN" "VG" "VI" "WF" "EH" "YE" "ZM" "ZW")
|
COUNTRIES=("AF" "AL" "DZ" "AS" "AD" "AO" "AI" "AQ" "AG" "AR" "AM" "AW" "AU" "AT" "AZ" "BS" "BH" "BD" "BB" "BY" "BE" "BZ" "BJ" "BM" "BT" "BO" "BO" "BA" "BW" "BV" "BR" "IO" "BN" "BN" "BG" "BF" "BI" "KH" "CM" "CA" "CV" "KY" "CF" "TD" "CL" "CN" "CX" "CC" "CO" "KM" "CG" "CD" "CK" "CR" "CI" "CI" "HR" "CU" "CY" "CZ" "DK" "DJ" "DM" "DO" "EC" "EG" "SV" "GQ" "ER" "EE" "ET" "FK" "FO" "FJ" "FI" "FR" "GF" "PF" "TF" "GA" "GM" "GE" "DE" "GH" "GI" "GR" "GL" "GD" "GP" "GU" "GT" "GG" "GN" "GW" "GY" "HT" "HM" "VA" "HN" "HK" "HU" "IS" "IN" "ID" "IR" "IQ" "IE" "IM" "IL" "IT" "JM" "JP" "JE" "JO" "KZ" "KE" "KI" "KP" "KR" "KR" "KW" "KG" "LA" "LV" "LB" "LS" "LR" "LY" "LY" "LI" "LT" "LU" "MO" "MK" "MG" "MW" "MY" "MV" "ML" "MT" "MH" "MQ" "MR" "MU" "YT" "MX" "FM" "MD" "MC" "MN" "ME" "MS" "MA" "MZ" "MM" "MM" "NA" "NR" "NP" "NL" "AN" "NC" "NZ" "NI" "NE" "NG" "NU" "NF" "MP" "NO" "OM" "PK" "PW" "PS" "PA" "PG" "PY" "PE" "PH" "PN" "PL" "PT" "PR" "QA" "RE" "RO" "RU" "RU" "RW" "SH" "KN" "LC" "PM" "VC" "VC" "VC" "WS" "SM" "ST" "SA" "SN" "RS" "SC" "SL" "SG" "SK" "SI" "SB" "SO" "ZA" "GS" "SS" "ES" "LK" "SD" "SR" "SJ" "SZ" "SE" "CH" "SY" "TW" "TW" "TJ" "TZ" "TH" "TL" "TG" "TK" "TO" "TT" "TN" "TR" "TM" "TC" "TV" "UG" "UA" "AE" "GB" "US" "UM" "UY" "UZ" "VU" "VE" "VE" "VN" "VN" "VG" "VI" "WF" "EH" "YE" "ZM" "ZW")
|
||||||
|
|
||||||
@ -108,6 +109,6 @@ add_cron
|
|||||||
|
|
||||||
# Print out federated environment details
|
# Print out federated environment details
|
||||||
echo -ne "\n\n"
|
echo -ne "\n\n"
|
||||||
print_details
|
#print_details
|
||||||
echo -ne "\n\n"
|
echo -ne "\n\n"
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -38,7 +38,7 @@ services:
|
|||||||
- ./data/data:/data
|
- ./data/data:/data
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.caddy.rule=Host(\`www.$DOMAIN\`,\`blog.$DOMAIN\`,\`documentation.$DOMAIN\`,\`$DOMAIN\`)"
|
- "traefik.http.routers.caddy.rule=Host(\`caddy.$DOMAIN\`,\`blog.$DOMAIN\`,\`documentation.$DOMAIN\`)"
|
||||||
- "traefik.http.routers.caddy.entrypoints=websecure"
|
- "traefik.http.routers.caddy.entrypoints=websecure"
|
||||||
- "traefik.http.routers.caddy.tls.certresolver=letsencrypt"
|
- "traefik.http.routers.caddy.tls.certresolver=letsencrypt"
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ $DOMAIN:80 {
|
|||||||
root * /srv/www/public
|
root * /srv/www/public
|
||||||
file_server
|
file_server
|
||||||
}
|
}
|
||||||
www.$DOMAIN:80 {
|
caddy.$DOMAIN:80 {
|
||||||
root * /srv/www/public
|
root * /srv/www/public
|
||||||
file_server
|
file_server
|
||||||
route /webhook {
|
route /webhook {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Federated Computer functions
|
# Federated Computer functions
|
||||||
|
|
||||||
# Define all services
|
# Define all services
|
||||||
SERVICES=("pdnsmysql" "pdns" "pdnsadmin" "traefik" "postgresql" "ldap" "mail" "collabora" "nextcloud" "matrix" "element" "listmonk" "vaultwarden" "panel" "wireguard" "jitsi" "baserow" "gitea" "caddy" "autodiscover" "castopod")
|
SERVICES=("pdnsmysql" "pdns" "pdnsadmin" "traefik" "postgresql" "ldap" "mail" "collabora" "nextcloud" "matrix" "element" "listmonk" "vaultwarden" "panel" "wireguard" "jitsi" "baserow" "gitea" "caddy" "autodiscover" "castopod" "wordpress")
|
||||||
|
|
||||||
fail() {
|
fail() {
|
||||||
echo -ne "FAILED\n\n$1\n\n"
|
echo -ne "FAILED\n\n$1\n\n"
|
||||||
|
@ -79,7 +79,7 @@ curl -X PATCH --data '{"rrsets": [ {"name": "$DOMAIN.", "type": "MX", "ttl": 864
|
|||||||
curl -X PATCH --data '{"rrsets": [ {"name": "$DOMAIN.", "type": "TXT", "ttl": 86400, "changetype": "REPLACE", "records": [ {"content": "\"v=spf1 mx a:$DOMAIN ~all\"", "disabled": false } ] } ] }' -H 'X-API-Key: $PDNS_APIKEY' http://127.0.0.1:8081/api/v1/servers/localhost/zones/$DOMAIN.
|
curl -X PATCH --data '{"rrsets": [ {"name": "$DOMAIN.", "type": "TXT", "ttl": 86400, "changetype": "REPLACE", "records": [ {"content": "\"v=spf1 mx a:$DOMAIN ~all\"", "disabled": false } ] } ] }' -H 'X-API-Key: $PDNS_APIKEY' http://127.0.0.1:8081/api/v1/servers/localhost/zones/$DOMAIN.
|
||||||
|
|
||||||
# Create the A records for domain
|
# Create the A records for domain
|
||||||
for i in ns1 ns2 pdnsadmin powerdns traefik mail www computer panel nextcloud collabora jitsi matrix element listmonk vaultwarden vpn wireguard baserow gitea blog documentation castopod podcasts; do
|
for i in ns1 ns2 pdnsadmin powerdns traefik mail www computer panel nextcloud collabora jitsi matrix element listmonk vaultwarden vpn wireguard baserow gitea blog documentation castopod podcasts caddy; do
|
||||||
curl -X PATCH --data "{\"rrsets\": [ {\"name\": \"\$i.$DOMAIN.\", \"type\": \"A\", \"ttl\": 86400, \"changetype\": \"REPLACE\", \"records\": [ {\"content\": \"$EXTERNALIP\", \"disabled\": false } ] } ] }" -H 'X-API-Key: $PDNS_APIKEY' http://127.0.0.1:8081/api/v1/servers/localhost/zones/$DOMAIN.
|
curl -X PATCH --data "{\"rrsets\": [ {\"name\": \"\$i.$DOMAIN.\", \"type\": \"A\", \"ttl\": 86400, \"changetype\": \"REPLACE\", \"records\": [ {\"content\": \"$EXTERNALIP\", \"disabled\": false } ] } ] }" -H 'X-API-Key: $PDNS_APIKEY' http://127.0.0.1:8081/api/v1/servers/localhost/zones/$DOMAIN.
|
||||||
done
|
done
|
||||||
|
|
||||||
|
82
lib/wordpress.sh
Normal file
82
lib/wordpress.sh
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Wordpress Service
|
||||||
|
|
||||||
|
PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
|
|
||||||
|
config_wordpress() {
|
||||||
|
echo -ne "\n* Configuring /federated/apps/wordpress container.."
|
||||||
|
spin &
|
||||||
|
SPINPID=$!
|
||||||
|
|
||||||
|
if [ ! -d "/federated/apps/wordpress" ]; then
|
||||||
|
mkdir -p /federated/apps/wordpress/data/bitnami/wordpress
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > /federated/apps/wordpress/docker-compose.yml <<EOF
|
||||||
|
version: "3.7"
|
||||||
|
|
||||||
|
services:
|
||||||
|
wordpress:
|
||||||
|
image: bitnami/wordpress:\${IMAGE_VERSION}
|
||||||
|
container_name: wordpress
|
||||||
|
hostname: wordpress.$DOMAIN
|
||||||
|
domainname: $DOMAIN
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
federated:
|
||||||
|
ipv4_address: 172.99.0.34
|
||||||
|
env_file:
|
||||||
|
- ./.env
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.wordpress.rule=Host(\`www.$DOMAIN\`,\`$DOMAIN\`)"
|
||||||
|
- "traefik.http.routers.wordpress.entrypoints=websecure"
|
||||||
|
- "traefik.http.routers.wordpress.tls.certresolver=letsencrypt"
|
||||||
|
- "traefik.http.services.wordpress.loadbalancer.server.port=8080"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
federated:
|
||||||
|
external: true
|
||||||
|
EOF
|
||||||
|
|
||||||
|
WORDPRESS_SECRET=$(create_password);
|
||||||
|
MYSQL_ROOTPASSWORD=`cat /federated/apps/pdnsmysql/.env | grep MYSQL_ROOT_PASSWORD | awk -F= '{ print $2 }'`
|
||||||
|
ADMINPASS=`cat /federated/apps/castopod/.env | grep CP_EMAIL_SMTP_PASSWORD | awk -F= '{ print $2 }'`
|
||||||
|
|
||||||
|
cat > /federated/apps/wordpress/.env <<EOF
|
||||||
|
IMAGE_VERSION="6.2.2"
|
||||||
|
WORDPRESS_USERNAME=admin@$DOMAIN
|
||||||
|
WORDPRESS_PASSWORD=$ADMINPASS
|
||||||
|
WORDPRESS_EMAIL=admin@$DOMAIN
|
||||||
|
WORDPRESS_FIRST_NAME=Admin
|
||||||
|
WORDPRESS_LAST_NAME=Wordpress
|
||||||
|
WORDPRESS_BLOG_NAME=$COMPANY Blog
|
||||||
|
WORDPRESS_DATABASE_HOST=pdnsmysql.$DOMAIN
|
||||||
|
WORDPRESS_DATABASE_PORT_NUMBER=3306
|
||||||
|
WORDPRESS_DATABASE_USER=wordpress
|
||||||
|
WORDPRESS_DATABASE_NAME=wordpress
|
||||||
|
WORDPRESS_DATABASE_PASSWORD=$WORDPRESS_SECRET
|
||||||
|
WORDPRESS_SMTP_HOST=mail.$DOMAIN
|
||||||
|
WORDPRESS_SMTP_PORT=587
|
||||||
|
WORDPRESS_SMTP_USER=admin@$DOMAIN
|
||||||
|
WORDPRESS_SMTP_PASSWORD=$ADMINPASS
|
||||||
|
EOF
|
||||||
|
chmod 600 /federated/apps/wordpress/.env
|
||||||
|
|
||||||
|
# Create database and user in mysql
|
||||||
|
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e 'create database wordpress;'"
|
||||||
|
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e \"CREATE USER 'wordpress'@'%' IDENTIFIED BY '$WORDPRESS_SECRET';\""
|
||||||
|
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e \"grant all privileges on wordpress.* to 'wordpress'@'%';\""
|
||||||
|
docker exec pdnsmysql bash -c "mysql -uroot -p$MYSQL_ROOTPASSWORD -e 'flush privileges;'"
|
||||||
|
|
||||||
|
kill -9 $SPINPID &> /dev/null
|
||||||
|
echo -ne "done."
|
||||||
|
}
|
||||||
|
start_wordpress() {
|
||||||
|
# Start service with command to make sure it's up before proceeding
|
||||||
|
start_service "wordpress" "nc -z 172.99.0.34 8080 &> /dev/null" "7"
|
||||||
|
|
||||||
|
kill -9 $SPINPID &> /dev/null
|
||||||
|
echo -ne "done."
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user