Files
dockercomposefiles/redeploydocker.sh

153 lines
7.5 KiB
Bash

#!/bin/bash
# cd /haven_data/dockercomposefiles
# echo "git config --global --add safe.directory: \c"
# git config --global --add safe.directory /haven_data/dockercomposefiles
# echo "git stash push --include-untracked \c"
# git stash push --include-untracked
# echo "git stash drop \c"
# git stash drop
# echo "git pull:\c"
# git pull
# echo "Copying Grungy Keys to HavenUser"
# sudo cp ssh_host_rsa_key /home/havenuser/.ssh/id_ecdsa
# sudo cp ssh_host_rsa_key.pub /home/havenuser/.ssh/id_ecdsa.pub
echo "Setting Permissions..."
sudo chown -R :havenuser /haven_data/dockercomposefiles/
sudo chmod -R 770 /haven_data/dockercomposefiles/
echo "Removing all Containers and Volumes..."
sudo docker ps -q | xargs sudo docker stop
sudo docker ps -aq | xargs sudo docker container remove
#sudo docker volume remove portainer_data
sudo docker volume remove jellyfin_config
sudo docker volume remove jellyfin_cache
sudo docker volume remove havenuser_movies
sudo docker volume remove havenuser_tvshows
sudo docker volume remove prowlarr_config
sudo docker volume remove radarr_config
sudo docker volume remove homepage_data
sudo docker volume remove sonnar_config
sudo docker volume remove sonnar_data
sudo docker volume remove qbittorent_config
sudo docker volume remove qbittorent_data
sudo docker volume remove ollama_data
sudo docker volume remove havenuser_documents
sudo docker volume remove nextcloud_data
sudo docker volume remove nextcloud_db_data
sudo docker volume remove audiobookshelf_config
sudo docker volume remove audiobookshelf_metadata
sudo docker volume remove havenuser_audiobooks
sudo docker volume remove havenuser_podcasts
sudo docker volume remove havenuser_photos
sudo docker volume remove snappymail_mysql
sudo docker volume remove snappymail_data
sudo docker volume remove dovecot_data
sudo docker volume remove dovecot_vmail
sudo docker volume create jellyfin_config
sudo docker volume create jellyfin_cache
sudo docker volume create havenuser_movies
sudo docker volume create havenuser_tvshows
sudo docker volume create prowlarr_config
sudo docker volume create radarr_config
sudo docker volume create homepage_data
sudo docker volume create sonnar_config
sudo docker volume create sonnar_data
sudo docker volume create qbittorent_config
sudo docker volume create qbittorent_data
sudo docker volume create ollama_data
sudo docker volume create havenuser_documents
sudo docker volume create nextcloud_data
sudo docker volume create nextcloud_db_data
sudo docker volume create audiobookshelf_config
sudo docker volume create audiobookshelf_metadata
sudo docker volume create havenuser_audiobooks
sudo docker volume create havenuser_podcasts
sudo docker volume create havenuser_photos
sudo docker volume create snappymail_mysql
sudo docker volume create snappymail_data
sudo docker volume create dovecot_data
sudo docker volume create dovecot_vmail
#sudo docker volume ls -q | xargs sudo docker volume rm
sudo docker volume remove nginx_data
# sudo docker volume remove searxng_data
# sudo docker volume remove searxng_cache
# sudo docker volume remove step-ca_data
# sudo docker volume remove authentik_data
# sudo docker volume remove authentik_media
# sudo docker volume remove authentik_certs
# sudo docker volume remove authentik_redis
# sudo docker volume remove authentik_templates
# sudo docker volume remove authentik_postgresql
sudo docker volume create nginx_data
# sudo docker volume create searxng_data
# sudo docker volume create searxng_cache
# sudo docker volume create step-ca_data
# sudo docker volume create authentik_data
# sudo docker volume create authentik_media
# sudo docker volume create authentik_certs
# sudo docker volume create authentik_redis
# sudo docker volume create authentik_templates
# sudo docker volume create authentik_postgresql
sudo docker compose build --no-cache
sudo docker compose up -d
# echo "Waiting for Container availability..."
# sleep 15
# echo sudo docker ps
# echo "Generating User and Chain Certificates via step-ca"
#sudo docker exec -i step-ca touch ./certs/ca-chain.crt
# echo "Generating Unique HAVEN User Certificate and Private Key"
# sudo docker exec -i -u step:step step-ca openssl genpkey -algorithm RSA -out ./secrets/havenuser.key -pass pass:Swissbank01
# sudo docker exec -i -u step:step step-ca openssl req -new -key ./secrets/havenuser.key -out ./certs/havenuser.csr -config ./havenuser.csr.cnf -passin pass:Swissbank01
# sudo docker exec -i -u step:step step-ca openssl x509 -req -in ./certs/havenuser.csr -CA ./certs/intermediate_ca.crt -CAkey ./secrets/intermediate_ca_key -passin pass:Swissbank01 -CAcreateserial -out ./certs/havenuser.crt -days 365 -sha256
# sudo docker exec -i -u step:step step-ca openssl pkcs12 -export -out ./certs/havenuser.pfx -inkey ./secrets/havenuser.key -in ./certs/havenuser.crt -certfile ./certs/intermediate_ca.crt -passout pass:Swissbank01 -clcerts
# echo "Generating CA Chain"
# sudo docker exec -i -u step:step step-ca cat ./certs/intermediate_ca.crt ./certs/root_ca.crt > ./certs/ca-chain.crt
# echo "Verifying CA Chain"
# sudo docker exec -i step-ca chown step:step ./certs/ca-chain.crt
# sudo docker exec -i step-ca chmod 770 ./certs/ca-chain.crt
# sudo docker exec -i -u step:step step-ca openssl verify -CAfile ./certs/ca-chain.crt ./certs/intermediate_ca.crt
# echo "Generating Server Wildcard Certificate"
# #sudo docker exec -i step-ca openssl req -new -key haven-wildcard.key -out haven-wildcard.csr -config haven-wildcard.csr.cnf
# sudo docker exec -i -u step:step step-ca openssl genpkey -algorithm RSA -out ./secrets/haven-wildcard.key -pass pass:Swissbank01
# sudo docker exec -i -u step:step step-ca openssl req -new -key ./secrets/haven-wildcard.key -out ./certs/haven-wildcard.csr -config ./haven-wildcard.csr.cnf -passin pass:Swissbank01
# sudo docker exec -i -u step:step step-ca openssl x509 -req -in ./certs/haven-wildcard.csr -CA ./certs/intermediate_ca.crt -CAkey ./secrets/intermediate_ca_key -passin pass:Swissbank01 -CAcreateserial -out ./certs/haven-wildcard.crt -days 365 -sha256
# https://docs.openssl.org/master/man1/openssl-req/
# https://docs.openssl.org/master/man1/openssl-x509/
# https://docs.openssl.org/master/man1/openssl-passphrase-options/
# Test area for new commands to be migrated to dockerdeploy.sh
# Nextcloud OCC: https://github.com/nextcloud/documentation/blob/master/admin_manual/occ_command.rst
# sudo docker exec -it nextcloud php occ app:install calendar
# sudo docker exec -it nextcloud php occ app:install contacts
# sudo docker exec -it nextcloud php occ app:install notes
# sudo docker exec -it nextcloud php occ app:install tasks
# sudo docker exec -it nextcloud php occ app:install cookbook
# sudo docker exec -it nextcloud php occ app:install maps
# sudo docker exec -it nextcloud php occ app:install memories
# sudo docker exec -it nextcloud php occ app:install assistant
# sudo docker exec -it nextcloud php occ app:install mail
# sudo docker exec -it nextcloud php occ app:install news
# sudo docker exec -it nextcloud php occ app:install richdocuments
# sudo docker exec -it nextcloud php occ app:install spreed
# sudo docker exec -it nextcloud php occ app:install deck
# sudo docker exec -it nextcloud php occ app:install riotchat
# sudo docker exec -it nextcloud php occ app:install integration_openai
# sudo docker exec -it nextcloud php occ app:install external
# sudo docker exec -it nextcloud php occ app:enable files_external
# sudo docker exec -it nextcloud php occ background:cron
# echo "Setting Permissions...\c"
# sudo chown -R :havenuser /haven_data/docker/volumes/
# sudo chmod -R 770 /haven_data/docker/volumes/
echo "redeploydocker.sh DONE"