Kaynağa Gözat

Remove swarm

master
Bingen Eguzkitza 6 yıl önce
ebeveyn
işleme
a9dc7b97f2
8 değiştirilmiş dosya ile 89 ekleme ve 493 silme
  1. +6
    -28
      add_dns_entries.sh
  2. +0
    -36
      add_dns_entries_noswarm.sh
  3. +10
    -31
      add_users.sh
  4. +0
    -36
      add_users_noswarm.sh
  5. +9
    -35
      deploy.sh
  6. +0
    -0
      nextcloud_apps_after_update.sh
  7. +64
    -24
      setup.sh
  8. +0
    -303
      setup_noswarm.sh

+ 6
- 28
add_dns_entries.sh Dosyayı Görüntüle

@@ -1,12 +1,5 @@
#!/bin/bash

STACK_NAME=$1

if [ $# -eq 0 ]; then
echo "You must pass stack name as a parameter"
exit 1
fi

echo ""
echo "Adding DNS entries to PI-HOLE"

@@ -26,33 +19,18 @@ done;

# ##### Add entries to PiHole ###### #

host=$(docker stack ps ${STACK_NAME} | grep -v Shutdown | grep Running | grep pihole | awk '{ print $4 }')
#echo Host=$host
if [ -z $host ]; then
echo "No host found!";
exit 1;
fi
# add avahi suffix
localhostname=$(cat /etc/hostname)
if [ "${localhostname}" != "${host}" ]; then
host=${host}.local
fi

container=$(ssh $host 'docker ps | grep pihole | cut -f1 -d" "')
container=$(docker ps | grep pihole | cut -f1 -d" ")
#echo Container=$container
if [ -z $container ]; then
echo "Qué me estás container?!";
exit 1;
fi

echo Copying user files to Host $host
scp -r /tmp/${CONF_FILE} $host:/tmp/

echo Copying user files to Container $container in Host $host
ssh $host "docker cp /tmp/${CONF_FILE} $container:/etc/dnsmasq.d/99-local-addresses.conf"
echo Copying user files to Container $container
docker cp /tmp/${CONF_FILE} $container:/etc/dnsmasq.d/99-local-addresses.conf
# restart dns
ssh $host "docker exec ${container} pihole restartdns"
docker exec ${container} pihole restartdns

echo Removing copied user files
ssh $host "docker exec ${container} sh -c 'rm -Rf /tmp/${CONF_FILE}'"
ssh $host "rm -Rf /tmp/${CONF_FILE}"
docker exec ${container} sh -c 'rm -Rf /tmp/${CONF_FILE}'
rm -Rf /tmp/${CONF_FILE}

+ 0
- 36
add_dns_entries_noswarm.sh Dosyayı Görüntüle

@@ -1,36 +0,0 @@
#!/bin/bash

echo ""
echo "Adding DNS entries to PI-HOLE"

CONF_FILE=custom_dnsmasq.conf

IP_LOOKUP="$(ip route get 8.8.8.8 | awk '{ print $NF; exit }')" # May not work for VPN / tun0

# read variables, for domain and host names
source .env

# global domain with all subdomains
echo address=/.${DOMAIN}/${IP_LOOKUP} > /tmp/${CONF_FILE}
# virtual domains
for domain in ${VIRTUAL_DOMAINS[@]}; do
echo address=/.${domain}/${IP_LOOKUP} >> /tmp/${CONF_FILE}
done;

# ##### Add entries to PiHole ###### #

container=$(docker ps | grep pihole | cut -f1 -d" ")
#echo Container=$container
if [ -z $container ]; then
echo "Qué me estás container?!";
exit 1;
fi

echo Copying user files to Container $container
docker cp /tmp/${CONF_FILE} $container:/etc/dnsmasq.d/99-local-addresses.conf
# restart dns
docker exec ${container} pihole restartdns

echo Removing copied user files
docker exec ${container} sh -c 'rm -Rf /tmp/${CONF_FILE}'
rm -Rf /tmp/${CONF_FILE}

+ 10
- 31
add_users.sh Dosyayı Görüntüle

@@ -1,29 +1,10 @@
#!/bin/bash

STACK_NAME=$1

if [ $# -eq 0 ]; then
echo "You must pass stack name as a parameter"
exit 1
fi

# ##### Add users to LDAP ###### #
echo ""
echo "Adding users to LDAP"

host=$(docker stack ps ${STACK_NAME} | grep -v Shutdown | grep Running | grep openldap | awk '{ print $4 }')
#echo Host=$host
if [ -z $host ]; then
echo "No host found!";
exit 1;
fi
# add avahi suffix
localhostname=$(cat /etc/hostname)
if [ "${localhostname}" != "${host}" ]; then
host=${host}.local
fi

container=$(ssh $host 'docker ps | grep openldap | cut -f1 -d" "')
container=$(docker ps | grep openldap | cut -f1 -d" ")
#echo Container=$container
if [ -z $container ]; then
echo "Qué me estás container?!";
@@ -37,21 +18,19 @@ find images/openldap/users -type f -exec \
sed -i "s/\${MAIL_DATA_PATH}/${MAIL_DATA_PATH//\//\\/}/g" {} \;

echo Copying user files to Host $host
ssh $host "mkdir -p /tmp/users"
scp -r images/openldap/users/userimport*.ldif $host:/tmp/users/
mkdir -p /tmp/users
cp -r images/openldap/users/userimport*.ldif /tmp/users/

echo Copying user files to Container $container in Host $host
ssh $host "docker cp /tmp/users $container:/tmp/"
docker cp /tmp/users $container:/tmp/

echo Adding users to openldap
ssh $host \
"for i in \$(ls /tmp/users/userimport*.ldif); do \
ls \$i;
docker exec ${container} sh -c \
'slapadd -l '\$i; \
done;"
for i in $(ls /tmp/users/userimport*.ldif); do
ls $i;
docker exec ${container} sh -c 'slapadd -l '$i;
done;
#'ldapadd -w \$(cat \${LDAP_ADMIN_PWD_FILE}) -D cn=admin,dc=\${LDAP_ORGANIZATION},dc=\${LDAP_EXTENSION} -f '\$i; \

echo Removing copied user files
ssh $host "docker exec ${container} sh -c 'rm -Rf /tmp/users'"
ssh $host "rm -Rf /tmp/users"
docker exec ${container} sh -c 'rm -Rf /tmp/users'
rm -Rf /tmp/users

+ 0
- 36
add_users_noswarm.sh Dosyayı Görüntüle

@@ -1,36 +0,0 @@
#!/bin/bash

# ##### Add users to LDAP ###### #
echo ""
echo "Adding users to LDAP"

container=$(docker ps | grep openldap | cut -f1 -d" ")
#echo Container=$container
if [ -z $container ]; then
echo "Qué me estás container?!";
exit 1;
fi

# read variables, for mail data path
. .env
# Replace Mail data path for users
find images/openldap/users -type f -exec \
sed -i "s/\${MAIL_DATA_PATH}/${MAIL_DATA_PATH//\//\\/}/g" {} \;

echo Copying user files to Host $host
mkdir -p /tmp/users
cp -r images/openldap/users/userimport*.ldif /tmp/users/

echo Copying user files to Container $container in Host $host
docker cp /tmp/users $container:/tmp/

echo Adding users to openldap
for i in $(ls /tmp/users/userimport*.ldif); do
ls $i;
docker exec ${container} sh -c 'slapadd -l '$i;
done;
#'ldapadd -w \$(cat \${LDAP_ADMIN_PWD_FILE}) -D cn=admin,dc=\${LDAP_ORGANIZATION},dc=\${LDAP_EXTENSION} -f '\$i; \

echo Removing copied user files
docker exec ${container} sh -c 'rm -Rf /tmp/users'
rm -Rf /tmp/users

+ 9
- 35
deploy.sh Dosyayı Görüntüle

@@ -1,24 +1,15 @@
#!/bin/bash

STACK_NAME=$1
if [ $# -eq 0 ]; then
echo "You must pass stack name as a parameter"
exit 1
fi

BUILD=$2
BUILD=$1
if [ -z $BUILD ]; then
BUILD=1;
fi

PUSH=$3
PUSH=$2
if [ -z $PUSH ]; then
PUSH=0;
fi

# Delete previous running stack
docker stack rm ${STACK_NAME}

# Build images
if [ $BUILD -eq 1 ]; then
docker-compose build
@@ -31,48 +22,31 @@ if [ $PUSH -eq 1 ]; then
done;
fi

# Deploy Stack
# seen here: https://github.com/docker/docker/issues/29133#issuecomment-278198683
env $(cat .env | grep "^[A-Z]" | xargs) \
docker stack deploy --compose-file docker-compose.yml ${STACK_NAME}
# Start services
docker-compose -p dhs up -d

echo Wait for services to start
sleep 60

# ##### Add users to LDAP ###### #

./add_users.sh ${STACK_NAME}
./add_users.sh

# Add local domains
./add_dns_entries.sh ${STACK_NAME}
./add_dns_entries.sh

# Wait for Nextcloud
echo "Waiting for Nextcloud"
NC_UP=0
while [ $NC_UP -eq 0 ]; do
# TODO: Use docker inspect Go templates
#NC_IP=$(docker network inspect debuen_default | grep -A 3 nextcloud | grep IPv4Address | cut -d':' -f 2 | cut -d'"' -f 2 | cut -d'/' -f 1)
# Find Nextcloud container
SERVICE=nextcloud
host=$(docker stack ps ${STACK_NAME} | grep Running | grep ${SERVICE} | awk '{ print $4 }')
#echo Host=$host
if [ -z $host ]; then
echo "No host found!";
continue;
fi
# add avahi suffix
localhostname=$(cat /etc/hostname)
if [ "${localhostname}" != "${host}" ]; then
host=${host}.local
fi

container=$(ssh $host 'docker ps | grep '${SERVICE}' | cut -f1 -d" "')
container=$(docker ps | grep '${SERVICE}' | cut -f1 -d" ")
#echo Container=$container
if [ -z $container ]; then
echo "Qué me estás container?!";
continue;
fi
#NC_IP=$(ssh $host "docker exec ${container} sh -c 'ifconfig eth1' | grep 'inet ' | cut -d':' -f 2 | cut -d' ' -f 1")
curl http://${host}/index.nginx-debian.html 2>/dev/null | grep title | grep Welcome 1>/dev/null;
NC_UP=$((1 - $?));
done;

./nextcloud_apps_after_update.sh

nextcloud_apps_after_update_noswarm.sh → nextcloud_apps_after_update.sh Dosyayı Görüntüle


+ 64
- 24
setup.sh Dosyayı Görüntüle

@@ -8,13 +8,27 @@ DEFAULT_LDAP_NEXTCLOUD_UID='nextcloud'
DEFAULT_LDAP_GITEA_UID='git'
DEFAULT_LDAP_HAUK_UID='hauk'

read -p "Main domain: " domain
# main domain
read -p "Add main domain: " domain
while [[ ! $domain =~ ^.*\.[a-z]{2,}$ ]]; do
read -p "Please Enter a valid domain: " domain
read -p "Add domain (empty to finish): " domain
done
# TODO: more than 1 level domains
org=`echo $domain | cut -f1 -d'.'`
ext=`echo $domain | cut -f2 -d'.'`
org=`echo ${domain} | cut -f1 -d'.'`
ext=`echo ${domain} | cut -f2 -d'.'`

# additional domain
virtual_domains=()
while :; do
read -p "Add additional domains (empty to finish): " virtual_domain
if [[ -z $virtual_domain ]]; then
break;
elif [[ ! $virtual_domain =~ ^.*\.[a-z]{2,}$ ]]; then
echo "Please Enter a valid domain";
else
virtual_domains+=($virtual_domain);
fi
done

read -p "Volumes path ($DEFAULT_VOLUMES): " volumes
if [[ ${#volumes} -eq 0 ]]; then
@@ -81,6 +95,11 @@ if [[ ${#gitea_admin_pwd} -eq 0 ]]; then
gitea_admin_pwd=`eval "$PWD_GEN"`
fi

read -p "Hauk Server Pwd (a random one will be generated if empty): " hauk_server_pwd
if [[ ${#hauk_server_pwd} -eq 0 ]]; then
hauk_server_pwd=`eval "$PWD_GEN"`
fi

read -p "Pi-Hole Web User Pwd (a random one will be generated if empty): " pihole_web_pwd
if [[ ${#pihole_web_pwd} -eq 0 ]]; then
pihole_web_pwd=`eval "$PWD_GEN"`
@@ -127,7 +146,8 @@ echo "///////////////// PLEASE CONFIRM /////////////////"
echo "//////////////////////////////////////////////////"
echo $'\E[1;30m'

echo Your domain is: $domain
echo Your main domain is: ${domain}
echo Your virtual domains are: ${virtual_domains[*]}
echo Your Volumes path is: $volumes
echo Your LDAP Mail Bind DN Uid is: $ldap_mail_uid
echo Your LDAP Nextcloud Bind DN Uid is: $ldap_nextcloud_uid
@@ -147,23 +167,6 @@ if [[ $confirm != [yY] ]]; then
exit 1
fi

# Generate docker secrets
echo $db_pwd | docker secret create db_pwd -
echo $ldap_pwd | docker secret create ldap_pwd -
echo $ldap_mail_pwd | docker secret create ldap_mail_pwd -
echo $ldap_nextcloud_pwd | docker secret create ldap_nextcloud_pwd -
echo $ldap_gitea_pwd | docker secret create ldap_gitea_pwd -
echo $ldap_hauk_pwd | docker secret create ldap_hauk_pwd -
echo $nextcloud_admin_pwd | docker secret create nextcloud_admin_pwd -
echo $nextcloud_salt | docker secret create nextcloud_salt -
echo $nextcloud_secret | docker secret create nextcloud_secret -
#echo $paperless_webserver_pwd | docker secret create paperless_webserver_pwd -
#echo $paperless_passphrase | docker secret create paperless_passphrase -
echo $paperless_ftp_pwd | docker secret create paperless_ftp_pwd -
echo $gitea_admin_pwd | docker secret create gitea_admin_pwd -
#echo $pihole_web_pwd | docker secret create pihole_web_pwd -
sed -i "s/\${PIHOLE_WEB_PWD}/${pihole_web_pwd}/g" pihole.env

echo $'\E[33m'
echo "//////////////////////////////////////////////////"
echo "///////////// COPYING TEMPLATE FILES /////////////"
@@ -171,6 +174,7 @@ echo "//////////////////////////////////////////////////"
echo $'\E[1;30m'

cp env.template .env
cp mariadb.env.template mariadb.env
cp openldap.env.template openldap.env
cp mail.env.template mail.env
cp nextcloud.env.template nextcloud.env
@@ -180,6 +184,33 @@ cp sftp.env.template sftp.env
cp gitea.env.template gitea.env
cp hauk.env.template hauk.env
cp pihole.env.template pihole.env
chmod 600 *.env

# Passwords
echo MYSQL_ROOT_PWD=$db_pwd >> mariadb.env
echo MYSQL_ROOT_PWD=$db_pwd >> nextcloud.env

echo LDAP_ADMIN_PWD=$ldap_pwd >> openldap.env
echo LDAP_MAIL_PWD=$ldap_mail_pwd >> openldap.env
echo LDAP_NEXTCLOUD_PWD=$ldap_nextcloud_pwd >> openldap.env
echo LDAP_GITEA_PWD=$ldap_gitea_pwd >> openldap.env
echo LDAP_HAUK_PWD=$ldap_hauk_pwd >> openldap.env
echo LDAP_BIND_PWD=$ldap_mail_pwd >> mail.env
echo LDAP_BIND_PWD=$ldap_nextcloud_pwd >> nextcloud.env
echo LDAP_BIND_PWD=$ldap_gitea_pwd >> gitea.env
echo LDAP_BIND_PWD=$ldap_hauk_pwd >> hauk.env

echo NEXTCLOUD_ADMIN_PWD=$nextcloud_admin_pwd >> nextcloud.env
echo NEXTCLOUD_SALT=$nextcloud_salt >> nextcloud.env
echo NEXTCLOUD_SECRET=$nextcloud_secret >> nextcloud.env

#echo PAPERLESS_WEBSERVER_PWD=$paperless_webserver_pwd >> paperless.env
#echo PAPERLESS_PASSPHRASE=$paperless_passphrase >> paperless.env
echo PAPERLESS_FTP_PWD=$paperless_ftp_pwd >> sftp.env
echo GITEA_ADMIN_PWD=$gitea_admin_pwd >> gitea.env
echo HAUK_SERVER_PWD=$hauk_server_pwd >> hauk.env
#echo $pihole_web_pwd | docker secret create pihole_web_pwd -
sed -i "s/\${PIHOLE_WEB_PWD}/${pihole_web_pwd}/g" pihole.env

# IP for Pi-Hole
IP_LOOKUP="$(ip route get 8.8.8.8 | awk '{ print $NF; exit }')" # May not work for VPN / tun0
@@ -187,6 +218,7 @@ IPv6_LOOKUP="$(ip -6 route get 2001:4860:4860::8888 | awk '{for(i=1;i<=NF;i++) i

for i in `ls *.env .env`; do
sed -i "s/\${DOMAIN}/${domain}/g" $i
sed -i "s/\${VIRTUAL_DOMAINS}/${virtual_domains[*]}/g" $i
sed -i "s/\${ORGANIZATION}/${org}/g" $i
sed -i "s/\${EXTENSION}/${ext}/g" $i
sed -i "s/\${VOLUMES_PATH}/${volumes//\//\\/}/g" $i
@@ -205,17 +237,25 @@ done;
# read variables
. .env
# repeated env variables
# domains available for all, just in case
for i in `ls *.env`; do
echo "" >> $i
echo "# Domains" >> $i
echo "DOMAIN=${DOMAIN}" >> $i
echo "VIRTUAL_DOMAINS=${VIRTUAL_DOMAINS}" >> $i
echo "DOMAINS=${DOMAINS}" >> $i
done

echo "" >> mail.env
echo "MAIL_DATA_PATH=${MAIL_DATA_PATH}" >> mail.env
echo "" >> nextcloud.env
echo "NEXTCLOUD_SERVER_NAME=${NEXTCLOUD_SERVER_NAME}" >> nextcloud.env
echo "NEXTCLOUD_DB_BACKUP=${NEXTCLOUD_DATA_PATH}/nextcloud_db_backup.sql" >> nextcloud.env
echo "NEXTCLOUD_DATA_PATH=${NEXTCLOUD_DATA_PATH}" >> nextcloud.env
echo "NEXTCLOUD_BACKUP_PATH=${NEXTCLOUD_BACKUP_PATH}" >> nextcloud.env
echo "" >> gitea.env
echo "GITEA_SERVER_NAME=${GITEA_SERVER_NAME}" >> gitea.env
echo "GITEA_HTTP_PORT=${GITEA_HTTP_PORT}" >> gitea.env
echo "" >> hauk.env
echo "HAUK_SERVER_NAME=${HAUK_SERVER_NAME}" >> hauk.env
echo "" >> paperless.env
echo "PAPERLESS_CONSUMPTION_DIR=${PAPERLESS_CONSUMPTION_PATH}" >> paperless.env
echo "PAPERLESS_EXPORT_DIR=${PAPERLESS_EXPORT_PATH}" >> paperless.env

+ 0
- 303
setup_noswarm.sh Dosyayı Görüntüle

@@ -1,303 +0,0 @@
#!/bin/bash

DEFAULT_VOLUMES=/media/volumes
PWD_GEN='< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;'
#PWD_GEN='openssl rand -base64 20'
DEFAULT_LDAP_MAIL_UID='mail'
DEFAULT_LDAP_NEXTCLOUD_UID='nextcloud'
DEFAULT_LDAP_GITEA_UID='git'
DEFAULT_LDAP_HAUK_UID='hauk'

# main domain
read -p "Add main domain: " domain
while [[ ! $domain =~ ^.*\.[a-z]{2,}$ ]]; do
read -p "Add domain (empty to finish): " domain
done
# TODO: more than 1 level domains
org=`echo ${domain} | cut -f1 -d'.'`
ext=`echo ${domain} | cut -f2 -d'.'`

# additional domain
virtual_domains=()
while :; do
read -p "Add additional domains (empty to finish): " virtual_domain
if [[ -z $virtual_domain ]]; then
break;
elif [[ ! $virtual_domain =~ ^.*\.[a-z]{2,}$ ]]; then
echo "Please Enter a valid domain";
else
virtual_domains+=($virtual_domain);
fi
done

read -p "Volumes path ($DEFAULT_VOLUMES): " volumes
if [[ ${#volumes} -eq 0 ]]; then
volumes=$DEFAULT_VOLUMES
fi

read -p "DB admin password (a random one will be generated if empty): " db_pwd
if [[ ${#db_pwd} -eq 0 ]]; then
db_pwd=`eval "$PWD_GEN"`
fi

read -p "LDAP admin password (a random one will be generated if empty): " ldap_pwd
if [[ ${#ldap_pwd} -eq 0 ]]; then
ldap_pwd=`eval "$PWD_GEN"`
fi

read -p "LDAP Mail Bind DN uid ($DEFAULT_LDAP_MAIL_UID): " ldap_mail_uid
if [[ ${#ldap_mail_uid} -eq 0 ]]; then
ldap_mail_uid=$DEFAULT_LDAP_MAIL_UID
fi

read -p "LDAP Mail Bind DN Pwd (a random one will be generated if empty): " ldap_mail_pwd
if [[ ${#ldap_mail_pwd} -eq 0 ]]; then
ldap_mail_pwd=`eval "$PWD_GEN"`
fi

read -p "LDAP Nextcloud Bind DN uid ($DEFAULT_LDAP_NEXTCLOUD_UID): " ldap_nextcloud_uid
if [[ ${#ldap_nextcloud_uid} -eq 0 ]]; then
ldap_nextcloud_uid=$DEFAULT_LDAP_NEXTCLOUD_UID
fi

read -p "LDAP Nextcloud Bind DN Pwd (a random one will be generated if empty): " ldap_nextcloud_pwd
if [[ ${#ldap_nextcloud_pwd} -eq 0 ]]; then
ldap_nextcloud_pwd=`eval "$PWD_GEN"`
fi

read -p "LDAP Gitea Bind DN uid ($DEFAULT_LDAP_GITEA_UID): " ldap_gitea_uid
if [[ ${#ldap_gitea_uid} -eq 0 ]]; then
ldap_gitea_uid=$DEFAULT_LDAP_GITEA_UID
fi

read -p "LDAP Gitea Bind DN Pwd (a random one will be generated if empty): " ldap_gitea_pwd
if [[ ${#ldap_gitea_pwd} -eq 0 ]]; then
ldap_gitea_pwd=`eval "$PWD_GEN"`
fi

read -p "LDAP Hauk Bind DN uid ($DEFAULT_LDAP_HAUK_UID): " ldap_hauk_uid
if [[ ${#ldap_hauk_uid} -eq 0 ]]; then
ldap_hauk_uid=$DEFAULT_LDAP_HAUK_UID
fi

read -p "LDAP Hauk Bind DN Pwd (a random one will be generated if empty): " ldap_hauk_pwd
if [[ ${#ldap_hauk_pwd} -eq 0 ]]; then
ldap_hauk_pwd=`eval "$PWD_GEN"`
fi

read -p "Nextcloud Admin User Pwd (a random one will be generated if empty): " nextcloud_admin_pwd
if [[ ${#nextcloud_admin_pwd} -eq 0 ]]; then
nextcloud_admin_pwd=`eval "$PWD_GEN"`
fi

read -p "Gitea Admin User Pwd (a random one will be generated if empty): " gitea_admin_pwd
if [[ ${#gitea_admin_pwd} -eq 0 ]]; then
gitea_admin_pwd=`eval "$PWD_GEN"`
fi

read -p "Hauk Server Pwd (a random one will be generated if empty): " hauk_server_pwd
if [[ ${#hauk_server_pwd} -eq 0 ]]; then
hauk_server_pwd=`eval "$PWD_GEN"`
fi

read -p "Pi-Hole Web User Pwd (a random one will be generated if empty): " pihole_web_pwd
if [[ ${#pihole_web_pwd} -eq 0 ]]; then
pihole_web_pwd=`eval "$PWD_GEN"`
fi

read -p "Admin E-mail, used for Let's Encrypt account and more (admin@${domain}): " admin_email
if [[ ${#admin_email} -eq 0 ]]; then
admin_email=admin@${domain}
fi

echo "If you have a password salt and a secret from a previous installation, provide them here."
echo "They are used by Passman and need to remain the same for the vaults to be accessible"
read -p "Nextcloud Pwd Salt (a random one will be generated by NC if empty): " nextcloud_salt
read -p "Nextcloud Secret (a random one will be generated by NC if empty): " nextcloud_secret

# read -p "Paperless Web Server User (paperless): " paperless_webserver_user
# if [[ ${#paperless_webserver_user} -eq 0 ]]; then
# paperless_webserver_user=paperless
# fi

# read -p "Paperless Web Server Pwd (a random one will be generated if empty): " paperless_webserver_pwd
# if [[ ${#paperless_webserver_pwd} -eq 0 ]]; then
# paperless_webserver_pwd=`eval "$PWD_GEN"`
# fi

# read -p "Paperless Encryption Passphrase (a random one will be generated if empty): " paperless_passphrase
# if [[ ${#paperless_passphrase} -eq 0 ]]; then
# paperless_=`eval "$PWD_GEN"`
# fi

read -p "SFTP User - SFTP server is used by paperless (consume): " paperless_ftp_user
if [[ ${#paperless_ftp_user} -eq 0 ]]; then
paperless_ftp_user=consume
fi

read -p "SFTP Pwd (a random one will be generated if empty): " paperless_ftp_pwd
if [[ ${#paperless_ftp_pwd} -eq 0 ]]; then
paperless_ftp_pwd=`eval "$PWD_GEN"`
fi

echo $'\E[33m'
echo "//////////////////////////////////////////////////"
echo "///////////////// PLEASE CONFIRM /////////////////"
echo "//////////////////////////////////////////////////"
echo $'\E[1;30m'

echo Your main domain is: ${domain}
echo Your virtual domains are: ${virtual_domains[*]}
echo Your Volumes path is: $volumes
echo Your LDAP Mail Bind DN Uid is: $ldap_mail_uid
echo Your LDAP Nextcloud Bind DN Uid is: $ldap_nextcloud_uid
echo Your LDAP Gitea Bind DN Uid is: $ldap_gitea_uid
echo Your LDAP Hauk Bind DN Uid is: $ldap_hauk_uid
echo Your Admin email. Let\'s Encrypt...: $admin_email
echo Your Paperless Web Server User: $paperless_webserver_user
echo Your SFTP User: $paperless_ftp_user

echo $'\E[1;37m'
read -p "Are These Settings Correct? Yes (y), No (n): " confirm
while [[ ! $confirm =~ ^[yYnN]{1}$ ]]; do
read -p "Please Enter 'y' or 'n' To Confirm Settings: " confirm
done

if [[ $confirm != [yY] ]]; then
exit 1
fi

echo $'\E[33m'
echo "//////////////////////////////////////////////////"
echo "///////////// COPYING TEMPLATE FILES /////////////"
echo "//////////////////////////////////////////////////"
echo $'\E[1;30m'

cp env.template .env
cp mariadb.env.template mariadb.env
cp openldap.env.template openldap.env
cp mail.env.template mail.env
cp nextcloud.env.template nextcloud.env
cp haproxy.env.template haproxy.env
cp paperless.env.template paperless.env
cp sftp.env.template sftp.env
cp gitea.env.template gitea.env
cp hauk.env.template hauk.env
cp pihole.env.template pihole.env
chmod 600 *.env

# Passwords
echo MYSQL_ROOT_PWD=$db_pwd >> mariadb.env
echo MYSQL_ROOT_PWD=$db_pwd >> nextcloud.env

echo LDAP_ADMIN_PWD=$ldap_pwd >> openldap.env
echo LDAP_MAIL_PWD=$ldap_mail_pwd >> openldap.env
echo LDAP_NEXTCLOUD_PWD=$ldap_nextcloud_pwd >> openldap.env
echo LDAP_GITEA_PWD=$ldap_gitea_pwd >> openldap.env
echo LDAP_HAUK_PWD=$ldap_hauk_pwd >> openldap.env
echo LDAP_BIND_PWD=$ldap_mail_pwd >> mail.env
echo LDAP_BIND_PWD=$ldap_nextcloud_pwd >> nextcloud.env
echo LDAP_BIND_PWD=$ldap_gitea_pwd >> gitea.env
echo LDAP_BIND_PWD=$ldap_hauk_pwd >> hauk.env

echo NEXTCLOUD_ADMIN_PWD=$nextcloud_admin_pwd >> nextcloud.env
echo NEXTCLOUD_SALT=$nextcloud_salt >> nextcloud.env
echo NEXTCLOUD_SECRET=$nextcloud_secret >> nextcloud.env

#echo PAPERLESS_WEBSERVER_PWD=$paperless_webserver_pwd >> paperless.env
#echo PAPERLESS_PASSPHRASE=$paperless_passphrase >> paperless.env
echo PAPERLESS_FTP_PWD=$paperless_ftp_pwd >> sftp.env
echo GITEA_ADMIN_PWD=$gitea_admin_pwd >> gitea.env
echo HAUK_SERVER_PWD=$hauk_server_pwd >> hauk.env
#echo $pihole_web_pwd | docker secret create pihole_web_pwd -
sed -i "s/\${PIHOLE_WEB_PWD}/${pihole_web_pwd}/g" pihole.env

# IP for Pi-Hole
IP_LOOKUP="$(ip route get 8.8.8.8 | awk '{ print $NF; exit }')" # May not work for VPN / tun0
IPv6_LOOKUP="$(ip -6 route get 2001:4860:4860::8888 | awk '{for(i=1;i<=NF;i++) if ($i=="src") print $(i+1)}')" # May not work for VPN / tun0

for i in `ls *.env .env`; do
sed -i "s/\${DOMAIN}/${domain}/g" $i
sed -i "s/\${VIRTUAL_DOMAINS}/${virtual_domains[*]}/g" $i
sed -i "s/\${ORGANIZATION}/${org}/g" $i
sed -i "s/\${EXTENSION}/${ext}/g" $i
sed -i "s/\${VOLUMES_PATH}/${volumes//\//\\/}/g" $i
sed -i "s/\${LDAP_MAIL_UID}/${ldap_mail_uid}/g" $i
sed -i "s/\${LDAP_NEXTCLOUD_UID}/${ldap_nextcloud_uid}/g" $i
sed -i "s/\${LDAP_GITEA_UID}/${ldap_gitea_uid}/g" $i
sed -i "s/\${LDAP_HAUK_UID}/${ldap_hauk_uid}/g" $i
sed -i "s/\${ADMIN_EMAIL}/${admin_email}/g" $i
sed -i "s/\${PAPERLESS_WEBSERVER_USER}/${paperless_webserver_user}/g" $i
sed -i "s/\${PAPERLESS_FTP_USER}/${paperless_ftp_user}/g" $i
sed -i "s/\${IP_LOOKUP}/${IP_LOOKUP}/g" $i
sed -i "s/\${IPv6_LOOKUP}/${IPv6_LOOKUP}/g" $i
#sed -i "s/\${}/${}/g" $i
done;

# read variables
. .env
# repeated env variables
# domains available for all, just in case
for i in `ls *.env`; do
echo "" >> $i
echo "# Domains" >> $i
echo "DOMAIN=${DOMAIN}" >> $i
echo "VIRTUAL_DOMAINS=${VIRTUAL_DOMAINS}" >> $i
echo "DOMAINS=${DOMAINS}" >> $i
done

echo "" >> mail.env
echo "MAIL_DATA_PATH=${MAIL_DATA_PATH}" >> mail.env
echo "" >> nextcloud.env
echo "NEXTCLOUD_SERVER_NAME=${NEXTCLOUD_SERVER_NAME}" >> nextcloud.env
echo "NEXTCLOUD_DB_BACKUP=${NEXTCLOUD_DATA_PATH}/nextcloud_db_backup.sql" >> nextcloud.env
echo "NEXTCLOUD_DATA_PATH=${NEXTCLOUD_DATA_PATH}" >> nextcloud.env
echo "NEXTCLOUD_BACKUP_PATH=${NEXTCLOUD_BACKUP_PATH}" >> nextcloud.env
echo "" >> gitea.env
echo "GITEA_SERVER_NAME=${GITEA_SERVER_NAME}" >> gitea.env
echo "GITEA_HTTP_PORT=${GITEA_HTTP_PORT}" >> gitea.env
echo "" >> paperless.env
echo "PAPERLESS_CONSUMPTION_DIR=${PAPERLESS_CONSUMPTION_PATH}" >> paperless.env
echo "PAPERLESS_EXPORT_DIR=${PAPERLESS_EXPORT_PATH}" >> paperless.env
echo "" >> sftp.env
echo "PAPERLESS_CONSUMPTION_DIR=${PAPERLESS_CONSUMPTION_PATH}" >> sftp.env
echo "" >> haproxy.env
echo "NEXTCLOUD_SERVER_NAME=${NEXTCLOUD_SERVER_NAME}" >> haproxy.env
echo "GITEA_SERVER_NAME=${GITEA_SERVER_NAME}" >> haproxy.env
echo "HAUK_SERVER_NAME=${HAUK_SERVER_NAME}" >> haproxy.env

echo $'\E[33m'
echo "//////////////////////////////////////////////////"
echo "//////////////// CREATING FOLDERS ////////////////"
echo "//////////////////////////////////////////////////"
echo $'\E[1;30m'

# openldap
sudo mkdir -p ${LDAP_DATA_VOLUME_PATH}
sudo mkdir -p ${LDAP_CONFIG_VOLUME_PATH}
sudo mkdir -p ${LDAP_CERTS_VOLUME_PATH}
# db
sudo mkdir -p ${DB_DATA_VOLUME_PATH}
#sudo mkdir -p ${DB_CONFIG_VOLUME_PATH}
# mail
sudo mkdir -p ${MAIL_DATA_VOLUME_PATH}
sudo mkdir -p ${MAIL_DATA_VOLUME_PATH}/getmail
#sudo mkdir -p ${MAIL_STATE_VOLUME_PATH}
# nextcloud
sudo mkdir -p ${NEXTCLOUD_DATA_VOLUME_PATH}
sudo mkdir -p ${NEXTCLOUD_BACKUP_VOLUME_PATH}
# paperless
sudo mkdir -p ${PAPERLESS_DATA_VOLUME_PATH}
sudo mkdir -p ${PAPERLESS_MEDIA_VOLUME_PATH}
sudo mkdir -p ${PAPERLESS_CONSUMPTION_VOLUME_PATH}
sudo mkdir -p ${PAPERLESS_EXPORT_VOLUME_PATH}
# gitea
sudo mkdir -p ${GITEA_DATA_VOLUME_PATH}
# Pi-Hole
sudo mkdir -p ${PIHOLE_CONFIG_VOLUME_PATH}
sudo mkdir -p ${PIHOLE_DNSMASQ_VOLUME_PATH}
# let's Encrypt
sudo mkdir -p ${LETSENCRYPT_VOLUME_PATH}

echo "Copying getmail confs"
cp images/email/getmail/getmailrc-* ${MAIL_DATA_VOLUME_PATH}/getmail/

Yükleniyor…
İptal
Kaydet