diff --git a/scripts/unused/OLD_CONTAINERS/anysync/anysync.config b/scripts/unused/OLD_CONTAINERS/anysync/anysync.config
deleted file mode 100755
index 8dea498..0000000
--- a/scripts/unused/OLD_CONTAINERS/anysync/anysync.config
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-# OPEN PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_ANYSYNC_APP_NAME=anysync
-CFG_ANYSYNC_BACKUP=true
-CFG_ANYSYNC_COMPOSE_FILE=app
-CFG_ANYSYNC_HOST_NAME=space
-CFG_ANYSYNC_DOMAIN=1
-CFG_ANYSYNC_PUBLIC=true
-CFG_ANYSYNC_WHITELIST=false
-CFG_ANYSYNC_HEALTHCHECK=true
-CFG_ANYSYNC_HEADSCALE=false
-CFG_ANYSYNC_PORTS=8001,8002,8003,8004,8005,8006,8081,8082
-CFG_ANYSYNC_OPEN_PORTS=8001/tcp,8002/tcp,8003/tcp,8004/tcp,8005/tcp,8006/tcp,8081/tcp,8082/tcp
-CFG_ANYSYNC_GIT="https://github.com/anyproto/any-sync-dockercompose"
-# Application metadata
-CFG_ANYSYNC_CATEGORY="Knowledge Management"
-CFG_ANYSYNC_TITLE="Anysync"
-CFG_ANYSYNC_DESCRIPTION="Personal Knowledge Base"
-CFG_ANYSYNC_LONG_DESCRIPTION="Docker-compose for any-sync Self-host for a personal knowledge base and sync system with end-to-end encryption"
-CFG_ANYSYNC_URL="https://github.com/anyproto"
-CFG_ANYSYNC_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/anysync/anysync.sh b/scripts/unused/OLD_CONTAINERS/anysync/anysync.sh
deleted file mode 100755
index 0ff00d5..0000000
--- a/scripts/unused/OLD_CONTAINERS/anysync/anysync.sh
+++ /dev/null
@@ -1,134 +0,0 @@
-#!/bin/bash
-
-# Category : Knowledge Management
-# Description : Anysync - Personal Knowledge Base (c/u/s/r/i):
-
-installAnysync()
-{
- local config_variables="$1"
-
- if [[ "$anysync" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent anysync;
- local app_name=$CFG_ANYSYNC_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$anysync" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$anysync" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$anysync" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$anysync" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$anysync" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Pulling $app_name Git repo"
- echo ""
-
- backupContainerFilesToTemp $app_name;
- local result=$(sudo rm -rf $containers_dir$app_name)
- checkSuccess "Removing $app_name install folder"
-
- local result=$(sudo -u $docker_install_user git clone $CFG_ANYSYNC_GIT $containers_dir$app_name)
- checkSuccess "Cloning $app_name Git"
- backupContainerFilesRestore $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Generating the .env file file."
- echo ""
-
- cd $containers_dir$app_name
- local result=$(docker buildx build --tag generateconfig-env --file Dockerfile-generateconfig-env .)
- local result=$(docker run --rm --volume $containers_dir$app_name/:/code/ generateconfig-env)
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your new service using one of the options below : "
- echo ""
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- anysync=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/anysync/anysync.svg b/scripts/unused/OLD_CONTAINERS/anysync/anysync.svg
deleted file mode 100755
index 350d894..0000000
--- a/scripts/unused/OLD_CONTAINERS/anysync/anysync.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/scripts/unused/OLD_CONTAINERS/anysync/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/anysync/docker-compose.yml
deleted file mode 100755
index acf9b8f..0000000
--- a/scripts/unused/OLD_CONTAINERS/anysync/docker-compose.yml
+++ /dev/null
@@ -1,75 +0,0 @@
-# https://github.com/anyproto/any-sync-dockercompose
-services:
- any-sync-coordinator:
- ports:
- - "${ANY_SYNC_COORDINATOR_PORT}:${ANY_SYNC_COORDINATOR_PORT}"
- - "${ANY_SYNC_COORDINATOR_QUIC_PORT}:${ANY_SYNC_COORDINATOR_QUIC_PORT}/udp"
- - PORT5:8000
-
- any-sync-filenode:
- ports:
- - "${ANY_SYNC_FILENODE_PORT}:${ANY_SYNC_FILENODE_PORT}"
- - "${ANY_SYNC_FILENODE_QUIC_PORT}:${ANY_SYNC_FILENODE_QUIC_PORT}/udp"
- - PORT4:8000
-
- any-sync-node-1:
- ports:
- - "${ANY_SYNC_NODE_1_PORT}:${ANY_SYNC_NODE_1_PORT}"
- - "${ANY_SYNC_NODE_1_QUIC_PORT}:${ANY_SYNC_NODE_1_QUIC_PORT}/udp"
- - PORT7:8080
- - PORT1:8000
-
- any-sync-node-2:
- ports:
- - "${ANY_SYNC_NODE_2_PORT}:${ANY_SYNC_NODE_2_PORT}"
- - "${ANY_SYNC_NODE_2_QUIC_PORT}:${ANY_SYNC_NODE_2_QUIC_PORT}/udp"
- - PORT8:8080
- - PORT2:8000
-
- any-sync-node-3:
- ports:
- - "${ANY_SYNC_NODE_3_PORT}:${ANY_SYNC_NODE_3_PORT}"
- - "${ANY_SYNC_NODE_3_QUIC_PORT}:${ANY_SYNC_NODE_3_QUIC_PORT}/udp"
- - 8083:8080
- - PORT3:8000
-
- any-sync-consensusnode:
- ports:
- - "${ANY_SYNC_CONSENSUSNODE_PORT}:${ANY_SYNC_CONSENSUSNODE_PORT}"
- - "${ANY_SYNC_CONSENSUSNODE_QUIC_PORT}:${ANY_SYNC_CONSENSUSNODE_QUIC_PORT}/udp"
- - PORT6:8000
-
- mongo-1:
- command: --replSet ${MONGO_REPLICA_SET} --port ${MONGO_1_PORT}
- ports:
- - "${MONGO_1_PORT}:${MONGO_1_PORT}"
- volumes:
- - ./storage/mongo-1/:/data/db
- healthcheck:
- test: test $$(mongosh --port ${MONGO_1_PORT} --quiet --eval "try {rs.initiate({_id:'${MONGO_REPLICA_SET}',members:[{_id:0,host:\"mongo-1:${MONGO_1_PORT}\"}]})} catch(e) {rs.status().ok}") -eq 1
-
- redis:
- command: redis-server --port ${REDIS_PORT} --dir /data/ --appendonly yes --maxmemory 256mb --maxmemory-policy noeviction --protected-mode no --loadmodule /opt/redis-stack/lib/redisbloom.so
- ports:
- - "${REDIS_PORT}:${REDIS_PORT}"
- healthcheck:
- test: [ "CMD", "redis-cli", "--raw", "-p", "${REDIS_PORT}", "incr", "ping" ]
-
- minio:
- command: server /data --console-address ":${MINIO_WEB_PORT}" --address ":${MINIO_PORT}"
- ports:
- - "${EXTERNAL_MINIO_PORT}:${MINIO_PORT}"
- - "${EXTERNAL_MINIO_WEB_PORT}:${MINIO_WEB_PORT}"
- volumes:
- - ./storage/minio:/data
- healthcheck:
- test: bash -c ':> /dev/tcp/127.0.0.1/${MINIO_PORT}' || exit 1
- networks:
- default:
- aliases:
- - "${MINIO_BUCKET}.minio" # .
-
- create-bucket:
- environment:
- MC_HOST_minio: http://${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}@minio:${MINIO_PORT}
-
diff --git a/scripts/unused/OLD_CONTAINERS/baikal/baikal.config b/scripts/unused/OLD_CONTAINERS/baikal/baikal.config
deleted file mode 100755
index 1f97e4e..0000000
--- a/scripts/unused/OLD_CONTAINERS/baikal/baikal.config
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_BAIKAL_APP_NAME=baikal
-CFG_BAIKAL_BACKUP=true
-CFG_BAIKAL_COMPOSE_FILE=default
-CFG_BAIKAL_HOST_NAME=calendar
-CFG_BAIKAL_DOMAIN=1
-CFG_BAIKAL_PUBLIC=true
-CFG_BAIKAL_WHIELIST=false
-CFG_BAIKAL_HEALTHCHECK=true
-CFG_BAIKAL_AUTHELIA=false
-CFG_BAIKAL_HEADSCALE=false
-CFG_BAIKAL_PORTS=12324
-# Application metadata
-CFG_BAIKAL_CATEGORY="Knowledge Management"
-CFG_BAIKAL_TITLE="Baikal"
-CFG_BAIKAL_DESCRIPTION="CalDAV and CardDAV Server"
-CFG_BAIKAL_LONG_DESCRIPTION="Baikal is a lightweight CalDAV+CardDAV server that allows you to sync your calendars and contacts with your mobile devices and desktop clients"
-CFG_BAIKAL_URL="https://github.com/sabre-io/Baikal"
-CFG_BAIKAL_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/baikal/baikal.sh b/scripts/unused/OLD_CONTAINERS/baikal/baikal.sh
deleted file mode 100755
index 3e11c98..0000000
--- a/scripts/unused/OLD_CONTAINERS/baikal/baikal.sh
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/bin/bash
-
-# Category : Knowledge Management
-# Description : Baikal - CalDAV and CardDAV Server (c/u/s/r/i):
-
-installBaikal()
-{
- local config_variables="$1"
-
- if [[ "$baikal" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent baikal;
- local app_name=$CFG_BAIKAL_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$baikal" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$baikal" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$baikal" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$baikal" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$baikal" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adjusting $app_name Nginx docker system files for port changes."
- echo ""
-
- dockerCommandRun "docker exec -it $app_name /bin/bash -c 'sed -i "/^ *listen/s/[0-9]\\+/$usedport1/g" /etc/nginx/conf.d/default.conf'"
- dockerComposeRestart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your $app_name service using any of the options below : "
- echo ""
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- baikal=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/baikal/baikal.svg b/scripts/unused/OLD_CONTAINERS/baikal/baikal.svg
deleted file mode 100755
index 6c998d3..0000000
--- a/scripts/unused/OLD_CONTAINERS/baikal/baikal.svg
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
diff --git a/scripts/unused/OLD_CONTAINERS/baikal/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/baikal/docker-compose.yml
deleted file mode 100755
index 038c22b..0000000
--- a/scripts/unused/OLD_CONTAINERS/baikal/docker-compose.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-networks:
- vpn:
- external: true
- name: vpn
-
-services:
- baikal:
- container_name: baikal
- image: ckulka/baikal:nginx
- restart: always
- ports:
- - "PORT1:PORT1"
- volumes:
- - ./config:/var/www/baikal/config
- - ./data:/var/www/baikal/Specific
- #labels:
- #traefik.enable: true
- #traefik.http.routers.baikal.entrypoints: web,websecure
- #traefik.http.routers.baikal.rule: Host(`DOMAINSUBNAMEHERE`)
- #traefik.http.routers.baikal.tls: true
- #traefik.http.routers.baikal.tls.certresolver: production
- #traefik.http.services.baikal.loadbalancer.server.port: PORT1
- #traefik.http.routers.baikal.middlewares:
- networks:
- vpn:
- ipv4_address: IPADDRESSHERE
\ No newline at end of file
diff --git a/scripts/unused/OLD_CONTAINERS/dolibarr/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/dolibarr/docker-compose.yml
deleted file mode 100755
index 7b0f6bb..0000000
--- a/scripts/unused/OLD_CONTAINERS/dolibarr/docker-compose.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-# https://github.com/tuxgasy/docker-dolibarr/blob/master/README.md
-
-networks:
- DOCKERNETWORKHERE:
- external: true
- dolibarr:
- name: dolibarr
- internal: true
-
-services:
- dolibarr:
- container_name: dolibarr
- image: tuxgasy/dolibarr:latest
- environment:
- - DOLI_DB_HOST=mysql
- - DOLI_DB_USER=dolibarr
- - DOLI_DB_PASSWORD=RANDOMIZEDPASSWORD1
- - DOLI_DB_NAME=dolibarr
- - DOLI_ADMIN_LOGIN=admin
- - DOLI_ADMIN_PASSWORD=RANDOMIZEDPASSWORD2
- - DOLI_URL_ROOT=https://DOMAINSUBNAMEHERE
- #labels:
- #traefik.enable: true
- #traefik.http.routers.dolibarr.entrypoints: web,websecure
- #traefik.http.routers.dolibarr.rule: Host(`DOMAINSUBNAMEHERE`)
- #traefik.http.routers.dolibarr.tls: true
- #traefik.http.routers.dolibarr.tls.certresolver: production
- #traefik.http.services.dolibarr.loadbalancer.server.port: 80
- #traefik.http.routers.dolibarr.middlewares:
- #traefik.docker.network: DOCKERNETWORKHERE
- volumes:
- - ./dolibarr-docs:/var/www/documents
- - ./dolibarr-custom:/var/www/html/custom
- networks:
- dolibarr:
- DOCKERNETWORKHERE:
- ipv4_address: IPADDRESSHERE
-
- mysql:
- image: library/mariadb:latest
- environment:
- - MYSQL_DATABASE=dolibarr
- - MYSQL_USER=dolibarr
- - MYSQL_PASSWORD=RANDOMIZEDPASSWORD1
- - MYSQL_ROOT_PASSWORD=RANDOMIZEDPASSWORD2
- volumes:
- - ./mysql-data:/var/lib/mysql
- networks:
- - dolibarr
diff --git a/scripts/unused/OLD_CONTAINERS/dolibarr/dolibarr.config b/scripts/unused/OLD_CONTAINERS/dolibarr/dolibarr.config
deleted file mode 100755
index ccfbc91..0000000
--- a/scripts/unused/OLD_CONTAINERS/dolibarr/dolibarr.config
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_DOLIBARR_APP_NAME=dolibarr
-CFG_DOLIBARR_BACKUP=true
-CFG_DOLIBARR_COMPOSE_FILE=default
-CFG_DOLIBARR_HOST_NAME=crm
-CFG_DOLIBARR_DOMAIN=1
-CFG_DOLIBARR_PUBLIC=true
-CFG_DOLIBARR_WHIELIST=true
-CFG_DOLIBARR_HEALTHCHECK=true
-CFG_DOLIBARR_AUTHELIA=false
-CFG_DOLIBARR_HEADSCALE=false
-CFG_DOLIBARR_PORTS=3422
-
-# Application metadata
-CFG_DOLIBARR_CATEGORY="Productivity"
-CFG_DOLIBARR_TITLE="Dolibarr"
-CFG_DOLIBARR_DESCRIPTION="ERP and CRM"
-CFG_DOLIBARR_LONG_DESCRIPTION="Dolibarr ERP CRM is a modern software package to manage your company's activity, from contacts to invoices, projects, and inventory"
-CFG_DOLIBARR_URL="https://github.com/Dolibarr/dolibarr"
-CFG_DOLIBARR_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/dolibarr/dolibarr.sh b/scripts/unused/OLD_CONTAINERS/dolibarr/dolibarr.sh
deleted file mode 100755
index 6fbbf1f..0000000
--- a/scripts/unused/OLD_CONTAINERS/dolibarr/dolibarr.sh
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/bin/bash
-
-# Category : Productivity
-# Description : Dolibarr - ERP and CRM (c/u/s/r/i):
-
-installDolibarr()
-{
- local config_variables="$1"
-
- if [[ "$dolibarr" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent dolibarr;
- local app_name=$CFG_DOLIBARR_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$dolibarr" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$dolibarr" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$dolibarr" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$dolibarr" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$dolibarr" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install fuserer and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install fuserers and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your $app_name service using any of the options below : "
- echo ""
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- dolibarr=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/dolibarr/dolibarr.svg b/scripts/unused/OLD_CONTAINERS/dolibarr/dolibarr.svg
deleted file mode 100755
index 5da0b24..0000000
--- a/scripts/unused/OLD_CONTAINERS/dolibarr/dolibarr.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/scripts/unused/OLD_CONTAINERS/duplicati/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/duplicati/docker-compose.yml
deleted file mode 100755
index 6e3d332..0000000
--- a/scripts/unused/OLD_CONTAINERS/duplicati/docker-compose.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-networks:
- vpn:
- external: true
-
-services:
- duplicati:
- image: lscr.io/linuxserver/duplicati:latest
- container_name: duplicati
- environment:
- - PUID=1000
- - PGID=1000
- - TZ=TIMEZONEHERE
- #- CLI_ARGS= #optional
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock:ro #SOCKETHERE
- - ./duplicati-data/:/config
- - ./duplicati-backups/:/backups
- - ./duplicati-source/:/source
- ports:
- - 8200:8200
- restart: unless-stopped
- #labels:
- #caddy.tls: "internal"
- #traefik.enable: true
- #traefik.http.routers.cozy.entrypoints: web,websecure
- #traefik.http.routers.cozy.rule: Host(`DOMAINSUBNAMEHERE`)
- #traefik.http.routers.cozy.tls: true
- #traefik.http.routers.cozy.tls.certresolver: production
- healthcheck:
- disable: false #HEALTHCHECKHERE
- networks:
- vpn:
- ipv4_address: IPADDRESSHERE
diff --git a/scripts/unused/OLD_CONTAINERS/duplicati/duplicati.config b/scripts/unused/OLD_CONTAINERS/duplicati/duplicati.config
deleted file mode 100755
index 0922db9..0000000
--- a/scripts/unused/OLD_CONTAINERS/duplicati/duplicati.config
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_DUPLICATI_APP_NAME=duplicati
-CFG_DUPLICATI_BACKUP=true
-CFG_DUPLICATI_COMPOSE_FILE=default
-CFG_DUPLICATI_HOST_NAME=backup
-CFG_DUPLICATI_DOMAIN=1
-CFG_DUPLICATI_PUBLIC=false
-CFG_DUPLICATI_WHITELIST=false
-CFG_DUPLICATI_HEALTHCHECK=true
-CFG_DUPLICATI_AUTHELIA=false
-CFG_DUPLICATI_HEADSCALE=false
-CFG_DUPLICATI_PORTS=8200
-# Application metadata
-CFG_DUPLICATI_CATEGORY="Cloud Storage & File Sharing"
-CFG_DUPLICATI_TITLE="Duplicati"
-CFG_DUPLICATI_DESCRIPTION="Backup Service"
-CFG_DUPLICATI_LONG_DESCRIPTION="Free backup client that securely stores encrypted, incremental, compressed backups on cloud storage services and remote file servers"
-CFG_DUPLICATI_URL="https://github.com/duplicati/duplicati"
-CFG_DUPLICATI_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/duplicati/duplicati.sh b/scripts/unused/OLD_CONTAINERS/duplicati/duplicati.sh
deleted file mode 100755
index 48c94ad..0000000
--- a/scripts/unused/OLD_CONTAINERS/duplicati/duplicati.sh
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/bin/bash
-
-# Category : Cloud Storage & File Sharing
-# Description : Duplicati - Backup Service (c/u/s/r/i):
-
-installDuplicati()
-{
- local config_variables="$1"
-
- if [[ "$duplicati" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent duplicati;
- local app_name=$CFG_DUPLICATI_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$duplicati" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$duplicati" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$duplicati" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$duplicati" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$duplicati" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your new service using one of the options below : "
- echo ""
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- duplicati=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/duplicati/duplicati.svg b/scripts/unused/OLD_CONTAINERS/duplicati/duplicati.svg
deleted file mode 100755
index 7fb327f..0000000
--- a/scripts/unused/OLD_CONTAINERS/duplicati/duplicati.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/scripts/unused/OLD_CONTAINERS/fail2ban/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/fail2ban/docker-compose.yml
deleted file mode 100755
index 4cc1146..0000000
--- a/scripts/unused/OLD_CONTAINERS/fail2ban/docker-compose.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-services:
- fail2ban-service: #LIBREPORTAL|SERVICE_TAG_1|fail2ban-service
- image: lscr.io/linuxserver/fail2ban:latest
- container_name: fail2ban-service
- cap_add:
- - NET_ADMIN
- - NET_RAW
- network_mode: host
- environment:
- - PUID=1000
- - PGID=1000
- - TZ:TIMEZONE_DATA #LIBREPORTAL|TIMEZONE_TAG|TIMEZONE_DATA
- - VERBOSITY=-vv #optional
- volumes:
- - SOCKET_DATA #LIBREPORTAL|SOCKET_TAG|SOCKET_DATA
- - ./config/:/config
- - ./logs/:/var/log:ro
- #- ./logs/airsonic/:/remotelogs/airsonic:ro #optional
- #- ./logs/apache2/log:/remotelogs/apache2:ro #optional
- #- ./logs/authelia/log:/remotelogs/authelia:ro #optional
- #- ./logs/emby/log:/remotelogs/emby:ro #optional
- #- ./logs/filebrowser/log:/remotelogs/filebrowser:ro #optional
- #- ./logs/homeassistant/log:/remotelogs/homeassistant:ro #optional
- #- ./logs/lighttpd/log:/remotelogs/lighttpd:ro #optional
- #- ./logs/nextcloud/log:/remotelogs/nextcloud:ro #optional
- #- ./logs/nginx/log:/remotelogs/nginx:ro #optional
- #- ./logs/nzbget/log:/remotelogs/nzbget:ro #optional
- #- ./logs/overseerr/log:/remotelogs/overseerr:ro #optional
- #- ./logs/prowlarr/log:/remotelogs/prowlarr:ro #optional
- #- ./logs/radarr/log:/remotelogs/radarr:ro #optional
- #- ./logs/sabnzbd/log:/remotelogs/sabnzbd:ro #optional
- #- ./logs/sonarr/log:/remotelogs/sonarr:ro #optional
- #- ./logs/unificontroller/log:/remotelogs/unificontroller:ro #optional
- #- ./logs/vaultwarden/log:/remotelogs/vaultwarden:ro #optional
- restart: unless-stopped
- healthcheck:
- disable: HEALTHCHECK_DATA #LIBREPORTAL|HEALTHCHECK_TAG|HEALTHCHECK_DATA
- labels:
- libreportal.category: "CATEGORY_DATA" #LIBREPORTAL|CATEGORY_TAG|CATEGORY_DATA
- libreportal.title: "TITLE_DATA" #LIBREPORTAL|TITLE_TAG|TITLE_DATA
diff --git a/scripts/unused/OLD_CONTAINERS/fail2ban/fail2ban.config b/scripts/unused/OLD_CONTAINERS/fail2ban/fail2ban.config
deleted file mode 100755
index 098db6e..0000000
--- a/scripts/unused/OLD_CONTAINERS/fail2ban/fail2ban.config
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# =============================================================================
-# GENERAL CONFIGURATION
-# =============================================================================
-# APP_NAME = name of application for use in scripts
-# COMPOSE_FILE = default for no app_name in docker compose file name, app if there is
-# BACKUP = if true, include this application in backup operations
-# HEALTHCHECK = if true, default docker health checks for that container will be enabled
-# ABUSEIPDB_APIKEY = API key for AbuseIPDB integration (optional)
-#
-CFG_FAIL2BAN_APP_NAME=fail2ban
-CFG_FAIL2BAN_BACKUP=false
-CFG_FAIL2BAN_COMPOSE_FILE=default
-CFG_FAIL2BAN_HEALTHCHECK=true
-CFG_FAIL2BAN_ABUSEIPDB_APIKEY=
-#
-# =============================================================================
-# METADATA
-# =============================================================================
-# CATEGORY = application category for grouping
-# TITLE = display name for the application
-# DESCRIPTION = short description of the application
-# LONG_DESCRIPTION = detailed description of the application
-# URL = source repository or documentation URL
-# ACTIONS = available actions for this application
-#
-CFG_FAIL2BAN_CATEGORY="Security"
-CFG_FAIL2BAN_TITLE="Fail2Ban"
-CFG_FAIL2BAN_DESCRIPTION="Intrusion Prevention"
-CFG_FAIL2BAN_LONG_DESCRIPTION="Intrusion prevention software framework that protects computer servers from brute-force attacks by monitoring log files and banning malicious IPs"
-CFG_FAIL2BAN_URL="https://github.com/fail2ban/fail2ban"
-CFG_FAIL2BAN_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/fail2ban/fail2ban.sh b/scripts/unused/OLD_CONTAINERS/fail2ban/fail2ban.sh
deleted file mode 100755
index 54f3f00..0000000
--- a/scripts/unused/OLD_CONTAINERS/fail2ban/fail2ban.sh
+++ /dev/null
@@ -1,158 +0,0 @@
-#!/bin/bash
-
-# Category : Security
-# Description : Fail2Ban - Intrusion Prevention (c/u/s/r/i):
-
-installFail2ban()
-{
- local config_variables="$1"
-
- if [[ "$fail2ban" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent fail2ban;
- local app_name=$CFG_FAIL2BAN_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$fail2ban" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$fail2ban" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$fail2ban" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$fail2ban" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$fail2ban" == *[iI]* ]]; then
- isHeader "Install $app_name"
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Checking if $app_name can be installed."
- echo ""
-
- dockerCheckAllowedInstall "$app_name" || return 1
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up AbuseIPDB for fail2ban if api key is provided"
- echo ""
-
- if [ -n "$CFG_FAIL2BAN_ABUSEIPDB_APIKEY" ]; then
- checkSuccess "API key found, setting up the config file."
-
- local result=$(createFolders "loud" $docker_install_user $containers_dir$app_name/logs)
- checkSuccess "Creating logs folder"
-
- local result=$(cd $containers_dir$app_name && createTouch $containers_dir$app_name/logs/auth.log $docker_install_user)
- checkSuccess "Creating Auth.log file"
-
- local result=$(createFolders "loud" $docker_install_user $containers_dir$app_name/config/$app_name $containers_dir$app_name/config/$app_name/action.d)
- checkSuccess "Creating config and action.d folders"
-
- # AbuseIPDB
- local result=$(cd $containers_dir$app_name/config/$app_name/action.d/ && sudo curl -o abuseipdb.conf https://raw.githubusercontent.com/fail2ban/fail2ban/0.11/config/action.d/abuseipdb.conf)
- checkSuccess "Downloading abuseipdb.conf from GitHub"
-
- local result=$(sudo sed -i "s/abuseipdb_apikey =/abuseipdb_apikey =$CFG_FAIL2BAN_ABUSEIPDB_APIKEY/g" $containers_dir$app_name/config/$app_name/action.d/abuseipdb.conf)
- checkSuccess "Setting up abuseipdb_apikey"
-
- # Jail.local
- local result=$(createFolders "loud" $docker_install_user $containers_dir$app_name/config/$app_name/)
- checkSuccess "Creating $app_name folder"
-
- local result=$(copyResource "$app_name" "jail.local" "config/$app_name" | sudo tee -a "$logs_dir/$docker_log_file" 2>&1)
- checkSuccess "Coping over jail.local from Resources folder"
-
- # Append abuseipdb action only when a key is set.
- sudo tee -a "$containers_dir$app_name/config/$app_name/jail.local" >/dev/null <
-
diff --git a/scripts/unused/OLD_CONTAINERS/fail2ban/resources/jail.local b/scripts/unused/OLD_CONTAINERS/fail2ban/resources/jail.local
deleted file mode 100755
index c5b2fe1..0000000
--- a/scripts/unused/OLD_CONTAINERS/fail2ban/resources/jail.local
+++ /dev/null
@@ -1,12 +0,0 @@
-# banaction must be defined for any %(action_*)s shortcut to resolve.
-[DEFAULT]
-banaction = iptables-multiport
-banaction_allports = iptables-allports
-
-[sshd]
-enabled = true
-mode = normal
-port = ssh
-logpath = %(sshd_log)s
-backend = %(sshd_backend)s
-ignoreip = ips_whitelist
diff --git a/scripts/unused/OLD_CONTAINERS/firefly/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/firefly/docker-compose.yml
deleted file mode 100755
index 1535cc1..0000000
--- a/scripts/unused/OLD_CONTAINERS/firefly/docker-compose.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-networks:
- vpn:
- external: true
-
-services:
- firefly:
- image: fireflyiii/core:latest
- hostname: firefly
- container_name: firefly
- restart: always
- volumes:
- - ./firefly_iii_upload:/var/www/html/storage/upload
- env_file: .env
- ports:
- - PORT1:8080
- depends_on:
- - firefly_iii_db
- #labels:
- #traefik.enable: true
- #traefik.http.routers.firefly.entrypoints: web,websecure
- #traefik.http.routers.firefly.rule: Host(`DOMAINSUBNAMEHERE`)
- #traefik.http.routers.firefly.tls: true
- #traefik.http.routers.firefly.tls.certresolver: production
- #traefik.http.routers.firefly.service: firefly
- #traefik.http.services.firefly.loadbalancer.server.port: PORT1
- #traefik.http.routers.firefly.middlewares:
- healthcheck:
- disable: false #HEALTHCHECKHERE
- networks:
- vpn:
- ipv4_address: IPADDRESSHERE
-
- firefly_iii_db:
- image: mariadb
- hostname: firefly_iii_db
- container_name: firefly_iii_db
- restart: always
- env_file: .db.env
- volumes:
- - ./firefly_iii_db:/var/lib/mysql
- networks:
- vpn:
- ipv4_address: 10.100.0.124
-
- firefly_iii_cron:
- image: alpine
- restart: always
- container_name: firefly_iii_cron
- command: sh -c "echo \"0 3 * * * wget -qO- http://firefly:PORT1/api/v1/cron/REPLACEME\" | crontab - && crond -f -L /dev/stdout"
- networks:
- vpn:
- ipv4_address: 10.100.0.125
diff --git a/scripts/unused/OLD_CONTAINERS/firefly/firefly.config b/scripts/unused/OLD_CONTAINERS/firefly/firefly.config
deleted file mode 100755
index 284dcb5..0000000
--- a/scripts/unused/OLD_CONTAINERS/firefly/firefly.config
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_FIREFLY_APP_NAME=firefly
-CFG_FIREFLY_BACKUP=true
-CFG_FIREFLY_COMPOSE_FILE=default
-CFG_FIREFLY_HOST_NAME=budget
-CFG_FIREFLY_DOMAIN=1
-CFG_FIREFLY_PUBLIC=true
-CFG_FIREFLY_WHITELIST=false
-CFG_FIREFLY_HEALTHCHECK=true
-CFG_FIREFLY_AUTHELIA=false
-CFG_FIREFLY_HEADSCALE=false
-CFG_FIREFLY_PORTS=5006
-# Application metadata
-CFG_FIREFLY_CATEGORY="Productivity"
-CFG_FIREFLY_TITLE="Firefly III"
-CFG_FIREFLY_DESCRIPTION="Personal Finance Manager"
-CFG_FIREFLY_LONG_DESCRIPTION="Firefly III is a self-hosted financial manager for personal finance management that helps you track expenses and manage your budget"
-CFG_FIREFLY_URL="https://github.com/firefly-iii/firefly-iii"
-CFG_FIREFLY_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/firefly/firefly.sh b/scripts/unused/OLD_CONTAINERS/firefly/firefly.sh
deleted file mode 100755
index 6a10273..0000000
--- a/scripts/unused/OLD_CONTAINERS/firefly/firefly.sh
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/bin/bash
-
-# Category : Productivity
-# Description : Firefly III - Personal Finance Manager (c/u/s/r/i):
-
-installFirefly()
-{
- local config_variables="$1"
-
- if [[ "$firefly" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent firefly;
- local app_name=$CFG_FIREFLY_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$firefly" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$firefly" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$firefly" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$firefly" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$firefly" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- result=$(rm -rf "$containers_dir$app_name/resources/.env")
- checkSuccess "Removing old .env file"
- result=$(rm -rf "$containers_dir$app_name/resources/.db.env")
- checkSuccess "Removing old .db.env file"
-
- local result=$(copyResource "$app_name" ".env" "")
- checkSuccess "Copying the .env for $app_name"
- local result=$(copyResource "$app_name" ".db.env" "")
- checkSuccess "Copying the .db.env for $app_name"
-
- configSetupFileWithData $app_name ".env";
- configSetupFileWithData $app_name ".db.env";
-
- local APP_KEY=$(head /dev/urandom | LC_ALL=C tr -dc 'A-Za-z0-9' | head -c 32 && echo)
- result=$(sudo sed -i "s|SomeRandomStringOf32CharsExactly|${APP_KEY}|" "$containers_dir$app_name/.db.env")
- checkSuccess "Enabling environment in the docker compose file."
-
- local random_password=$(openssl rand -base64 12 | tr -d '+/=')
- result=$(sudo sed -i "s|secret_firefly_password|${random_password}|" "$containers_dir$app_name/.env")
- checkSuccess "Updating the MYSQL password in .env."
- result=$(sudo sed -i "s|secret_firefly_password|${random_password}|" "$containers_dir$app_name/.db.env")
- checkSuccess "Updating the MYSQL password in .db.env."
-
- if [[ $public == "true" ]]; then
- result=$(sudo sed -i "s|APP_URL=http://localhost|APP_URL=https://$host_setup|" "$containers_dir$app_name/.env")
- checkSuccess "Enabling environment in the docker compose file."
- result=$(sudo sed -i "s|TRUSTED_PROXIES=|TRUSTED_PROXIES=*|" "$containers_dir$app_name/.env")
- checkSuccess "Enabling TRUSTED_PROXIES in the .env file."
- fi
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your new service using one of the options below : "
- echo ""
-
- menuShowFinalMessages $app_name;
- menu_number=0
- #sleep 3s
- cd
- fi
- firefly=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/firefly/firefly.svg b/scripts/unused/OLD_CONTAINERS/firefly/firefly.svg
deleted file mode 100755
index 4aa8334..0000000
--- a/scripts/unused/OLD_CONTAINERS/firefly/firefly.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/scripts/unused/OLD_CONTAINERS/firefly/resources/.db.env b/scripts/unused/OLD_CONTAINERS/firefly/resources/.db.env
deleted file mode 100755
index 219cadf..0000000
--- a/scripts/unused/OLD_CONTAINERS/firefly/resources/.db.env
+++ /dev/null
@@ -1,4 +0,0 @@
-MYSQL_RANDOM_ROOT_PASSWORD=yes
-MYSQL_USER=firefly
-MYSQL_PASSWORD=secret_firefly_password
-MYSQL_DATABASE=firefly
\ No newline at end of file
diff --git a/scripts/unused/OLD_CONTAINERS/firefly/resources/.env b/scripts/unused/OLD_CONTAINERS/firefly/resources/.env
deleted file mode 100755
index e6c9d33..0000000
--- a/scripts/unused/OLD_CONTAINERS/firefly/resources/.env
+++ /dev/null
@@ -1,341 +0,0 @@
-# You can leave this on "local". If you change it to production most console commands will ask for extra confirmation.
-# Never set it to "testing".
-APP_ENV=local
-
-# Set to true if you want to see debug information in error screens.
-APP_DEBUG=false
-
-# This should be your email address.
-# If you use Docker or similar, you can set this variable from a file by using SITE_OWNER_FILE
-# The variable is used in some errors shown to users who aren't admin.
-SITE_OWNER=EMAILHERE
-
-# The encryption key for your sessions. Keep this very secure.
-# Change it to a string of exactly 32 chars or use something like `php artisan key:generate` to generate it.
-# If you use Docker or similar, you can set this variable from a file by using APP_KEY_FILE
-#
-# Avoid the "#" character in your APP_KEY, it may break things.
-#
-APP_KEY=SomeRandomStringOf32CharsExactly
-
-# Firefly III will launch using this language (for new users and unauthenticated visitors)
-# For a list of available languages: https://github.com/firefly-iii/firefly-iii/tree/main/resources/lang
-#
-# If text is still in English, remember that not everything may have been translated.
-DEFAULT_LANGUAGE=en_US
-
-# The locale defines how numbers are formatted.
-# by default this value is the same as whatever the language is.
-DEFAULT_LOCALE=equal
-
-# Change this value to your preferred time zone.
-# Example: Europe/Amsterdam
-# For a list of supported time zones, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
-TZ=TIMEZONEHERE
-
-# TRUSTED_PROXIES is a useful variable when using Docker and/or a reverse proxy.
-# Set it to ** and reverse proxies work just fine.
-TRUSTED_PROXIES=
-
-# The log channel defines where your log entries go to.
-# Several other options exist. You can use 'single' for one big fat error log (not recommended).
-# Also available are 'syslog', 'errorlog' and 'stdout' which will log to the system itself.
-# A rotating log option is 'daily', creates 5 files that (surprise) rotate.
-# A cool option is 'papertrail' for cloud logging
-# Default setting 'stack' will log to 'daily' and to 'stdout' at the same time.
-LOG_CHANNEL=stack
-
-# Log level. You can set this from least severe to most severe:
-# debug, info, notice, warning, error, critical, alert, emergency
-# If you set it to debug your logs will grow large, and fast. If you set it to emergency probably
-# nothing will get logged, ever.
-APP_LOG_LEVEL=notice
-
-# Audit log level.
-# The audit log is used to log notable Firefly III events on a separate channel.
-# These log entries may contain sensitive financial information.
-# The audit log is disabled by default.
-#
-# To enable it, set AUDIT_LOG_LEVEL to "info"
-# To disable it, set AUDIT_LOG_LEVEL to "emergency"
-AUDIT_LOG_LEVEL=emergency
-
-#
-# If you want, you can redirect the audit logs to another channel.
-# Set 'audit_stdout', 'audit_syslog', 'audit_errorlog' to log to the system itself.
-# Use audit_daily to log to a rotating file.
-# Use audit_papertrail to log to papertrail.
-#
-# If you do this, the audit logs may be mixed with normal logs because the settings for these channels
-# are often the same as the settings for the normal logs.
-AUDIT_LOG_CHANNEL=
-
-#
-# Used when logging to papertrail:
-# Also used when audit logs log to papertrail:
-#
-PAPERTRAIL_HOST=
-PAPERTRAIL_PORT=
-
-# Database credentials. Make sure the database exists. I recommend a dedicated user for Firefly III
-# For other database types, please see the FAQ: https://docs.firefly-iii.org/firefly-iii/faq/self-hosted/#i-want-to-use-sqlite
-# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
-# Use "pgsql" for PostgreSQL
-# Use "mysql" for MySQL and MariaDB.
-# Use "sqlite" for SQLite.
-DB_CONNECTION=mysql
-DB_HOST=firefly_iii_db
-DB_PORT=3306
-DB_DATABASE=firefly
-DB_USERNAME=firefly
-DB_PASSWORD=secret_firefly_password
-# leave empty or omit when not using a socket connection
-DB_SOCKET=
-
-# MySQL supports SSL. You can configure it here.
-# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
-MYSQL_USE_SSL=false
-MYSQL_SSL_VERIFY_SERVER_CERT=true
-# You need to set at least of these options
-MYSQL_SSL_CAPATH=/etc/ssl/certs/
-MYSQL_SSL_CA=
-MYSQL_SSL_CERT=
-MYSQL_SSL_KEY=
-MYSQL_SSL_CIPHER=
-
-# PostgreSQL supports SSL. You can configure it here.
-# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
-PGSQL_SSL_MODE=prefer
-PGSQL_SSL_ROOT_CERT=null
-PGSQL_SSL_CERT=null
-PGSQL_SSL_KEY=null
-PGSQL_SSL_CRL_FILE=null
-
-# more PostgreSQL settings
-PGSQL_SCHEMA=public
-
-# If you're looking for performance improvements, you could install memcached or redis
-CACHE_DRIVER=file
-SESSION_DRIVER=file
-
-# If you set either of the options above to 'redis', you might want to update these settings too
-# If you use Docker or similar, you can set REDIS_HOST_FILE, REDIS_PASSWORD_FILE or
-# REDIS_PORT_FILE to set the value from a file instead of from an environment variable
-
-# can be tcp, unix or http
-REDIS_SCHEME=tcp
-
-# use only when using 'unix' for REDIS_SCHEME. Leave empty otherwise.
-REDIS_PATH=
-
-# use only when using 'tcp' or 'http' for REDIS_SCHEME. Leave empty otherwise.
-REDIS_HOST=127.0.0.1
-REDIS_PORT=6379
-
-# Use only with Redis 6+ with proper ACL set. Leave empty otherwise.
-REDIS_USERNAME=
-REDIS_PASSWORD=
-
-# always use quotes and make sure redis db "0" and "1" exists. Otherwise change accordingly.
-REDIS_DB="0"
-REDIS_CACHE_DB="1"
-
-# Cookie settings. Should not be necessary to change these.
-# If you use Docker or similar, you can set COOKIE_DOMAIN_FILE to set
-# the value from a file instead of from an environment variable
-# Setting samesite to "strict" may give you trouble logging in.
-COOKIE_PATH="/"
-COOKIE_DOMAIN=
-COOKIE_SECURE=false
-COOKIE_SAMESITE=lax
-
-# If you want Firefly III to email you, update these settings
-# For instructions, see: https://docs.firefly-iii.org/firefly-iii/advanced-installation/email/#email
-# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
-MAIL_MAILER=log
-MAIL_HOST=null
-MAIL_PORT=2525
-MAIL_FROM=changeme@example.com
-MAIL_USERNAME=null
-MAIL_PASSWORD=null
-MAIL_ENCRYPTION=null
-MAIL_SENDMAIL_COMMAND=
-
-# Other mail drivers:
-# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
-MAILGUN_DOMAIN=
-MAILGUN_SECRET=
-
-# If you are on EU region in mailgun, use api.eu.mailgun.net, otherwise use api.mailgun.net
-# If you use Docker or similar, you can set this variable from a file by appending it with _FILE
-MAILGUN_ENDPOINT=api.mailgun.net
-
-# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
-MANDRILL_SECRET=
-SPARKPOST_SECRET=
-
-# Firefly III can send you the following messages.
-SEND_ERROR_MESSAGE=true
-
-# These messages contain (sensitive) transaction information:
-SEND_REPORT_JOURNALS=true
-
-# Set this value to true if you want to set the location of certain things, like transactions.
-# Since this involves an external service, it's optional and disabled by default.
-ENABLE_EXTERNAL_MAP=false
-
-# Set this value to true if you want Firefly III to download currency exchange rates
-# from the internet. These rates are hosted by the creator of Firefly III inside
-# an Azure Storage Container.
-# Not all currencies may be available. Rates may be wrong.
-ENABLE_EXTERNAL_RATES=false
-
-# The map will default to this location:
-MAP_DEFAULT_LAT=51.983333
-MAP_DEFAULT_LONG=5.916667
-MAP_DEFAULT_ZOOM=6
-
-#
-# Some objects have room for an URL, like transactions and webhooks.
-# By default, the following protocols are allowed:
-# http, https, ftp, ftps, mailto
-#
-# To change this, set your preferred comma separated set below.
-# Be sure to include http, https and other default ones if you need to.
-#
-VALID_URL_PROTOCOLS=
-
-#
-# Firefly III authentication settings
-#
-
-#
-# Firefly III supports a few authentication methods:
-# - 'web' (default, uses built in DB)
-# - 'remote_user_guard' for Authelia etc
-# Read more about these settings in the documentation.
-# https://docs.firefly-iii.org/firefly-iii/advanced-installation/authentication
-#
-# LDAP is no longer supported :(
-#
-AUTHENTICATION_GUARD=web
-
-#
-# Remote user guard settings
-#
-AUTHENTICATION_GUARD_HEADER=REMOTE_USER
-AUTHENTICATION_GUARD_EMAIL=
-
-#
-# Firefly III generates a basic keypair for your OAuth tokens.
-# If you want, you can overrule the key with your own (secure) value.
-# It's also possible to set PASSPORT_PUBLIC_KEY_FILE or PASSPORT_PRIVATE_KEY_FILE
-# if you're using Docker secrets or similar solutions for secret management
-#
-PASSPORT_PRIVATE_KEY=
-PASSPORT_PUBLIC_KEY=
-
-#
-# Extra authentication settings
-#
-CUSTOM_LOGOUT_URL=
-
-# You can disable the X-Frame-Options header if it interferes with tools like
-# Organizr. This is at your own risk. Applications running in frames run the risk
-# of leaking information to their parent frame.
-DISABLE_FRAME_HEADER=false
-
-# You can disable the Content Security Policy header when you're using an ancient browser
-# or any version of Microsoft Edge / Internet Explorer (which amounts to the same thing really)
-# This leaves you with the risk of not being able to stop XSS bugs should they ever surface.
-# This is at your own risk.
-DISABLE_CSP_HEADER=false
-
-# If you wish to track your own behavior over Firefly III, set valid analytics tracker information here.
-# Nobody uses this except for me on the demo site. But hey, feel free to use this if you want to.
-# Do not prepend the TRACKER_URL with http:// or https://
-# The only tracker supported is Matomo.
-# You can set the following variables from a file by appending them with _FILE:
-TRACKER_SITE_ID=
-TRACKER_URL=
-
-#
-# Firefly III supports webhooks. These are security sensitive and must be enabled manually first.
-#
-ALLOW_WEBHOOKS=false
-
-#
-# The static cron job token can be useful when you use Docker and wish to manage cron jobs.
-# 1. Set this token to any 32-character value (this is important!).
-# 2. Use this token in the cron URL instead of a user's command line token that you can find in /profile
-#
-# For more info: https://docs.firefly-iii.org/firefly-iii/advanced-installation/cron/
-#
-# You can set this variable from a file by appending it with _FILE
-#
-STATIC_CRON_TOKEN=
-
-# You can fine tune the start-up of a Docker container by editing these environment variables.
-# Use this at your own risk. Disabling certain checks and features may result in lots of inconsistent data.
-# However if you know what you're doing you can significantly speed up container start times.
-# Set each value to true to enable, or false to disable.
-
-# Set this to true to build all locales supported by Firefly III.
-# This may take quite some time (several minutes) and is generally not recommended.
-# If you wish to change or alter the list of locales, start your Docker container with
-# `docker run -v locale.gen:/etc/locale.gen -e DKR_BUILD_LOCALE=true`
-# and make sure your preferred locales are in your own locale.gen.
-DKR_BUILD_LOCALE=false
-
-# Check if the SQLite database exists. Can be skipped if you're not using SQLite.
-# Won't significantly speed up things.
-DKR_CHECK_SQLITE=true
-
-# Run database creation and migration commands. Disable this only if you're 100% sure the DB exists
-# and is up to date.
-DKR_RUN_MIGRATION=true
-
-# Run database upgrade commands. Disable this only when you're 100% sure your DB is up-to-date
-# with the latest fixes (outside of migrations!)
-DKR_RUN_UPGRADE=true
-
-# Verify database integrity. Includes all data checks and verifications.
-# Disabling this makes Firefly III assume your DB is intact.
-DKR_RUN_VERIFY=true
-
-# Run database reporting commands. When disabled, Firefly III won't go over your data to report current state.
-# Disabling this should have no impact on data integrity or safety but it won't warn you of possible issues.
-DKR_RUN_REPORT=true
-
-# Generate OAuth2 keys.
-# When disabled, Firefly III won't attempt to generate OAuth2 Passport keys. This won't be an issue, IFF (if and only if)
-# you had previously generated keys already and they're stored in your database for restoration.
-DKR_RUN_PASSPORT_INSTALL=true
-
-# Leave the following configuration vars as is.
-# Unless you like to tinker and know what you're doing.
-APP_NAME=FireflyIII
-BROADCAST_DRIVER=log
-QUEUE_DRIVER=sync
-CACHE_PREFIX=firefly
-PUSHER_KEY=
-IPINFO_TOKEN=
-PUSHER_SECRET=
-PUSHER_ID=
-DEMO_USERNAME=
-DEMO_PASSWORD=
-FIREFLY_III_LAYOUT=v1
-
-#
-# If you have trouble configuring your Firefly III installation, DON'T BOTHER setting this variable.
-# It won't work. It doesn't do ANYTHING. Don't believe the lies you read online. I'm not joking.
-# This configuration value WILL NOT HELP.
-#
-# Notable exception to this rule is Synology, which, according to some users, will use APP_URL to rewrite stuff.
-#
-# This variable is ONLY used in some of the emails Firefly III sends around. Nowhere else.
-# So when configuring anything WEB related this variable doesn't do anything. Nothing
-#
-# If you're stuck I understand you get desperate but look SOMEWHERE ELSE.
-#
-APP_URL=http://localhost
diff --git a/scripts/unused/OLD_CONTAINERS/killbill/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/killbill/docker-compose.yml
deleted file mode 100755
index 86bff24..0000000
--- a/scripts/unused/OLD_CONTAINERS/killbill/docker-compose.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-networks:
- vpn:
- external: true
-services:
- killbill:
- image: killbill/killbill:0.24.0
- container_name: killbill
- ports:
- - "8788:8080"
- environment:
- - KILLBILL_DAO_URL=jdbc:mysql://db:3306/killbill
- - KILLBILL_DAO_USER=root
- - KILLBILL_DAO_PASSWORD=killbill
- - KILLBILL_CATALOG_URI=SpyCarAdvanced.xml
- networks:
- vpn:
- ipv4_address: 10.100.0.111
- kaui:
- image: killbill/kaui:2.0.11
- container_name: killbill_ui
- ports:
- - "PORT1:8080"
- environment:
- - KAUI_CONFIG_DAO_URL=jdbc:mysql://db:3306/kaui
- - KAUI_CONFIG_DAO_USER=root
- - KAUI_CONFIG_DAO_PASSWORD=killbill
- - KAUI_KILLBILL_URL=http://killbill:8080
- #labels:
- #traefik.enable: true
- #traefik.http.routers.killbill.entrypoints: web,websecure
- #traefik.http.routers.killbill.rule: Host(`DOMAINSUBNAMEHERE`)
- #traefik.http.routers.killbill.tls: true
- #traefik.http.routers.killbill.tls.certresolver: production
- #traefik.http.routers.killbill.middlewares:
- healthcheck:
- disable: false #HEALTHCHECKHERE
-
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock:ro #SOCKETHERE
- networks:
- vpn:
- ipv4_address: IPADDRESSHERE
- db:
- image: killbill/mariadb:0.24
- container_name: killbill_db
- volumes:
- - ./data:/var/lib/mysql
- expose:
- - "3306"
- environment:
- - MYSQL_ROOT_PASSWORD=killbill
- networks:
- vpn:
- ipv4_address: 10.100.0.112
diff --git a/scripts/unused/OLD_CONTAINERS/killbill/killbill.config b/scripts/unused/OLD_CONTAINERS/killbill/killbill.config
deleted file mode 100755
index 8e18135..0000000
--- a/scripts/unused/OLD_CONTAINERS/killbill/killbill.config
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_KILLBILL_APP_NAME=killbill
-CFG_KILLBILL_BACKUP=true
-CFG_KILLBILL_COMPOSE_FILE=default
-CFG_KILLBILL_HOST_NAME=payment
-CFG_KILLBILL_DOMAIN=1
-CFG_KILLBILL_PUBLIC=true
-CFG_KILLBILL_WHITELIST=false
-CFG_KILLBILL_HEALTHCHECK=true
-CFG_KILLBILL_AUTHELIA=false
-CFG_KILLBILL_HEADSCALE=false
-CFG_KILLBILL_PORTS=9090
-# Application metadata
-CFG_KILLBILL_CATEGORY="Productivity"
-CFG_KILLBILL_TITLE="Killbill"
-CFG_KILLBILL_DESCRIPTION="Payment Processing"
-CFG_KILLBILL_LONG_DESCRIPTION="Open-Source Subscription Billing and Payment Platform for businesses that need to manage subscriptions and payments"
-CFG_KILLBILL_URL="https://github.com/killbill/killbill"
-CFG_KILLBILL_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/killbill/killbill.sh b/scripts/unused/OLD_CONTAINERS/killbill/killbill.sh
deleted file mode 100755
index e43df46..0000000
--- a/scripts/unused/OLD_CONTAINERS/killbill/killbill.sh
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/bin/bash
-
-# Category : Productivity
-# Description : Killbill - Payment Processing (c/u/s/r/i):
-
-installKillbill()
-{
- local config_variables="$1"
-
- if [[ "$killbill" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent killbill;
- local app_name=$CFG_KILLBILL_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$killbill" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$killbill" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$killbill" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$killbill" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$killbill" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your new service using one of the options below : "
- echo ""
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- killbill=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/killbill/killbill.svg b/scripts/unused/OLD_CONTAINERS/killbill/killbill.svg
deleted file mode 100755
index f901921..0000000
--- a/scripts/unused/OLD_CONTAINERS/killbill/killbill.svg
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
diff --git a/scripts/unused/OLD_CONTAINERS/kimai/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/kimai/docker-compose.yml
deleted file mode 100755
index ecd94c3..0000000
--- a/scripts/unused/OLD_CONTAINERS/kimai/docker-compose.yml
+++ /dev/null
@@ -1,104 +0,0 @@
-networks:
- vpn:
- external: true
- name: vpn
-
-services:
-
- kimai: # This is the latest FPM image of kimai
- image: kimai/kimai2:fpm-dev
- container_name: kimai
- environment:
- - ADMINMAIL=EMAILHERE
- - ADMINPASS=RANDOMIZEDPASSWORD1
- - DATABASE_URL=mysql://kimaiuser:kimaipassword@sqldb/kimai
- - TRUSTED_HOSTS=IPADDRESSHERE,DOMAINSUBNAMEHERE
- - memory_limit=500
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock:ro #SOCKETHERE
- - ./kimai-public/:/opt/kimai/public
- # - var:/opt/kimai/var
- # - ./ldap.conf:/etc/openldap/ldap.conf:z
- # - ./ROOT-CA.pem:/etc/ssl/certs/ROOT-CA.pem:z
- restart: unless-stopped
- networks:
- vpn:
- ipv4_address: 10.100.0.101
-
- sqldb:
- image: mysql:5.7
- container_name: kimai-sqldb
- environment:
- - MYSQL_DATABASE=kimai
- - MYSQL_USER=kimaiuser
- - MYSQL_PASSWORD=kimaipassword
- - MYSQL_ROOT_PASSWORD=RANDOMIZEDPASSWORD2
- ports:
- - 3336:3306
- volumes:
- - ./kimai-mysql/:/var/lib/mysql
- command: --default-storage-engine innodb
- restart: unless-stopped
- healthcheck:
- test: mysqladmin -p$$MYSQL_ROOT_PASSWORD ping -h localhost
- interval: 20s
- start_period: 10s
- timeout: 10s
- retries: 3
- networks:
- vpn:
- ipv4_address: 10.100.0.102
-
- phpmyadmin:
- container_name: kimai-phpmyadmin
- image: phpmyadmin
- restart: always
- ports:
- - PORT2:80
- environment:
- - PMA_ARBITRARY=1
- networks:
- vpn:
- ipv4_address: 10.100.0.103
-
- swagger:
- container_name: kimai-swagger
- image: swaggerapi/swagger-ui
- ports:
- - PORT3:8080
- volumes:
- - ./swagger.json:/swagger.json
- environment:
- - SWAGGER_JSON=/swagger.json
- networks:
- vpn:
- ipv4_address: 10.100.0.104
-
- kimai-nginx:
- container_name: kimai-nginx
- image: tobybatch/nginx-fpm-reverse-proxy
- ports:
- - PORT1:80
- volumes:
- - ./kimai-public:/opt/kimai/public:ro
- restart: unless-stopped
- depends_on:
- - kimai
- healthcheck:
- test: wget --spider http://kimai-nginx/health || exit 1
- interval: 20s
- start_period: 10s
- timeout: 10s
- retries: 3
- disable: false #HEALTHCHECKHERE
- #labels:
- #traefik.enable: true
- #traefik.http.routers.kimai-nginx.entrypoints: web,websecure
- #traefik.http.routers.kimai-nginx.rule: Host(`DOMAINSUBNAMEHERE`)
- #traefik.http.routers.kimai-nginx.tls: true
- #traefik.http.routers.kimai-nginx.tls.certresolver: production
- #traefik.http.services.kimai-nginx.loadbalancer.server.port: 80
- #traefik.http.routers.kimai-nginx.middlewares:
- networks:
- vpn:
- ipv4_address: IPADDRESSHERE
diff --git a/scripts/unused/OLD_CONTAINERS/kimai/kimai.config b/scripts/unused/OLD_CONTAINERS/kimai/kimai.config
deleted file mode 100755
index 0a048b9..0000000
--- a/scripts/unused/OLD_CONTAINERS/kimai/kimai.config
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_KIMAI_APP_NAME=kimai
-CFG_KIMAI_BACKUP=true
-CFG_KIMAI_COMPOSE_FILE=default
-CFG_KIMAI_HOST_NAME=client
-CFG_KIMAI_DOMAIN=1
-CFG_KIMAI_PUBLIC=true
-CFG_KIMAI_WHITELIST=false
-CFG_KIMAI_HEALTHCHECK=true
-CFG_KIMAI_AUTHELIA=false
-CFG_KIMAI_HEADSCALE=false
-CFG_KIMAI_PORTS=8001,8002,8003
-# Application metadata
-CFG_KIMAI_CATEGORY="Productivity"
-CFG_KIMAI_TITLE="Kimai"
-CFG_KIMAI_DESCRIPTION="Time Tracking"
-CFG_KIMAI_LONG_DESCRIPTION="Kimai is a web-based, open source time-tracking application that helps you track work time and generate reports for billing and productivity"
-CFG_KIMAI_URL="https://github.com/kimai/kimai"
-CFG_KIMAI_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/kimai/kimai.sh b/scripts/unused/OLD_CONTAINERS/kimai/kimai.sh
deleted file mode 100755
index dbd3ced..0000000
--- a/scripts/unused/OLD_CONTAINERS/kimai/kimai.sh
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/bin/bash
-
-# Category : Productivity
-# Description : Kimai - Time Tracking (c/u/s/r/i):
-
-installKimai()
-{
- local config_variables="$1"
-
- if [[ "$kimai" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent kimai;
- local app_name=$CFG_KIMAI_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$kimai" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$kimai" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$kimai" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$kimai" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$kimai" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Pulling a default Kimai docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start Kimai"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Fix memory limit issue"
- echo ""
-
- # Run the health check loop with timings
- dockerCheckContainerHealthLoop "kimai" 180 15
-
- # If container is healthy
- if dockerCheckContainerHealth "kimai"; then
- dockerCommandRun "docker exec kimai /bin/bash -c "php -d memory_limit=1G /opt/kimai/bin/console kimai:reload --env=prod" && exit"
- else
- isNotice "It has not been possible to change the memory limit, this may cause issues"
- fi
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your new service using one of the options below : "
- echo ""
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- kimai=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/kimai/kimai.svg b/scripts/unused/OLD_CONTAINERS/kimai/kimai.svg
deleted file mode 100755
index ef96eee..0000000
--- a/scripts/unused/OLD_CONTAINERS/kimai/kimai.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/scripts/unused/OLD_CONTAINERS/mailcow/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/mailcow/docker-compose.yml
deleted file mode 100755
index 6329727..0000000
--- a/scripts/unused/OLD_CONTAINERS/mailcow/docker-compose.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-networks:
- vpn:
- external: true
-
-services:
- nginx-mailcow:
- container_name: mailcow
- networks:
- vpn:
- ipv4_address: IPADDRESSHERE
- #labels:
- #traefik.enable: true
- #traefik.http.routers.moo.rule: Host(`${MAILCOW_HOSTNAME}`)
- #traefik.http.routers.moo.tls: true
- #traefik.http.routers.moo.tls.certresolver: production
- #traefik.http.services.moo.loadbalancer.server.port: PORT1
- #traefik.http.routers.moo.entrypoints: websecure
- #traefik.docker.network: DOCKERNETWORKHERE
- #traefik.http.routers.moo.middlewares:
- healthcheck:
- disable: false #HEALTHCHECKHERE
-
- certdumper:
- image: humenius/traefik-certs-dumper
- command: --restart-containers ${COMPOSE_PROJECT_NAME}-postfix-mailcow-1,${COMPOSE_PROJECT_NAME}-nginx-mailcow-1,${COMPOSE_PROJECT_NAME}-dovecot-mailcow-1
- #network_mode: none
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock:ro #SOCKETHERE
- - /docker/containers/traefik/etc/certs:/traefik:ro
- - ./data/assets/ssl/:/output:rw
- restart: always
- environment:
- # only change this, if you're using another domain for mailcow's web frontend compared to the standard config
- - DOMAIN=${MAILCOW_HOSTNAME}
diff --git a/scripts/unused/OLD_CONTAINERS/mailcow/mailcow.config b/scripts/unused/OLD_CONTAINERS/mailcow/mailcow.config
deleted file mode 100755
index 9875c81..0000000
--- a/scripts/unused/OLD_CONTAINERS/mailcow/mailcow.config
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_MAILCOW_APP_NAME=mailcow
-CFG_MAILCOW_BACKUP=true
-CFG_MAILCOW_COMPOSE_FILE=app
-CFG_MAILCOW_HOST_NAME=mail
-CFG_MAILCOW_DOMAIN=1
-CFG_MAILCOW_PUBLIC=true
-CFG_MAILCOW_WHITELIST=false
-CFG_MAILCOW_HEALTHCHECK=true
-CFG_MAILCOW_AUTHELIA=false
-CFG_MAILCOW_HEADSCALE=false
-CFG_MAILCOW_PORTS=8022,4432,25,110,143,465,587,993,995,4190
-CFG_MAILCOW_OPEN_PORTS=8022/tcp,4432/tcp,25/tcp,110/tcp,143/tcp,465/tcp,587/tcp,993/tcp,995/tcp,4190/tcp
-# Application metadata
-CFG_MAILCOW_CATEGORY="Communication & Collaboration Tools"
-CFG_MAILCOW_TITLE="Mailcow"
-CFG_MAILCOW_DESCRIPTION="Mail Server"
-CFG_MAILCOW_LONG_DESCRIPTION="Mailcow is a comprehensive mail server suite that provides a complete email solution with webmail, antispam, and antivirus protection"
-CFG_MAILCOW_URL="https://github.com/mailcow/mailcow-dockerized"
-CFG_MAILCOW_ACTIONS="configure|install|restart|shutdown|uninstall"
-CFG_MAILCOW_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/mailcow/mailcow.sh b/scripts/unused/OLD_CONTAINERS/mailcow/mailcow.sh
deleted file mode 100755
index e78cbfd..0000000
--- a/scripts/unused/OLD_CONTAINERS/mailcow/mailcow.sh
+++ /dev/null
@@ -1,214 +0,0 @@
-#!/bin/bash
-
-# Category : Communication & Collaboration Tools
-# Description : Mailcow - Mail Server *UNFINISHED* (c/u/s/r/i):
-
-installMailcow()
-{
- local config_variables="$1"
-
- if [[ "$mailcow" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent mailcow;
- local app_name=$CFG_MAILCOW_APP_NAME
- local easy_setup=$CFG_MAILCOW_EASY_SETUP
- initializeAppVariables $app_name;
- fi
-
- if [[ "$mailcow" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$mailcow" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$mailcow" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$mailcow" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$mailcow" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Checking if $app_name can be installed."
- echo ""
-
- dockerCheckAllowedInstall "$app_name"
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Pulling Mailcow GitHub repo into the $containers_dir$app_name folder"
- echo ""
-
- mailcowSetupGit()
- {
- # Define the paths
- local mailcow_source_dir="$containers_dir$app_name" # Directory with existing content
- local mailcow_backup_dir="/tmp/mailcow_backup" # Temporary backup directory
- # Create a backup of the existing content
- if [ -d "$mailcow_source_dir" ]; then
- result=$(sudo mv "$mailcow_source_dir" "$mailcow_backup_dir")
- checkSuccess "Backup of existing content created"
- fi
- # Clone the Git repository
- local result=$(sudo rm -rf "$mailcow_source_dir")
- checkSuccess "Deleting mailcow directory git."
- local result=$(sudo -u $docker_install_user git clone https://github.com/mailcow/mailcow-dockerized "$mailcow_source_dir" && sudo -u $docker_install_user git config --global --add safe.directory $containers_dir$app_name)
- checkSuccess "Cloning Mailcow Dockerized GitHub repo"
- # Restore the backup content
- if [ -d "$mailcow_backup_dir" ]; then
- result=$(sudo rsync -a "$mailcow_backup_dir/" "$mailcow_source_dir/")
- checkSuccess "Restored existing content from backup"
- local result=$(sudo rm -rf "$mailcow_backup_dir")
- checkSuccess "Deleting backup directory."
- fi
- }
-
- if [ -f "$containers_dir$app_name/mailcow.conf" ]; then
- while true; do
- echo ""
- isNotice "Mailcow install already found."
- echo ""
- isQuestion "Would you like to reinstall $app_name? *THIS WILL WIPE ALL DATA* (y/n): "
- read -p "" reinstall_choice
- if [[ -n "$reinstall_choice" ]]; then
- break
- fi
- isNotice "Please provide a valid input."
- done
- if [[ "$reinstall_choice" == [yY] ]]; then
- mailcowSetupGit;
- fi
- else
- mailcowSetupGit;
- fi
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Pulling a $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- local result=$(cd $containers_dir$app_name && sudo -u $docker_install_user ./generate_config.sh)
- checkSuccess "Running Mailcow config generation script"
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running configuration edits to mailserver.conf"
- echo ""
-
- if [ -e "$containers_dir$app_name/mailcow.conf" ]; then
- local result=$(sudo sed -i 's/HTTP_PORT=80/HTTP_PORT='$usedport1'/' $containers_dir$app_name/mailcow.conf)
- checkSuccess "Updating the mailserver.conf to custom http port"
-
- local result=$(sudo sed -i 's/HTTPS_PORT=443/HTTPS_PORT='$usedport2'/' $containers_dir$app_name/mailcow.conf)
- checkSuccess "Updating the mailserver.conf to custom https port"
-
- while true; do
- isQuestion "Would you like to disable Lets Encrypt? *RECOMMENDED* (y/n): "
- read -p "" lets_encrypt_choice
- if [[ -n "$lets_encrypt_choice" ]]; then
- break
- fi
- isNotice "Please provide a valid input."
- done
- if [[ "$lets_encrypt_choice" == [yY] ]]; then
- local result=$(sudo sed -i 's/SKIP_LETS_ENCRYPT=n/SKIP_LETS_ENCRYPT=y/' $containers_dir$app_name/mailcow.conf)
- checkSuccess "Updating the mailserver.conf to disable SSL install"
- fi
-
- while true; do
- isQuestion "Would you like to disable ClamD Antivirus? *Resource Reduction* (y/n): "
- read -p "" clamd_antivirus_choice
- if [[ -n "$clamd_antivirus_choice" ]]; then
- break
- fi
- isNotice "Please provide a valid input."
- done
- if [[ "$clamd_antivirus_choice" == [yY] ]]; then
- local result=$(sudo sed -i 's/SKIP_CLAMD=n/SKIP_CLAMD=y/' $containers_dir$app_name/mailcow.conf)
- checkSuccess "Updating the mailserver.conf to disable ClamD Antivirus"
- fi
- else
- isError "The file $mailcow_conf_file does not exist. Config generation has failed, please reinstall mailcow and try again."
- fi
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your $app_name service using any of the options below : "
- echo ""
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- mailcow=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/mailcow/mailcow.svg b/scripts/unused/OLD_CONTAINERS/mailcow/mailcow.svg
deleted file mode 100755
index 96f4fd7..0000000
--- a/scripts/unused/OLD_CONTAINERS/mailcow/mailcow.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/scripts/unused/OLD_CONTAINERS/mailcow/resources/caddy-to-mailcow-ssl.sh b/scripts/unused/OLD_CONTAINERS/mailcow/resources/caddy-to-mailcow-ssl.sh
deleted file mode 100755
index 1dad0d0..0000000
--- a/scripts/unused/OLD_CONTAINERS/mailcow/resources/caddy-to-mailcow-ssl.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-MD5SUM_CURRENT_CERT=($(md5sum /docker/mailcow/data/assets/ssl/cert.pem))
-MD5SUM_NEW_CERT=($(md5sum /docker/caddy/caddy_data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/DOMAINNAMEHERE/DOMAINNAMEHERE.crt))
-
-if [ $MD5SUM_CURRENT_CERT != $MD5SUM_NEW_CERT ]; then
- cp /docker/caddy/caddy_data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/DOMAINNAMEHERE/DOMAINNAMEHERE.crt /docker/mailcow/data/assets/ssl/cert.pem
- cp /docker/caddy/caddy_data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/DOMAINNAMEHERE/DOMAINNAMEHERE.key /docker/mailcow/data/assets/ssl/key.pem
- postfix_c=$(docker ps -qaf name=postfix-mailcow)
- dovecot_c=$(docker ps -qaf name=dovecot-mailcow)
- nginx_c=$(docker ps -qaf name=nginx-mailcow)
- docker restart ${postfix_c} ${dovecot_c} ${nginx_c}
-
-else
- echo "Certs not copied from Caddy (Not needed)"
-fi
\ No newline at end of file
diff --git a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost.config b/scripts/unused/OLD_CONTAINERS/mattermost/mattermost.config
deleted file mode 100755
index 634e197..0000000
--- a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost.config
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_MATTERMOST_APP_NAME=mattermost
-CFG_MATTERMOST_BACKUP=true
-CFG_MATTERMOST_COMPOSE_FILE=default
-CFG_MATTERMOST_HOST_NAME=project
-CFG_MATTERMOST_DOMAIN=1
-CFG_MATTERMOST_PUBLIC=true
-CFG_MATTERMOST_WHITELIST=false
-CFG_MATTERMOST_HEALTHCHECK=true
-CFG_MATTERMOST_AUTHELIA=false
-CFG_MATTERMOST_HEADSCALE=false
-CFG_MATTERMOST_PORTS=8011,4431
-# Application metadata
-CFG_MATTERMOST_CATEGORY="Communication & Collaboration Tools"
-CFG_MATTERMOST_TITLE="Mattermost"
-CFG_MATTERMOST_DESCRIPTION="Team Communication"
-CFG_MATTERMOST_LONG_DESCRIPTION="Mattermost is an open source, self-hosted online chat service that functions as an internal chat for organizations"
-CFG_MATTERMOST_URL="https://github.com/mattermost/mattermost-server"
-CFG_MATTERMOST_ACTIONS="configure|install|restart|shutdown|uninstall|tools"
-CFG_MATTERMOST_ACTIONS="configure|install|restart|shutdown|uninstall|tools"
-CFG_MATTERMOST_ACTIONS="configure|install|restart|shutdown|uninstall|tools"
diff --git a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost.sh b/scripts/unused/OLD_CONTAINERS/mattermost/mattermost.sh
deleted file mode 100755
index ec702fa..0000000
--- a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost.sh
+++ /dev/null
@@ -1,255 +0,0 @@
-#!/bin/bash
-
-# Category : Communication & Collaboration Tools
-# Description : Mattermost - Team Communication (c/u/s/r/i/t):
-
-installMattermost()
-{
- local config_variables="$1"
-
- if [[ "$mattermost" == *[cCtTuUsSrRiI]* ]]; then
- local DCN=docker-compose.nginx.yml
- local DCWN=docker-compose.without-nginx.yml
- dockerConfigSetupToContainer silent mattermost;
- local app_name=$CFG_MATTERMOST_APP_NAME
- local easy_setup=$CFG_MATTERMOST_EASY_SETUP
- initializeAppVariables $app_name;
- fi
-
- if [[ "$mattermost" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$mattermost" == *[tT]* ]]; then
- mattermostToolsMenu;
- fi
-
- if [[ "$mattermost" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$mattermost" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$mattermost" == *[rR]* ]]; then
- status=$(dockerCheckAppInstalled "traefik" "docker")
- if [ "$status" == "installed" ]; then
- dockerComposeDown "$app_name" "$DCN";
- dockerComposeDown "$app_name" "$DCWN";
- dockerComposeUp "$app_name" "$DCWN";
- fi
-
- if [ "$status" == "not_installed" ]; then
- while true; do
- isNotice "No Reverse Proxy has been found"
- isNotice "Traefik is RECOMMENDED to use before installing Mattermost"
- echo ""
- isQuestion "Are you using the Reverse Proxy that comes with Mattermost? (y/n): "
- read -rp "" acceptproxymattermost
- if [[ "$acceptproxymattermost" =~ ^[yYnN]$ ]]; then
- break
- fi
- isNotice "Please provide a valid input (y/n)."
- done
- if [[ "$MATN" == [nN] ]]; then
- dockerComposeDown "$app_name" "$DCWN";
- dockerComposeDown "$app_name" "$DCN";
- dockerComposeUp "$app_name" "$DCN";
- fi
- if [[ "$MATN" == [yY] ]]; then
- dockerComposeDown "$app_name" "$DCN";
- dockerComposeDown "$app_name" "$DCWN";
- dockerComposeUp "$app_name" "$DCWN";
- fi
- fi
- fi
-
- if [[ "$mattermost" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Pulling Mattermost GitHub repo"
- echo ""
-
- backupContainerFilesToTemp $app_name;
- local result=$(sudo rm -rf $containers_dir$app_name)
- checkSuccess "Removing $app_name install folder"
-
- local result=$(sudo -u $docker_install_user git clone https://github.com/mattermost/docker $containers_dir$app_name)
- checkSuccess "Cloning Mattermost GitHub"
- backupContainerFilesRestore $app_name;
-
- local result=$(copyFile "loud" $containers_dir$app_name/env.example $containers_dir$app_name/.env $docker_install_user)
- checkSuccess "Copying example .env file for setup"
-
- local result=$(createFolders "loud" $docker_install_user $containers_dir$app_name/volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes})
- checkSuccess "Creating folders needed for $app_name"
- if [[ $CFG_DOCKER_INSTALL_TYPE == "rootless" ]]; then
- #local docker_rootless_user_id=$(id -u "$sudo_user_name")
- #local result=$(sudo chown -R $docker_rootless_user_id:$docker_rootless_user_id $containers_dir$app_name/volumes/app/mattermost)
- #checkSuccess "Setting folder permissions for $app_name folders"
- # Issue with Rootless - https://github.com/mattermost/docker/issues/106
- local result=$(sudo chmod -R 777 /docker/containers/mattermost/volumes/app/mattermost/)
- checkSuccess "Setting folder permissions for $app_name folders"
- else
- local result=$(sudo chown -R 2000:2000 $containers_dir$app_name/volumes/app/mattermost)
- checkSuccess "Setting folder permissions for $app_name folders"
- fi
-
- local result=$(sudo sed -i "s/DOMAIN=mm.example.com/DOMAIN=$host_setup/g" $containers_dir$app_name/.env)
- checkSuccess "Updating .env file with Domain $host_setup"
-
- local result=$(sudo sed -i 's/HTTP_PORT=80/HTTP_PORT='$usedport1'/' $containers_dir$app_name/.env)
- checkSuccess "Updating .env file HTTP_PORT to $usedport1"
-
- local result=$(sudo sed -i 's/HTTPS_PORT=443/HTTPS_PORT='$usedport2'/' $containers_dir$app_name/.env)
- checkSuccess "Updating .env file HTTPS_PORT to $usedport2"
-
- configSetupFileWithData $app_name ".env";
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start Mattermost"
- echo ""
-
-mattermostAddToYMLFile()
-{
- local file_path="$1"
- sudo tee -a "$file_path" <
diff --git a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_auth.sh b/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_auth.sh
deleted file mode 100644
index 6247126..0000000
--- a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_auth.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/bash
-
-_mattermostMmctl() {
- runFileOp docker exec -i mattermost mmctl --local "$@" 2>&1
-}
-
-authAdapter_mattermost_setPassword() {
- local user="$1" password="$2"
- [[ -z "$user" ]] && { isError "Username/email is required."; return 1; }
- [[ -z "$password" ]] && password=$(generateRandomPassword)
-
- local out; out=$(_mattermostMmctl user change-password "$user" --password "$password")
- if [[ $? -ne 0 ]]; then isError "Mattermost reset failed: $out"; return 1; fi
-
- if [[ "$user" == "${CFG_MATTERMOST_ADMIN_USER:-}" ]]; then
- authPersistCfg mattermost ADMIN_PASSWORD "$password"
- fi
- isSuccessful "Mattermost password set for $user — New password: $password"
-}
-
-authAdapter_mattermost_createUser() {
- local user="$1" password="$2" email="$3" isAdmin="$4"
- [[ -z "$user" || -z "$email" ]] && { isError "Username and email are required."; return 1; }
- [[ -z "$password" ]] && password=$(generateRandomPassword)
-
- local args=(user create --username "$user" --email "$email" --password "$password")
- [[ "$isAdmin" == "true" ]] && args+=(--system-admin)
- local out; out=$(_mattermostMmctl "${args[@]}")
- if [[ $? -ne 0 ]]; then isError "Mattermost create failed: $out"; return 1; fi
-
- if [[ "$isAdmin" == "true" && -z "${CFG_MATTERMOST_ADMIN_USER:-}" ]]; then
- authPersistCfg mattermost ADMIN_USER "$user"
- authPersistCfg mattermost ADMIN_PASSWORD "$password"
- fi
- isSuccessful "Mattermost user created — User: $user — Email: $email — Password: $password"
-}
-
-authAdapter_mattermost_listUsers() {
- _mattermostMmctl user list --json 2>/dev/null \
- | jq -r '.[] | "EZ_USER\t\(.email)\t\(.username)\t\(if .roles | test("system_admin") then "admin" else "user" end)"' 2>/dev/null \
- || _mattermostMmctl user list | awk 'NF>=2 {printf "EZ_USER\t-\t%s\t-\n", $1}'
-}
-
-authAdapter_mattermost_deleteUser() {
- local user="$1"
- [[ -z "$user" ]] && { isError "Username/email is required."; return 1; }
- local out; out=$(_mattermostMmctl user delete "$user" --confirm)
- [[ $? -ne 0 ]] && { isError "Mattermost delete failed: $out"; return 1; }
- isSuccessful "Mattermost user '$user' deleted."
-}
-
-authAdapter_mattermost_setAdmin() {
- local user="$1" isAdmin="$2"
- [[ -z "$user" ]] && { isError "Username/email is required."; return 1; }
- local sub
- if [[ "$isAdmin" == "true" ]]; then sub="roles system user system_admin"; else sub="roles system user"; fi
- local out; out=$(_mattermostMmctl user $sub "$user" 2>&1)
- [[ $? -ne 0 ]] && { isError "Mattermost role change failed: $out"; return 1; }
- isSuccessful "Mattermost user '$user' admin → $isAdmin."
-}
diff --git a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_create_account.sh b/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_create_account.sh
deleted file mode 100644
index 59327aa..0000000
--- a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_create_account.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-appMattermostCreateAccount() {
- local args="$1"
- authAdapterCall mattermost createUser "$(authToolArg "$args" username)" "$(authToolArg "$args" password)" "$(authToolArg "$args" email)" "$(authToolArg "$args" admin)"
-}
diff --git a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_delete_user.sh b/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_delete_user.sh
deleted file mode 100644
index 8da6eda..0000000
--- a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_delete_user.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-appMattermostDeleteUser() {
- local args="$1"
- authAdapterCall mattermost deleteUser "$(authToolArg "$args" username)"
-}
diff --git a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_list_users.sh b/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_list_users.sh
deleted file mode 100644
index 5fab9ef..0000000
--- a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_list_users.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-appMattermostListUsers() {
- authAdapterCall mattermost listUsers
-}
diff --git a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_reset_password.sh b/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_reset_password.sh
deleted file mode 100755
index 89bfd67..0000000
--- a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_reset_password.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-appMattermostResetPassword() {
- local args="$1"
- authAdapterCall mattermost setPassword \
- "$(authToolArg "$args" username)" \
- "$(authToolArg "$args" password)"
-}
diff --git a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_set_admin.sh b/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_set_admin.sh
deleted file mode 100644
index d683305..0000000
--- a/scripts/unused/OLD_CONTAINERS/mattermost/mattermost_set_admin.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-appMattermostSetAdmin() {
- local args="$1"
- authAdapterCall mattermost setAdmin "$(authToolArg "$args" username)" "$(authToolArg "$args" admin)"
-}
diff --git a/scripts/unused/OLD_CONTAINERS/nextcloud_hpb/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/nextcloud_hpb/docker-compose.yml
deleted file mode 100755
index 94d3828..0000000
--- a/scripts/unused/OLD_CONTAINERS/nextcloud_hpb/docker-compose.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-networks:
- vpn:
- external: true
-
-services:
- nextcloud_hpb:
- image: ghcr.io/nextcloud-releases/aio-talk:latest
- container_name: nextcloud_hpb
- restart: unless-stopped
- init: true
- ports:
- - PORT1:3478/tcp
- - PORT1:3478/udp
- - PORT2:8081/tcp
- environment:
- - NC_DOMAIN=NEXTCLOUDDOMAINHERE
- - TALK_HOST=DOMAINSUBNAMEHERE
- - TURN_SECRET=SECRET1HERE
- - SIGNALING_SECRET=SECRET2HERE
- - TZ=TIMEZONEHERE
- - TALK_PORT=PORT2
- - INTERNAL_SECRET=SECRET3HERE
- - REDIS_HOST=nextcloud_hpb_redis
- - REDIS_PORT=PORT3
- volumes:
- - ./data:/data
- networks:
- vpn:
- ipv4_address: IPADDRESSHERE
- nextcloud_hpb_redis:
- image: redis:alpine
- container_name: nextcloud_hpb_redis
- restart: always
- ports:
- - "PORT3:6379"
- networks:
- vpn:
- ipv4_address: 10.100.0.137
\ No newline at end of file
diff --git a/scripts/unused/OLD_CONTAINERS/nextcloud_hpb/nextcloud_hpb.config b/scripts/unused/OLD_CONTAINERS/nextcloud_hpb/nextcloud_hpb.config
deleted file mode 100755
index 7849895..0000000
--- a/scripts/unused/OLD_CONTAINERS/nextcloud_hpb/nextcloud_hpb.config
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_NEXTCLOUD_HPB_APP_NAME=nextcloud_hpb
-CFG_NEXTCLOUD_HPB_BACKUP=true
-CFG_NEXTCLOUD_HPB_COMPOSE_FILE=default
-CFG_NEXTCLOUD_HPB_HOST_NAME=talk
-CFG_NEXTCLOUD_HPB_DOMAIN=1
-CFG_NEXTCLOUD_HPB_PUBLIC=true
-CFG_NEXTCLOUD_HPB_WHIELIST=true
-CFG_NEXTCLOUD_HPB_HEALTHCHECK=true
-CFG_NEXTCLOUD_HPB_AUTHELIA=false
-CFG_NEXTCLOUD_HPB_HEADSCALE=false
-CFG_NEXTCLOUD_HPB_PORTS=34711,8081,6380
-# Application metadata
-CFG_NEXTCLOUD_HPB_CATEGORY="Cloud Storage & File Sharing"
-CFG_NEXTCLOUD_HPB_TITLE="Nextcloud HPB"
-CFG_NEXTCLOUD_HPB_DESCRIPTION="High-Performance Backend"
-CFG_NEXTCLOUD_HPB_LONG_DESCRIPTION="Nextcloud High Performance Backend for scalable file sharing with optimized database and caching configurations"
-CFG_NEXTCLOUD_HPB_URL="https://github.com/nextcloud/spaces"
-CFG_NEXTCLOUD_HPB_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/nextcloud_hpb/nextcloud_hpb.sh b/scripts/unused/OLD_CONTAINERS/nextcloud_hpb/nextcloud_hpb.sh
deleted file mode 100755
index 729f4ac..0000000
--- a/scripts/unused/OLD_CONTAINERS/nextcloud_hpb/nextcloud_hpb.sh
+++ /dev/null
@@ -1,157 +0,0 @@
-#!/bin/bash
-
-# Category : Cloud Storage & File Sharing
-# Description : Nextcloud HPB - High-Performance Backend (c/u/s/r/i):
-
-installNextcloud_hpb()
-{
- local config_variables="$1"
-
- if [[ "$nextcloud_hpb" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent nextcloud_hpb;
- local app_name=$CFG_NEXTCLOUD_HPB_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$nextcloud_hpb" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$nextcloud_hpb" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$nextcloud_hpb" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$nextcloud_hpb" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$nextcloud_hpb" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install Nextcloud HPD and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- local random_secret_1=$(openssl rand -hex 32)
- result=$(sudo sed -i "s|SECRET1HERE|${random_secret_1}|" "$containers_dir$app_name/docker-compose.yml")
- checkSuccess "Updating the TURN_SECRET in docker-compose.yml."
- local random_secret_2=$(openssl rand -hex 32)
- result=$(sudo sed -i "s|SECRET2HERE|${random_secret_2}|" "$containers_dir$app_name/docker-compose.yml")
- checkSuccess "Updating the SIGNALING_SECRET in docker-compose.yml."
- local random_secret_3=$(openssl rand -hex 32)
- result=$(sudo sed -i "s|SECRET3HERE|${random_secret_3}|" "$containers_dir$app_name/docker-compose.yml")
- checkSuccess "Updating the INTERNAL_SECRET in docker-compose.yml."
-
- # Ask user for nextcloud domain
- local nextcloud_domain=""
- while [[ -z "$nextcloud_domain" ]]; do
- isQuestion "Enter your Nextcloud domain e.g (nextcloud.yourdomain.com): "
- read -p "" nextcloud_domain
- if [[ -z "$nextcloud_domain" ]]; then
- echo "Please enter a valid domain."
- fi
- done
- result=$(sudo sed -i "s|NEXTCLOUDDOMAINHERE|${nextcloud_domain}|" "$containers_dir$app_name/docker-compose.yml")
- checkSuccess "Updating the NEXTCLOUD_URL in docker-compose.yml."
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your $app_name service using any of the options below : "
- echo ""
-
- # Lets output the nextcloud talk config based on the scructure below
- #echo ""
- #echo "Please add the following to your Nextcloud config.php file :"
- #echo ""
- #echo " 'talk' => ["
- #echo " 'hpb' => ["
- #echo " 'url' => 'http://$host_setup:$usedport3',"
- #echo " 'jwt_secret' => '$random_secret_1',"
- #echo " 'jwt_issuer' => '$random_secret_2',"
- #echo " 'jwt_audience' => '$random_secret_3',"
- #echo " ],"
- #echo " ],"
- #echo "";
-
- echo "";
- echo " TURN_SECRET=$random_secret_1"
- echo " SIGNALING_SECRET=$random_secret_2"
- echo " INTERNAL_SECRET=$random_secret_3"
- echo " TALK_PORT=$usedport1"
- echo "";
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- nextcloud_hpb=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/nextcloud_hpb/nextcloud_hpb.svg b/scripts/unused/OLD_CONTAINERS/nextcloud_hpb/nextcloud_hpb.svg
deleted file mode 100755
index eea50a4..0000000
--- a/scripts/unused/OLD_CONTAINERS/nextcloud_hpb/nextcloud_hpb.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/scripts/unused/OLD_CONTAINERS/nextcloud_record/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/nextcloud_record/docker-compose.yml
deleted file mode 100755
index 8fd59ca..0000000
--- a/scripts/unused/OLD_CONTAINERS/nextcloud_record/docker-compose.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-networks:
- vpn:
- external: true
-
-services:
- nextcloud_record:
- image: ghcr.io/nextcloud-releases/aio-talk-recording:latest
- container_name: nextcloud_record
- restart: always
- ports:
- - "PORT1:1234"
- environment:
- ALLOW_ALL: "true"
- HPB_DOMAIN: "HPBDOMAINHERE"
- NC_DOMAIN: "NEXTCLOUDDOMAINHERE"
- TZ: "TIMEZONEHERE"
- RECORDING_SECRET: "SECRET1HERE"
- INTERNAL_SECRET: "SECRET2HERE"
- healthcheck:
- disable: false #HEALTHCHECKHERE
- shm_size: 2147483648
- volumes:
- - ./nextcloud-talk-recordings:/var/nextcloud/data
- cap_drop:
- - NET_RAW
- networks:
- vpn:
- ipv4_address: IPADDRESSHERE
-volumes:
- nextcloud-talk-recordings:
\ No newline at end of file
diff --git a/scripts/unused/OLD_CONTAINERS/nextcloud_record/nextcloud_record.config b/scripts/unused/OLD_CONTAINERS/nextcloud_record/nextcloud_record.config
deleted file mode 100755
index e27fe4e..0000000
--- a/scripts/unused/OLD_CONTAINERS/nextcloud_record/nextcloud_record.config
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_NEXTCLOUD_RECORD_APP_NAME=nextcloud_record
-CFG_NEXTCLOUD_RECORD_BACKUP=true
-CFG_NEXTCLOUD_RECORD_COMPOSE_FILE=default
-CFG_NEXTCLOUD_RECORD_HOST_NAME=record
-CFG_NEXTCLOUD_RECORD_DOMAIN=1
-CFG_NEXTCLOUD_RECORD_PUBLIC=true
-CFG_NEXTCLOUD_RECORD_WHIELIST=true
-CFG_NEXTCLOUD_RECORD_HEALTHCHECK=true
-CFG_NEXTCLOUD_RECORD_AUTHELIA=false
-CFG_NEXTCLOUD_RECORD_HEADSCALE=false
-CFG_NEXTCLOUD_RECORD_PORTS=1234
-
-# Application metadata
-CFG_NEXTCLOUD_RECORD_CATEGORY="Cloud Storage & File Sharing"
-CFG_NEXTCLOUD_RECORD_TITLE="Nextcloud Record"
-CFG_NEXTCLOUD_RECORD_DESCRIPTION="Talk Recording Backend"
-CFG_NEXTCLOUD_RECORD_LONG_DESCRIPTION="Nextcloud Record is a comprehensive recording and screen capture solution integrated with Nextcloud for multimedia workflows"
-CFG_NEXTCLOUD_RECORD_URL="https://github.com/nextcloud/talk-recording"
-CFG_NEXTCLOUD_RECORD_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/nextcloud_record/nextcloud_record.sh b/scripts/unused/OLD_CONTAINERS/nextcloud_record/nextcloud_record.sh
deleted file mode 100755
index f2af69b..0000000
--- a/scripts/unused/OLD_CONTAINERS/nextcloud_record/nextcloud_record.sh
+++ /dev/null
@@ -1,148 +0,0 @@
-#!/bin/bash
-
-# Category : Cloud Storage & File Sharing
-# Description : Nextcloud Record - Talk Recording Backend (c/u/s/r/i):
-
-installNextcloud_record()
-{
- local config_variables="$1"
-
- if [[ "$nextcloud_record" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent nextcloud_record;
- local app_name=$CFG_NEXTCLOUD_RECORD_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$nextcloud_record" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$nextcloud_record" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$nextcloud_record" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$nextcloud_record" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$nextcloud_record" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folders and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- local random_secret_1=$(openssl rand -hex 32)
- result=$(sudo sed -i "s|SECRET1HERE|${random_secret_1}|" "$containers_dir$app_name/docker-compose.yml")
- checkSuccess "Updating the RECORDING_SECRET in docker-compose.yml."
- local random_secret_2=$(openssl rand -hex 32)
- result=$(sudo sed -i "s|SECRET2HERE|${random_secret_2}|" "$containers_dir$app_name/docker-compose.yml")
- checkSuccess "Updating the INTERNAL_SECRET in docker-compose.yml."
-
- local nextcloud_domain=""
- while [[ -z "$nextcloud_domain" ]]; do
- isQuestion "Enter your Nextcloud domain e.g (nextcloud.yourdomain.com): "
- read -p "" nextcloud_domain
- if [[ -z "$nextcloud_domain" ]]; then
- echo "Please enter a valid domain."
- fi
- done
- result=$(sudo sed -i "s|NEXTCLOUDDOMAINHERE|${nextcloud_domain}|" "$containers_dir$app_name/docker-compose.yml")
- checkSuccess "Updating the NEXTCLOUD_URL in docker-compose.yml."
-
- local hpb_domain=""
- while [[ -z "$hpb_domain" ]]; do
- isQuestion "Enter your High-Performance Backend domain e.g (talk.yourdomain.com): "
- read -p "" hpb_domain
- if [[ -z "$hpb_domain" ]]; then
- echo "Please enter a valid domain."
- fi
- done
- result=$(sudo sed -i "s|HPBDOMAINHERE|${hpb_domain}|" "$containers_dir$app_name/docker-compose.yml")
- checkSuccess "Updating the HPB_DOMAIN in docker-compose.yml."
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your $app_name service using any of the options below : "
- echo ""
-
- echo "";
- echo " RECORDING_SECRET=$random_secret_1"
- echo " INTERNAL_SECRET=$random_secret_2"
- echo "";
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- nextcloud_record=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/nextcloud_record/nextcloud_record.svg b/scripts/unused/OLD_CONTAINERS/nextcloud_record/nextcloud_record.svg
deleted file mode 100755
index eea50a4..0000000
--- a/scripts/unused/OLD_CONTAINERS/nextcloud_record/nextcloud_record.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/scripts/unused/OLD_CONTAINERS/nginx/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/nginx/docker-compose.yml
deleted file mode 100755
index bcf1441..0000000
--- a/scripts/unused/OLD_CONTAINERS/nginx/docker-compose.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-networks:
- DOCKERNETWORK_DATA: #LIBREPORTAL|DOCKERNETWORK_TAG|DOCKERNETWORK_DATA
- external: true
-
-services:
- nginx-service: #LIBREPORTAL|SERVICE_TAG_1|nginx-service
- container_name: nginx-service
- image: nginx
- restart: unless-stopped
- hostname: nginx
- # GLUETUN_OFF_BEGIN
- ports:
- - "PORTS_DATA_1" #LIBREPORTAL|PORTS_TAG_1|PORTS_DATA_1
- # GLUETUN_OFF_END
- labels:
- libreportal.category: "CATEGORY_DATA" #LIBREPORTAL|CATEGORY_TAG|CATEGORY_DATA
- libreportal.title: "TITLE_DATA" #LIBREPORTAL|TITLE_TAG|TITLE_DATA
- traefik.enable: TRAEFIK_ENABLE_DATA #LIBREPORTAL|TRAEFIK_ENABLE_TAG|TRAEFIK_ENABLE_DATA
- traefik.http.routers.nginx-service.entrypoints: web,websecure
- traefik.http.routers.nginx-service.rule: Host(`DOMAINSUBNAME_DATA`) #LIBREPORTAL|DOMAINSUBNAME_TAG|DOMAINSUBNAME_DATA
- traefik.http.routers.nginx-service.tls: true
- traefik.http.routers.nginx-service.tls.certresolver: production
- traefik.http.services.nginx-service.loadbalancer.server.port: PORT_INTERNAL_DATA_1 #LIBREPORTAL|PORT_INTERNAL_TAG_1|PORT_INTERNAL_DATA_1
- traefik.http.routers.nginx-service.middlewares: MIDDLEWARE_DATA #LIBREPORTAL|MIDDLEWARE_TAG|MIDDLEWARE_DATA
- healthcheck:
- disable: HEALTHCHECK_DATA #LIBREPORTAL|HEALTHCHECK_TAG|HEALTHCHECK_DATA
- volumes:
- - SOCKET_DATA #LIBREPORTAL|SOCKET_TAG|SOCKET_DATA
- - "./html:/usr/share/nginx/html"
- # GLUETUN_OFF_BEGIN
- networks:
- DOCKERNETWORK_DATA: #LIBREPORTAL|DOCKERNETWORK_TAG|DOCKERNETWORK_DATA
- ipv4_address: IP_DATA_1 #LIBREPORTAL|IP_TAG_1|IP_DATA_1
- # GLUETUN_OFF_END
- # GLUETUN_ON_BEGIN
- # network_mode: "container:gluetun-service"
- # GLUETUN_ON_END
diff --git a/scripts/unused/OLD_CONTAINERS/nginx/nginx.config b/scripts/unused/OLD_CONTAINERS/nginx/nginx.config
deleted file mode 100755
index 123704e..0000000
--- a/scripts/unused/OLD_CONTAINERS/nginx/nginx.config
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# =============================================================================
-# GENERAL CONFIGURATION
-# =============================================================================
-# APP_NAME = name of application for use in scripts
-# COMPOSE_FILE = default for no app_name in docker compose file name, app if there is
-# BACKUP = if true, include this application in backup operations
-# HEALTHCHECK = if true, default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-#
-CFG_NGINX_APP_NAME=nginx
-CFG_NGINX_BACKUP=false
-CFG_NGINX_COMPOSE_FILE=default
-CFG_NGINX_HEALTHCHECK=true
-CFG_NGINX_AUTHELIA=false
-CFG_NGINX_HEADSCALE=false
-#
-# =============================================================================
-# METADATA
-# =============================================================================
-# CATEGORY = application category for grouping
-# TITLE = display name for the application
-# DESCRIPTION = short description of the application
-# LONG_DESCRIPTION = detailed description of the application
-# URL = source repository or documentation URL
-# ACTIONS = available actions for this application
-#
-CFG_NGINX_CATEGORY="web"
-CFG_NGINX_TITLE="Nginx"
-CFG_NGINX_DESCRIPTION="Web Server"
-CFG_NGINX_LONG_DESCRIPTION="Nginx is a high-performance web server and reverse proxy that can also be used as a load balancer, HTTP cache, and mail proxy"
-CFG_NGINX_URL="https://github.com/nginx/nginx"
-CFG_NGINX_ACTIONS="configure|install|restart|shutdown|uninstall"
-#
-# =============================================================================
-# NETWORK CONFIGURATION
-# =============================================================================
-# DOMAIN = number of domain from the general config, useful when using multiple domains
-# HOST_NAME = subdomain name e.g test is the name for test.website.com
-# WHITELIST = if true only allow whitelisted ips on traefik, if false allow all
-# PUBLIC = if true, app is publicly accessible, if false, only accessible on local network
-#
-CFG_NGINX_DOMAIN=1
-CFG_NGINX_WHITELIST=false
-CFG_NGINX_HOST_NAME=web
-CFG_NGINX_NETWORK=default
-CFG_NGINX_PUBLIC=true
-#
-# =============================================================================
-# PORT CONFIGURATION
-# =============================================================================
-# PORT_ = port configuration: app|name|external:internal|access|protocol|login|traefik|webui|description
-# - app: application name
-# - name: service identifier (webui, dns, ssh, etc.)
-# - external:internal: port mapping (external can be 'random' for auto-allocation)
-# - access: 'public' (internet accessible), 'private' (local network only), 'disabled' (not running)
-# - protocol: 'tcp' or 'udp'
-# - login: if true, this port requires basic-auth via Traefik (only meaningful when traefik=true)
-# - traefik: if true, Traefik handles this port (reverse proxy)
-# - webui: if true, this port serves the main web interface
-# - description: human-readable description of the service
-#
-CFG_NGINX_PORT_1="nginx-service|webui|random:80|private|tcp|false|true|true|Web Interface|"
diff --git a/scripts/unused/OLD_CONTAINERS/nginx/nginx.sh b/scripts/unused/OLD_CONTAINERS/nginx/nginx.sh
deleted file mode 100755
index 73ffc98..0000000
--- a/scripts/unused/OLD_CONTAINERS/nginx/nginx.sh
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/bin/bash
-
-# Category : Web Servers & Hosting
-# Description : Nginx - Web Server (c/u/s/r/i):
-
-installNginx()
-{
- local config_variables="$1"
-
- if [[ "$nginx" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent nginx;
- local app_name=$CFG_NGINX_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$nginx" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$nginx" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$nginx" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$nginx" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$nginx" == *[iI]* ]]; then
- isHeader "Installing $app_name"
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up database records"
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your $app_name service using any of the options below : "
- echo ""
- echo " NOTE - The password to login in defined in the yml install file that was installed"
- echo ""
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- nginx=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/nginx/nginx.svg b/scripts/unused/OLD_CONTAINERS/nginx/nginx.svg
deleted file mode 100755
index d81b968..0000000
--- a/scripts/unused/OLD_CONTAINERS/nginx/nginx.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/scripts/unused/OLD_CONTAINERS/nginx/resources/index.html b/scripts/unused/OLD_CONTAINERS/nginx/resources/index.html
deleted file mode 100755
index 2905cdb..0000000
--- a/scripts/unused/OLD_CONTAINERS/nginx/resources/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- NGINX Webserver Default
-
-
-
-
NGINX Webserver Default
-
-
-
diff --git a/scripts/unused/OLD_CONTAINERS/olivetin/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/olivetin/docker-compose.yml
deleted file mode 100755
index 1c8a971..0000000
--- a/scripts/unused/OLD_CONTAINERS/olivetin/docker-compose.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-networks:
- vpn:
- external: true
- name: vpn
-
-services:
- olivetin:
- container_name: olivetin
- image: jamesread/olivetin:latest-3k
- user: root
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock:ro #SOCKETHERE
- - ./config:/config # replace host path or volume as needed
- - ./ssh:/home/olivetin/.ssh
- ports:
- - "PORT1:1337"
- restart: unless-stopped
- #labels:
- #traefik.enable: true
- #traefik.http.routers.olivetin.entrypoints: web,websecure
- #traefik.http.routers.olivetin.rule: Host(`DOMAINSUBNAMEHERE`)
- #traefik.http.routers.olivetin.tls: true
- #traefik.http.routers.olivetin.tls.certresolver: production
- #traefik.http.services.olivetin.loadbalancer.server.port: PORT1
- #traefik.http.routers.olivetin.middlewares:
- networks:
- vpn:
- ipv4_address: IPADDRESSHERE
diff --git a/scripts/unused/OLD_CONTAINERS/olivetin/olivetin.config b/scripts/unused/OLD_CONTAINERS/olivetin/olivetin.config
deleted file mode 100755
index fa413d3..0000000
--- a/scripts/unused/OLD_CONTAINERS/olivetin/olivetin.config
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_OLIVETIN_APP_NAME=olivetin
-CFG_OLIVETIN_BACKUP=true
-CFG_OLIVETIN_COMPOSE_FILE=default
-CFG_OLIVETIN_HOST_NAME=olivetin
-CFG_OLIVETIN_DOMAIN=1
-CFG_OLIVETIN_PUBLIC=false
-CFG_OLIVETIN_WHIELIST=true
-CFG_OLIVETIN_HEALTHCHECK=true
-CFG_OLIVETIN_AUTHELIA=false
-CFG_OLIVETIN_HEADSCALE=false
-CFG_OLIVETIN_PORTS=1337
-
-# Application metadata
-CFG_OLIVETIN_CATEGORY="Miscellaneous"
-CFG_OLIVETIN_TITLE="Olivetin"
-CFG_OLIVETIN_DESCRIPTION="Web Interface for Linux"
-CFG_OLIVETIN_LONG_DESCRIPTION="Web-based graphical user interface for Linux commands that provides a simple way to manage server operations"
-CFG_OLIVETIN_URL="https://github.com/OliveTin/OliveTin"
-CFG_OLIVETIN_ACTIONS="configure|install|restart|shutdown|uninstall"
-CFG_OLIVETIN_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/olivetin/olivetin.sh b/scripts/unused/OLD_CONTAINERS/olivetin/olivetin.sh
deleted file mode 100755
index ddf3af4..0000000
--- a/scripts/unused/OLD_CONTAINERS/olivetin/olivetin.sh
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/bin/bash
-
-# Category : system
-# Description : Olivetin - Web Interface for Linux (c/u/s/r/i):
-
-installOlivetin()
-{
- if [[ "$olivetin" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent olivetin;
- local app_name=$CFG_OLIVETIN_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$olivetin" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$olivetin" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$olivetin" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$olivetin" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$olivetin" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install";
- isSuccessful "Install Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up $app_name config.yaml"
- echo ""
-
- result=$(rm -rf "$containers_dir$app_name/config/config.yaml")
- checkSuccess "Removing old config.yaml file"
-
- local result=$(copyResource "$app_name" "config.yaml" "config")
- checkSuccess "Copying the config.yaml for $app_name"
-
- configSetupFileWithData $app_name "/config/config.yaml";
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up LibrePortal SSH Connectivity"
- echo ""
-
- if [[ $CFG_SSHKEY_LIBREPORTAL_ENABLED == "true" ]]; then
- local ed_ssh_file_path=$(find $ssh_dir/public -name "*libreportal.pub" -print -quit)
-
- local result=$(copyFile "loud" "$ed_ssh_file_path" "$containers_dir$app_name/ssh" "$docker_install_user")
- checkSuccess "Copying LibrePortal SSH Key to $app_name"
-
- dockerCommandRun "docker exec $app_name mkdir /opt/OliveTinSshKeys"
- checkSuccess "Creating SSK Key folder in docker container for $app_name"
- else
- dockerCommandRun "docker exec $app_name dnf install -y sshpass"
- checkSuccess "Installing SSHPass as not using SSH Keys for $app_name"
-
- # Access to CLI
- updateConfigOption "CFG_DOCKER_MANAGER_ENABLED" "true"
- installDockerManagerUser;
- fi
-
- dockerComposeRestart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your $app_name service using any of the options below : "
- echo ""
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- olivetin=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/olivetin/olivetin.svg b/scripts/unused/OLD_CONTAINERS/olivetin/olivetin.svg
deleted file mode 100755
index 1fc4f5e..0000000
--- a/scripts/unused/OLD_CONTAINERS/olivetin/olivetin.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/scripts/unused/OLD_CONTAINERS/olivetin/resources/config.yaml b/scripts/unused/OLD_CONTAINERS/olivetin/resources/config.yaml
deleted file mode 100755
index c10f990..0000000
--- a/scripts/unused/OLD_CONTAINERS/olivetin/resources/config.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-# There is a built-in micro proxy that will host the webui and REST API all on
-# one port (this is called the "Single HTTP Frontend") and means you just need
-# one open port in the container/firewalls/etc.
-#
-# Listen on all addresses available, port 1337
-listenAddressSingleHTTPFrontend: 0.0.0.0:1337
-
-# Choose from INFO (default), WARN and DEBUG
-# Docs: https://docs.olivetin.app/advanced_configuration/logs.html
-logLevel: "INFO"
-
-# Security - Authentication
-
-# This setting effectively enables or disables guests.
-# If set to "true", then users will have to login to do anything.
-authRequireGuestsToLogin: false
-authLocalUsers:
- enabled: true
-# users:
-# - username: alice
-# usergroup: admins
-# password: "$argon2id$v=19$m=65536,t=4,p=2$puyxA0s555TSFx7hnFLCXA$PyhLGpZtvpMMvc2DgMWkM8OJMKO55euwV5gm//1iwx4"
-
-# Security - Access Control
-
-# Policies affect the whole app (eg: ability to view the log list).
-# Docs: https://docs.olivetin.app/security/acl.html
-defaultPolicy:
- showDiagnostics: true
- showLogList: true
-
-# Permissions affect actions (eg: ability to view a specific log).
-# Docs: https://docs.olivetin.app/security/acl.html
-defaultPermissions:
- view: true
- exec: true
- logs: true
-
-# OliveTin uses access control lists to match up policy and permissions to users.
-# Docs: https://docs.olivetin.app/security/acl.html
-accessControlLists:
- - name: admin_acl
- matchUsergroups: ["admins"]
- policy:
- showDiagnostics: true
- permissions:
- view: true
- exec: true
- logs: true
-
-# Actions are commands that are executed by OliveTin, and normally show up as
-# buttons on the WebUI.
-#
-# Docs: https://docs.olivetin.app/action_execution/create_your_first.html
-actions:
- # This is the most simple action, it just runs the command and flashes the
- # button to indicate status.
- #
- # If you are running OliveTin in a container remember to pass through the
- # docker socket! https://docs.olivetin.app/solutions/container-control-panel/index.html
- - title: Ping the Internet
- shell: ping -c 3 1.1.1.1
- icon: ping
- popupOnStart: execution-dialog-stdout-only
diff --git a/scripts/unused/OLD_CONTAINERS/piped/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/piped/docker-compose.yml
deleted file mode 100755
index a6a703e..0000000
--- a/scripts/unused/OLD_CONTAINERS/piped/docker-compose.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-networks:
- vpn:
- external: true
-
-services:
- pipedfrontend:
- container_name: piped-frontend
- image: 1337kavin/piped-frontend:latest
- restart: unless-stopped
- depends_on:
- - piped
- entrypoint: ash -c 'sed -i s/pipedapi.kavin.rocks/BACKEND_HOSTNAME/g /usr/share/nginx/html/assets/* && /docker-entrypoint.sh && piped-nginx -g "daemon off;"'
- networks:
- vpn:
- ipv4_address: 10.100.0.126
-
- piped-proxy:
- container_name: piped-proxy
- image: 1337kavin/piped-proxy:latest
- restart: unless-stopped
- environment:
- - UDS=1
- volumes:
- - ./piped-proxy:/app/socket
- networks:
- vpn:
- ipv4_address: 10.100.0.127
-
- piped:
- container_name: piped-backend
- image: 1337kavin/piped:latest
- restart: unless-stopped
- volumes:
- - ./config/config.properties:/app/config.properties:ro
- depends_on:
- - piped-postgres
- networks:
- vpn:
- ipv4_address: 10.100.0.128
-
- piped-nginx:
- container_name: piped-nginx
- image: nginx:mainline-alpine
- restart: unless-stopped
- ports:
- - "PORT1:80"
- volumes:
- - ./config/nginx.conf:/etc/nginx/nginx.conf:ro
- - ./config/pipedapi.conf:/etc/nginx/conf.d/pipedapi.conf:ro
- - ./config/pipedproxy.conf:/etc/nginx/conf.d/pipedproxy.conf:ro
- - ./config/pipedfrontend.conf:/etc/nginx/conf.d/pipedfrontend.conf:ro
- - ./config/ytproxy.conf:/etc/nginx/snippets/ytproxy.conf:ro
- - ./piped-proxy:/var/run/ytproxy
- depends_on:
- - piped
- - piped-proxy
- - pipedfrontend
- #labels:
- #traefik.enable: true
- #traefik.http.routers.piped.entrypoints: web,websecure
- #traefik.http.routers.piped.rule: Host(`FRONTEND_HOSTNAME`, `BACKEND_HOSTNAME`, `PROXY_HOSTNAME`)"
- #traefik.http.routers.piped.service: piped
- #traefik.http.routers.piped.tls: true
- #traefik.http.routers.piped.tls.certresolver: production
- #traefik.http.services.piped.loadbalancer.server.port: PORT1
- #traefik.http.routers.piped.middlewares:
- healthcheck:
- disable: false #HEALTHCHECKHERE
- networks:
- vpn:
- ipv4_address: IPADDRESSHERE
-
- piped-postgres:
- container_name: piped-postgres
- image: postgres:15
- restart: unless-stopped
- volumes:
- - ./data/db:/var/lib/piped-postgresql/data
- environment:
- - postgres_DB=piped
- - postgres_USER=piped
- - postgres_PASSWORD=RANDOMIZEDPASSWORD1
- networks:
- vpn:
- ipv4_address: 10.100.0.129
diff --git a/scripts/unused/OLD_CONTAINERS/piped/piped.config b/scripts/unused/OLD_CONTAINERS/piped/piped.config
deleted file mode 100755
index 232e322..0000000
--- a/scripts/unused/OLD_CONTAINERS/piped/piped.config
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_PIPED_APP_NAME=piped
-CFG_PIPED_BACKUP=false
-CFG_PIPED_COMPOSE_FILE=default
-CFG_PIPED_HOST_NAME=piped
-CFG_PIPED_DOMAIN=1
-CFG_PIPED_PUBLIC=true
-CFG_PIPED_WHITELIST=false
-CFG_PIPED_HEALTHCHECK=true
-CFG_PIPED_AUTHELIA=false
-CFG_PIPED_HEADSCALE=false
-CFG_PIPED_PORTS=8025
-# Application metadata
-CFG_PIPED_CATEGORY="Media & Streaming"
-CFG_PIPED_TITLE="Piped"
-CFG_PIPED_DESCRIPTION="Privacy-focused YouTube Proxy"
-CFG_PIPED_LONG_DESCRIPTION="Piped is an alternative privacy-friendly YouTube frontend which is efficient and extensible with a focus on user experience"
-CFG_PIPED_URL="https://github.com/TeamPiped/Piped"
-CFG_PIPED_ACTIONS="configure|install|restart|shutdown|uninstall"
-CFG_PIPED_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/piped/piped.sh b/scripts/unused/OLD_CONTAINERS/piped/piped.sh
deleted file mode 100755
index a1db619..0000000
--- a/scripts/unused/OLD_CONTAINERS/piped/piped.sh
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/bin/bash
-
-# Category : Media & Streaming
-# Description : Piped - Privacy-focused YouTube Proxy (c/u/s/r/i/t):
-
-installPiped()
-{
- local config_variables="$1"
-
- if [[ "$piped" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent piped;
- local app_name=$CFG_PIPED_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$piped" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$piped" == *[tT]* ]]; then
- pipedToolsMenu;
- fi
-
- if [[ "$piped" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$piped" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$piped" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$piped" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your $app_name service using any of the options below : "
- echo ""
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- piped=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/piped/piped.svg b/scripts/unused/OLD_CONTAINERS/piped/piped.svg
deleted file mode 100755
index 190f0f9..0000000
--- a/scripts/unused/OLD_CONTAINERS/piped/piped.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/scripts/unused/OLD_CONTAINERS/portainer/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/portainer/docker-compose.yml
deleted file mode 100755
index f5a11ac..0000000
--- a/scripts/unused/OLD_CONTAINERS/portainer/docker-compose.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-networks:
- DOCKERNETWORK_DATA: #LIBREPORTAL|DOCKERNETWORK_TAG|DOCKERNETWORK_DATA
- external: true
-
-services:
- portainer-service: #LIBREPORTAL|SERVICE_TAG_1|portainer-service
- container_name: portainer-service
- image: portainer/portainer-ce
- restart: unless-stopped
- hostname: portainer
- # GLUETUN_OFF_BEGIN
- ports:
- - "PORTS_DATA_1" #LIBREPORTAL|PORTS_TAG_1|PORTS_DATA_1
- - "PORTS_DATA_2" #LIBREPORTAL|PORTS_TAG_2|PORTS_DATA_2
- # GLUETUN_OFF_END
- labels:
- libreportal.category: "CATEGORY_DATA" #LIBREPORTAL|CATEGORY_TAG|CATEGORY_DATA
- libreportal.title: "TITLE_DATA" #LIBREPORTAL|TITLE_TAG|TITLE_DATA
- traefik.enable: TRAEFIK_ENABLE_DATA #LIBREPORTAL|TRAEFIK_ENABLE_TAG|TRAEFIK_ENABLE_DATA
- traefik.http.routers.portainer-service.entrypoints: web,websecure
- traefik.http.routers.portainer-service.rule: Host(`DOMAINSUBNAME_DATA`) #LIBREPORTAL|DOMAINSUBNAME_TAG|DOMAINSUBNAME_DATA
- traefik.http.routers.portainer-service.tls: true
- traefik.http.routers.portainer-service.tls.certresolver: production
- traefik.http.services.portainer-service.loadbalancer.server.port: PORT_INTERNAL_DATA_1 #LIBREPORTAL|PORT_INTERNAL_TAG_1|PORT_INTERNAL_DATA_1
- traefik.http.routers.portainer-service.middlewares: MIDDLEWARE_DATA #LIBREPORTAL|MIDDLEWARE_TAG|MIDDLEWARE_DATA
- healthcheck:
- disable: HEALTHCHECK_DATA #LIBREPORTAL|HEALTHCHECK_TAG|HEALTHCHECK_DATA
- volumes:
- - SOCKET_DATA #LIBREPORTAL|SOCKET_TAG|SOCKET_DATA
- - "./portainer-data/:/data"
- # GLUETUN_OFF_BEGIN
- networks:
- DOCKERNETWORK_DATA: #LIBREPORTAL|DOCKERNETWORK_TAG|DOCKERNETWORK_DATA
- ipv4_address: IP_DATA_1 #LIBREPORTAL|IP_TAG_1|IP_DATA_1
- # GLUETUN_OFF_END
- # GLUETUN_ON_BEGIN
- # network_mode: "container:gluetun-service"
- # GLUETUN_ON_END
diff --git a/scripts/unused/OLD_CONTAINERS/portainer/portainer.config b/scripts/unused/OLD_CONTAINERS/portainer/portainer.config
deleted file mode 100755
index 8c76e95..0000000
--- a/scripts/unused/OLD_CONTAINERS/portainer/portainer.config
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# =============================================================================
-# GENERAL CONFIGURATION
-# =============================================================================
-# APP_NAME = name of application for use in scripts
-# COMPOSE_FILE = default for no app_name in docker-compose file name, app if there is
-# BACKUP = if true, include this application in backup operations
-# HEALTHCHECK = if true, default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-#
-CFG_PORTAINER_APP_NAME=portainer
-CFG_PORTAINER_BACKUP=true
-CFG_PORTAINER_COMPOSE_FILE=default
-CFG_PORTAINER_HEALTHCHECK=true
-CFG_PORTAINER_AUTHELIA=false
-CFG_PORTAINER_HEADSCALE=false
-#
-# =============================================================================
-# METADATA
-# =============================================================================
-# CATEGORY = application category for grouping
-# TITLE = display name for the application
-# DESCRIPTION = short description of the application
-# LONG_DESCRIPTION = detailed description of the application
-# URL = source repository or documentation URL
-# ACTIONS = available actions for this application
-#
-CFG_PORTAINER_CATEGORY="Development"
-CFG_PORTAINER_TITLE="Portainer"
-CFG_PORTAINER_DESCRIPTION="Docker Management"
-CFG_PORTAINER_LONG_DESCRIPTION="Portainer is a lightweight management UI for Docker, Docker Swarm, and Kubernetes that allows you to manage your containers easily"
-CFG_PORTAINER_URL="https://github.com/portainer/portainer"
-CFG_PORTAINER_ACTIONS="configure|install|restart|shutdown|uninstall"
-#
-# =============================================================================
-# NETWORK CONFIGURATION
-# =============================================================================
-# DOMAIN = number of domain from the general config, useful when using multiple domains
-# HOST_NAME = subdomain name e.g test is the name for test.website.com
-# WHITELIST = if true only allow whitelisted ips on traefik, if false allow all
-# PUBLIC = if true, app is publicly accessible, if false, only accessible on local network
-#
-CFG_PORTAINER_DOMAIN=1
-CFG_PORTAINER_WHITELIST=false
-CFG_PORTAINER_HOST_NAME=portainer
-CFG_PORTAINER_NETWORK=default
-CFG_PORTAINER_PUBLIC=true
-#
-# =============================================================================
-# PORT CONFIGURATION
-# =============================================================================
-# PORT_ = port configuration: app|name|external:internal|access|protocol|login|traefik|webui|description
-# - app: application name
-# - name: service identifier (webui, api, ssh, etc.)
-# - external:internal: port mapping (external can be 'random' for auto-allocation)
-# - access: 'public' (internet accessible), 'private' (local network only), 'disabled' (not running)
-# - protocol: 'tcp' or 'udp'
-# - login: if true, this port requires basic-auth via Traefik (only meaningful when traefik=true)
-# - traefik: if true, Traefik handles this port (reverse proxy)
-# - webui: if true, this port serves the main web interface
-# - description: human-readable description of the service
-#
-CFG_PORTAINER_PORT_1="portainer-service|webui|random:9000|public|tcp|false|true|true|Web Interface|"
-CFG_PORTAINER_PORT_2="portainer-service|agent-edge|random:8000|disabled|tcp|false|false|false|Edge Agent|"
diff --git a/scripts/unused/OLD_CONTAINERS/portainer/portainer.sh b/scripts/unused/OLD_CONTAINERS/portainer/portainer.sh
deleted file mode 100755
index ba84642..0000000
--- a/scripts/unused/OLD_CONTAINERS/portainer/portainer.sh
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/bin/bash
-
-# Category : Development & Version Control
-# Description : Portainer - Docker Management (c/u/s/r/i):
-
-installPortainer()
-{
- local config_variables="$1"
-
- if [[ "$portainer" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent portainer;
- local app_name=$CFG_PORTAINER_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$portainer" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$portainer" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$portainer" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$portainer" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$portainer" == *[iI]* ]]; then
- isHeader "Installing $app_name"
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
- dockerComposeRestart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your new service using one of the options below : "
- echo ""
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- portainer=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/portainer/portainer.svg b/scripts/unused/OLD_CONTAINERS/portainer/portainer.svg
deleted file mode 100755
index 45cf83a..0000000
--- a/scripts/unused/OLD_CONTAINERS/portainer/portainer.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/scripts/unused/OLD_CONTAINERS/seafile/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/seafile/docker-compose.yml
deleted file mode 100755
index 93893e3..0000000
--- a/scripts/unused/OLD_CONTAINERS/seafile/docker-compose.yml
+++ /dev/null
@@ -1,61 +0,0 @@
-networks:
- vpn:
- external: true
-
-services:
- seafile:
- image: seafileltd/seafile-mc:12.0-latest
- container_name: seafile
- ports:
- - "PORT1:80"
-# - "443:443" # If https is enabled, cancel the comment.
- volumes:
- - ./seafile-data:/shared # Requested, specifies the path to Seafile data persistent store.
- environment:
- - DB_HOST=seafile-mysql
- - DB_ROOT_PASSWD=RANDOMIZEDPASSWORD1 # Requested, the value should be root's password of MySQL service.
- - TIME_ZONE=TIMEZONEHERE # Optional, default is UTC. Should be uncommented and set to your local time zone.
- - SEAFILE_ADMIN_EMAIL=EMAILHERE # Specifies Seafile admin user, default is 'me@example.com'.
- - SEAFILE_ADMIN_PASSWORD=RANDOMIZEDPASSWORD2 # Specifies Seafile admin password, default is 'asecret'.
- - SEAFILE_SERVER_LETSENCRYPT=false # Whether to use https or not.
- - SEAFILE_SERVER_HOSTNAME=DOMAINSUBNAMEHERE # Specifies your host name if https is enabled.
- - JWT_PRIVATE_KEY=RANDOMIZEDPASSWORD3
- - CSRF_TRUSTED_ORIGINS=https://DOMAINSUBNAMEHERE
- - ALLOWED_HOSTS=DOMAINSUBNAMEHERE
- - SECURE_PROXY_SSL_HEADER=('HTTP_X_FORWARDED_PROTO', 'https')
- #labels:
- #traefik.enable: true
- #traefik.http.routers.seafile.entrypoints: web,websecure
- #traefik.http.routers.seafile.rule: Host(`DOMAINSUBNAMEHERE`)
- #traefik.http.routers.seafile.tls: true
- #traefik.http.routers.seafile.tls.certresolver: production
- #traefik.http.routers.seafile.middlewares:
- healthcheck:
- disable: false #HEALTHCHECKHERE
- depends_on:
- - seafile-mysql
- - seafile-memcached
- networks:
- vpn:
- ipv4_address: IPADDRESSHERE
-
- seafile-mysql:
- image: mariadb:10.11
- container_name: seafile-mysql
- environment:
- - MYSQL_ROOT_PASSWORD=RANDOMIZEDPASSWORD1 # Requested, set the root's password of MySQL service.
- - MYSQL_LOG_CONSOLE=true
- - MARIADB_AUTO_UPGRADE=1
- volumes:
- - ./seafile-mysql/db:/var/lib/mysql # Requested, specifies the path to MySQL data persistent store.
- networks:
- vpn:
- ipv4_address: 10.100.0.132
-
- seafile-memcached:
- image: memcached:1.6.18
- container_name: seafile-memcached
- entrypoint: memcached -m 256 -p PORT2
- networks:
- vpn:
- ipv4_address: 10.100.0.133
diff --git a/scripts/unused/OLD_CONTAINERS/seafile/resources/.env b/scripts/unused/OLD_CONTAINERS/seafile/resources/.env
deleted file mode 100755
index e6c9d33..0000000
--- a/scripts/unused/OLD_CONTAINERS/seafile/resources/.env
+++ /dev/null
@@ -1,341 +0,0 @@
-# You can leave this on "local". If you change it to production most console commands will ask for extra confirmation.
-# Never set it to "testing".
-APP_ENV=local
-
-# Set to true if you want to see debug information in error screens.
-APP_DEBUG=false
-
-# This should be your email address.
-# If you use Docker or similar, you can set this variable from a file by using SITE_OWNER_FILE
-# The variable is used in some errors shown to users who aren't admin.
-SITE_OWNER=EMAILHERE
-
-# The encryption key for your sessions. Keep this very secure.
-# Change it to a string of exactly 32 chars or use something like `php artisan key:generate` to generate it.
-# If you use Docker or similar, you can set this variable from a file by using APP_KEY_FILE
-#
-# Avoid the "#" character in your APP_KEY, it may break things.
-#
-APP_KEY=SomeRandomStringOf32CharsExactly
-
-# Firefly III will launch using this language (for new users and unauthenticated visitors)
-# For a list of available languages: https://github.com/firefly-iii/firefly-iii/tree/main/resources/lang
-#
-# If text is still in English, remember that not everything may have been translated.
-DEFAULT_LANGUAGE=en_US
-
-# The locale defines how numbers are formatted.
-# by default this value is the same as whatever the language is.
-DEFAULT_LOCALE=equal
-
-# Change this value to your preferred time zone.
-# Example: Europe/Amsterdam
-# For a list of supported time zones, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
-TZ=TIMEZONEHERE
-
-# TRUSTED_PROXIES is a useful variable when using Docker and/or a reverse proxy.
-# Set it to ** and reverse proxies work just fine.
-TRUSTED_PROXIES=
-
-# The log channel defines where your log entries go to.
-# Several other options exist. You can use 'single' for one big fat error log (not recommended).
-# Also available are 'syslog', 'errorlog' and 'stdout' which will log to the system itself.
-# A rotating log option is 'daily', creates 5 files that (surprise) rotate.
-# A cool option is 'papertrail' for cloud logging
-# Default setting 'stack' will log to 'daily' and to 'stdout' at the same time.
-LOG_CHANNEL=stack
-
-# Log level. You can set this from least severe to most severe:
-# debug, info, notice, warning, error, critical, alert, emergency
-# If you set it to debug your logs will grow large, and fast. If you set it to emergency probably
-# nothing will get logged, ever.
-APP_LOG_LEVEL=notice
-
-# Audit log level.
-# The audit log is used to log notable Firefly III events on a separate channel.
-# These log entries may contain sensitive financial information.
-# The audit log is disabled by default.
-#
-# To enable it, set AUDIT_LOG_LEVEL to "info"
-# To disable it, set AUDIT_LOG_LEVEL to "emergency"
-AUDIT_LOG_LEVEL=emergency
-
-#
-# If you want, you can redirect the audit logs to another channel.
-# Set 'audit_stdout', 'audit_syslog', 'audit_errorlog' to log to the system itself.
-# Use audit_daily to log to a rotating file.
-# Use audit_papertrail to log to papertrail.
-#
-# If you do this, the audit logs may be mixed with normal logs because the settings for these channels
-# are often the same as the settings for the normal logs.
-AUDIT_LOG_CHANNEL=
-
-#
-# Used when logging to papertrail:
-# Also used when audit logs log to papertrail:
-#
-PAPERTRAIL_HOST=
-PAPERTRAIL_PORT=
-
-# Database credentials. Make sure the database exists. I recommend a dedicated user for Firefly III
-# For other database types, please see the FAQ: https://docs.firefly-iii.org/firefly-iii/faq/self-hosted/#i-want-to-use-sqlite
-# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
-# Use "pgsql" for PostgreSQL
-# Use "mysql" for MySQL and MariaDB.
-# Use "sqlite" for SQLite.
-DB_CONNECTION=mysql
-DB_HOST=firefly_iii_db
-DB_PORT=3306
-DB_DATABASE=firefly
-DB_USERNAME=firefly
-DB_PASSWORD=secret_firefly_password
-# leave empty or omit when not using a socket connection
-DB_SOCKET=
-
-# MySQL supports SSL. You can configure it here.
-# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
-MYSQL_USE_SSL=false
-MYSQL_SSL_VERIFY_SERVER_CERT=true
-# You need to set at least of these options
-MYSQL_SSL_CAPATH=/etc/ssl/certs/
-MYSQL_SSL_CA=
-MYSQL_SSL_CERT=
-MYSQL_SSL_KEY=
-MYSQL_SSL_CIPHER=
-
-# PostgreSQL supports SSL. You can configure it here.
-# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
-PGSQL_SSL_MODE=prefer
-PGSQL_SSL_ROOT_CERT=null
-PGSQL_SSL_CERT=null
-PGSQL_SSL_KEY=null
-PGSQL_SSL_CRL_FILE=null
-
-# more PostgreSQL settings
-PGSQL_SCHEMA=public
-
-# If you're looking for performance improvements, you could install memcached or redis
-CACHE_DRIVER=file
-SESSION_DRIVER=file
-
-# If you set either of the options above to 'redis', you might want to update these settings too
-# If you use Docker or similar, you can set REDIS_HOST_FILE, REDIS_PASSWORD_FILE or
-# REDIS_PORT_FILE to set the value from a file instead of from an environment variable
-
-# can be tcp, unix or http
-REDIS_SCHEME=tcp
-
-# use only when using 'unix' for REDIS_SCHEME. Leave empty otherwise.
-REDIS_PATH=
-
-# use only when using 'tcp' or 'http' for REDIS_SCHEME. Leave empty otherwise.
-REDIS_HOST=127.0.0.1
-REDIS_PORT=6379
-
-# Use only with Redis 6+ with proper ACL set. Leave empty otherwise.
-REDIS_USERNAME=
-REDIS_PASSWORD=
-
-# always use quotes and make sure redis db "0" and "1" exists. Otherwise change accordingly.
-REDIS_DB="0"
-REDIS_CACHE_DB="1"
-
-# Cookie settings. Should not be necessary to change these.
-# If you use Docker or similar, you can set COOKIE_DOMAIN_FILE to set
-# the value from a file instead of from an environment variable
-# Setting samesite to "strict" may give you trouble logging in.
-COOKIE_PATH="/"
-COOKIE_DOMAIN=
-COOKIE_SECURE=false
-COOKIE_SAMESITE=lax
-
-# If you want Firefly III to email you, update these settings
-# For instructions, see: https://docs.firefly-iii.org/firefly-iii/advanced-installation/email/#email
-# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
-MAIL_MAILER=log
-MAIL_HOST=null
-MAIL_PORT=2525
-MAIL_FROM=changeme@example.com
-MAIL_USERNAME=null
-MAIL_PASSWORD=null
-MAIL_ENCRYPTION=null
-MAIL_SENDMAIL_COMMAND=
-
-# Other mail drivers:
-# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
-MAILGUN_DOMAIN=
-MAILGUN_SECRET=
-
-# If you are on EU region in mailgun, use api.eu.mailgun.net, otherwise use api.mailgun.net
-# If you use Docker or similar, you can set this variable from a file by appending it with _FILE
-MAILGUN_ENDPOINT=api.mailgun.net
-
-# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
-MANDRILL_SECRET=
-SPARKPOST_SECRET=
-
-# Firefly III can send you the following messages.
-SEND_ERROR_MESSAGE=true
-
-# These messages contain (sensitive) transaction information:
-SEND_REPORT_JOURNALS=true
-
-# Set this value to true if you want to set the location of certain things, like transactions.
-# Since this involves an external service, it's optional and disabled by default.
-ENABLE_EXTERNAL_MAP=false
-
-# Set this value to true if you want Firefly III to download currency exchange rates
-# from the internet. These rates are hosted by the creator of Firefly III inside
-# an Azure Storage Container.
-# Not all currencies may be available. Rates may be wrong.
-ENABLE_EXTERNAL_RATES=false
-
-# The map will default to this location:
-MAP_DEFAULT_LAT=51.983333
-MAP_DEFAULT_LONG=5.916667
-MAP_DEFAULT_ZOOM=6
-
-#
-# Some objects have room for an URL, like transactions and webhooks.
-# By default, the following protocols are allowed:
-# http, https, ftp, ftps, mailto
-#
-# To change this, set your preferred comma separated set below.
-# Be sure to include http, https and other default ones if you need to.
-#
-VALID_URL_PROTOCOLS=
-
-#
-# Firefly III authentication settings
-#
-
-#
-# Firefly III supports a few authentication methods:
-# - 'web' (default, uses built in DB)
-# - 'remote_user_guard' for Authelia etc
-# Read more about these settings in the documentation.
-# https://docs.firefly-iii.org/firefly-iii/advanced-installation/authentication
-#
-# LDAP is no longer supported :(
-#
-AUTHENTICATION_GUARD=web
-
-#
-# Remote user guard settings
-#
-AUTHENTICATION_GUARD_HEADER=REMOTE_USER
-AUTHENTICATION_GUARD_EMAIL=
-
-#
-# Firefly III generates a basic keypair for your OAuth tokens.
-# If you want, you can overrule the key with your own (secure) value.
-# It's also possible to set PASSPORT_PUBLIC_KEY_FILE or PASSPORT_PRIVATE_KEY_FILE
-# if you're using Docker secrets or similar solutions for secret management
-#
-PASSPORT_PRIVATE_KEY=
-PASSPORT_PUBLIC_KEY=
-
-#
-# Extra authentication settings
-#
-CUSTOM_LOGOUT_URL=
-
-# You can disable the X-Frame-Options header if it interferes with tools like
-# Organizr. This is at your own risk. Applications running in frames run the risk
-# of leaking information to their parent frame.
-DISABLE_FRAME_HEADER=false
-
-# You can disable the Content Security Policy header when you're using an ancient browser
-# or any version of Microsoft Edge / Internet Explorer (which amounts to the same thing really)
-# This leaves you with the risk of not being able to stop XSS bugs should they ever surface.
-# This is at your own risk.
-DISABLE_CSP_HEADER=false
-
-# If you wish to track your own behavior over Firefly III, set valid analytics tracker information here.
-# Nobody uses this except for me on the demo site. But hey, feel free to use this if you want to.
-# Do not prepend the TRACKER_URL with http:// or https://
-# The only tracker supported is Matomo.
-# You can set the following variables from a file by appending them with _FILE:
-TRACKER_SITE_ID=
-TRACKER_URL=
-
-#
-# Firefly III supports webhooks. These are security sensitive and must be enabled manually first.
-#
-ALLOW_WEBHOOKS=false
-
-#
-# The static cron job token can be useful when you use Docker and wish to manage cron jobs.
-# 1. Set this token to any 32-character value (this is important!).
-# 2. Use this token in the cron URL instead of a user's command line token that you can find in /profile
-#
-# For more info: https://docs.firefly-iii.org/firefly-iii/advanced-installation/cron/
-#
-# You can set this variable from a file by appending it with _FILE
-#
-STATIC_CRON_TOKEN=
-
-# You can fine tune the start-up of a Docker container by editing these environment variables.
-# Use this at your own risk. Disabling certain checks and features may result in lots of inconsistent data.
-# However if you know what you're doing you can significantly speed up container start times.
-# Set each value to true to enable, or false to disable.
-
-# Set this to true to build all locales supported by Firefly III.
-# This may take quite some time (several minutes) and is generally not recommended.
-# If you wish to change or alter the list of locales, start your Docker container with
-# `docker run -v locale.gen:/etc/locale.gen -e DKR_BUILD_LOCALE=true`
-# and make sure your preferred locales are in your own locale.gen.
-DKR_BUILD_LOCALE=false
-
-# Check if the SQLite database exists. Can be skipped if you're not using SQLite.
-# Won't significantly speed up things.
-DKR_CHECK_SQLITE=true
-
-# Run database creation and migration commands. Disable this only if you're 100% sure the DB exists
-# and is up to date.
-DKR_RUN_MIGRATION=true
-
-# Run database upgrade commands. Disable this only when you're 100% sure your DB is up-to-date
-# with the latest fixes (outside of migrations!)
-DKR_RUN_UPGRADE=true
-
-# Verify database integrity. Includes all data checks and verifications.
-# Disabling this makes Firefly III assume your DB is intact.
-DKR_RUN_VERIFY=true
-
-# Run database reporting commands. When disabled, Firefly III won't go over your data to report current state.
-# Disabling this should have no impact on data integrity or safety but it won't warn you of possible issues.
-DKR_RUN_REPORT=true
-
-# Generate OAuth2 keys.
-# When disabled, Firefly III won't attempt to generate OAuth2 Passport keys. This won't be an issue, IFF (if and only if)
-# you had previously generated keys already and they're stored in your database for restoration.
-DKR_RUN_PASSPORT_INSTALL=true
-
-# Leave the following configuration vars as is.
-# Unless you like to tinker and know what you're doing.
-APP_NAME=FireflyIII
-BROADCAST_DRIVER=log
-QUEUE_DRIVER=sync
-CACHE_PREFIX=firefly
-PUSHER_KEY=
-IPINFO_TOKEN=
-PUSHER_SECRET=
-PUSHER_ID=
-DEMO_USERNAME=
-DEMO_PASSWORD=
-FIREFLY_III_LAYOUT=v1
-
-#
-# If you have trouble configuring your Firefly III installation, DON'T BOTHER setting this variable.
-# It won't work. It doesn't do ANYTHING. Don't believe the lies you read online. I'm not joking.
-# This configuration value WILL NOT HELP.
-#
-# Notable exception to this rule is Synology, which, according to some users, will use APP_URL to rewrite stuff.
-#
-# This variable is ONLY used in some of the emails Firefly III sends around. Nowhere else.
-# So when configuring anything WEB related this variable doesn't do anything. Nothing
-#
-# If you're stuck I understand you get desperate but look SOMEWHERE ELSE.
-#
-APP_URL=http://localhost
diff --git a/scripts/unused/OLD_CONTAINERS/seafile/seafile.config b/scripts/unused/OLD_CONTAINERS/seafile/seafile.config
deleted file mode 100755
index be7c4b1..0000000
--- a/scripts/unused/OLD_CONTAINERS/seafile/seafile.config
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_SEAFILE_APP_NAME=seafile
-CFG_SEAFILE_BACKUP=true
-CFG_SEAFILE_COMPOSE_FILE=default
-CFG_SEAFILE_HOST_NAME=files
-CFG_SEAFILE_DOMAIN=1
-CFG_SEAFILE_PUBLIC=true
-CFG_SEAFILE_WHIELIST=false
-CFG_SEAFILE_HEALTHCHECK=true
-CFG_SEAFILE_AUTHELIA=false
-CFG_SEAFILE_HEADSCALE=false
-CFG_SEAFILE_PORTS=9844,11212
-
-# Application metadata
-CFG_SEAFILE_CATEGORY="Cloud Storage & File Sharing"
-CFG_SEAFILE_TITLE="Seafile"
-CFG_SEAFILE_DESCRIPTION="File Syncing and Sharing"
-CFG_SEAFILE_LONG_DESCRIPTION="Open source file hosting and sharing solution with high performance and reliability for teams and individuals"
-CFG_SEAFILE_URL="https://github.com/haiwen/seafile"
-CFG_SEAFILE_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/seafile/seafile.sh b/scripts/unused/OLD_CONTAINERS/seafile/seafile.sh
deleted file mode 100755
index 28402ef..0000000
--- a/scripts/unused/OLD_CONTAINERS/seafile/seafile.sh
+++ /dev/null
@@ -1,146 +0,0 @@
-#!/bin/bash
-
-# Category : Cloud Storage & File Sharing
-# Description : Seafile - File Syncing and Sharing (c/u/s/r/i):
-
-installSeafile()
-{
- local config_variables="$1"
-
- if [[ "$seafile" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent seafile;
- local app_name=$CFG_SEAFILE_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$seafile" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$seafile" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$seafile" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$seafile" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$seafile" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folders and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating defaul redis port and restarting $app_name"
- echo ""
-
- local seafile_timeout=180
- local seafile_counter=0
- local seafile_settings="$containers_dir$app_name/seafile-data/seafile/conf/seahub_settings.py"
- local check_interval=15 # Print status every 15 seconds
-
- while [ ! -f "$seafile_settings" ]; do
- if [ "$seafile_counter" -ge "$seafile_timeout" ]; then
- isNotice "File seahub_settings.py not found after $seafile_timeout seconds. Exiting..."
- break
- fi
-
- # Only print message every $check_interval seconds
- if (( seafile_counter % check_interval == 0 )); then
- isNotice "Waiting for seahub_settings.py to appear... (Checked for $seafile_counter seconds)"
- fi
-
- sleep 1 # Wait for 1 second
- ((seafile_counter++))
- done
-
- # Check if the file was found or if we timed out
- if [ -f "$seafile_settings" ]; then
- isNotice "File found! Updating the default Redis port..."
- sudo sed -i "s/11211/$PORT2/g" "$seafile_settings"
- checkSuccess "Updated default Redis port for $app_name"
-
- dockerComposeRestart "$app_name"
- fi
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your $app_name service using any of the options below : "
- echo ""
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- seafile=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/seafile/seafile.svg b/scripts/unused/OLD_CONTAINERS/seafile/seafile.svg
deleted file mode 100755
index e160b9b..0000000
--- a/scripts/unused/OLD_CONTAINERS/seafile/seafile.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/scripts/unused/OLD_CONTAINERS/sshdownload/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/sshdownload/docker-compose.yml
deleted file mode 100755
index 99ced1f..0000000
--- a/scripts/unused/OLD_CONTAINERS/sshdownload/docker-compose.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-networks:
- vpn:
- external: true
-
-services:
- sshdownload:
- image: httpd:latest
- container_name: sshdownload
- ports:
- - 'PORT1:80'
- volumes:
- - /docker/ssh/private:/usr/local/apache2/htdocs
- #labels:
- #traefik.enable: true
- #traefik.http.routers.sshdownload.entrypoints: web,websecure
- #traefik.http.routers.sshdownload.rule: Host(`DOMAINSUBNAMEHERE`)
- #traefik.http.routers.sshdownload.tls: true
- #traefik.http.routers.sshdownload.tls.certresolver: production
- #traefik.http.services.sshdownload.loadbalancer.server.port: PORT1
- #traefik.http.routers.sshdownload.middlewares:
- healthcheck:
- disable: false #HEALTHCHECKHERE
- networks:
- vpn:
- ipv4_address: IPADDRESSHERE
diff --git a/scripts/unused/OLD_CONTAINERS/sshdownload/resources/index.html b/scripts/unused/OLD_CONTAINERS/sshdownload/resources/index.html
deleted file mode 100755
index a7b4832..0000000
--- a/scripts/unused/OLD_CONTAINERS/sshdownload/resources/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
- Downloadable SSH Keys
-
-
-
-
Downloadable SSH Keys
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/scripts/unused/OLD_CONTAINERS/sshdownload/sshdownload.config b/scripts/unused/OLD_CONTAINERS/sshdownload/sshdownload.config
deleted file mode 100755
index 252cfbe..0000000
--- a/scripts/unused/OLD_CONTAINERS/sshdownload/sshdownload.config
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_SSHDOWNLOAD_APP_NAME=sshdownload
-CFG_SSHDOWNLOAD_BACKUP=false
-CFG_SSHDOWNLOAD_COMPOSE_FILE=default
-CFG_SSHDOWNLOAD_HOST_NAME=sshdownload
-CFG_SSHDOWNLOAD_DOMAIN=1
-CFG_SSHDOWNLOAD_PUBLIC=false
-CFG_SSHDOWNLOAD_WHITELIST=false
-CFG_SSHDOWNLOAD_HEALTHCHECK=true
-CFG_SSHDOWNLOAD_AUTHELIA=false
-CFG_SSHDOWNLOAD_LOGIN_REQUIRED=true
-CFG_SSHDOWNLOAD_HEADSCALE=false
-CFG_SSHDOWNLOAD_PORTS=3131
-# Application metadata
-CFG_SSHDOWNLOAD_CATEGORY="Miscellaneous"
-CFG_SSHDOWNLOAD_TITLE="SSH Download"
-CFG_SSHDOWNLOAD_DESCRIPTION="Web Server for Local SSH Files"
-CFG_SSHDOWNLOAD_LONG_DESCRIPTION="SSH Download is a secure file transfer service that allows downloading files via SSH with web interface access"
-CFG_SSHDOWNLOAD_URL="https://github.com/sciactive/sshdownload"
-CFG_SSHDOWNLOAD_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/sshdownload/sshdownload.sh b/scripts/unused/OLD_CONTAINERS/sshdownload/sshdownload.sh
deleted file mode 100755
index 84e3c98..0000000
--- a/scripts/unused/OLD_CONTAINERS/sshdownload/sshdownload.sh
+++ /dev/null
@@ -1,178 +0,0 @@
-#!/bin/bash
-
-# Category : Miscellaneous
-# Description : SSH Download - Web Server for Local SSH Files (c/u/s/r/i):
-
-installSshdownload()
-{
- local config_variables="$1"
-
- if [[ "$sshdownload" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent sshdownload;
- local app_name=$CFG_SSHDOWNLOAD_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$sshdownload" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$sshdownload" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$sshdownload" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$sshdownload" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$sshdownload" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Installing $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Checking public status for security purposes."
- echo ""
-
- if [[ "$public" == "true" ]]; then
- echo ""
- isNotice "!!!!!!!!!! PROCEED WITH CAUTION !!!!!!!!!!"
- isNotice "Public access is not fully recommended for security reasons."
- if [[ "$login_required" == "false" ]]; then
- isNotice "NO PASSWORD PROTECTION FOUND."
- isNotice "Anyone with an internet connection will be able to download your SSH Keys"
- fi
- echo ""
- while true; do
- isQuestion "Are you sure you want to allow sshdownload to the public? (y/n): "
- read -p "" sshdownload_public
- if [[ "$sshdownload_public" == [yY] ]]; then
- break
- else
- isNotice "Please confirm the setup or provide a valid input."
- fi
- done
- fi
- if [[ $sshdownload_public == [yY] ]]; then
- isError "Setup is not wanted due to public security access, setup is cancelling..."
- else
- isSuccessful "Accepting of public security risks, setup is continuing..."
- fi
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- result=$(sudo cp -r $install_containers_dir$app_name/resources/index.html "${ssh_dir}private/index.html")
- checkSuccess "Copying over index.html file for SSH Downloader."
- updateSSHHTMLSSHKeyLinks;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- isNotice "Your SSH Key(s) are available to download using the link below."
- echo ""
- echo " URL : http://$ip_setup/"
- echo ""
- isNotice "TIP - Public SSH Keys are stored at /docker/ssh/public/"
- echo ""
- while true; do
- isQuestion "Have you followed the instructions above? (y/n): "
- read -p "" sshdownload_instructions
- if [[ "$sshdownload_instructions" == 'y' || "$sshdownload_instructions" == 'Y' ]]; then
- break
- else
- isNotice "Please confirm the setup or provide a valid input."
- fi
- done
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Destroying $app_name service as SSH keys have been downloaded."
- echo ""
-
- dockerUninstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Outro Message."
- echo ""
- isNotice "The service has been destroyed for safety reasons"
- isNotice "You can reinstall this service at anytime in the System install menu under the sshinstall option."
- echo ""
-
- if [[ "$CFG_REQUIREMENT_CONTINUE_PROMPT" == "true" ]]; then
- read -p "Press Enter to continue."
- fi
-
- menu_number=0
- #sleep 3s
- cd
- fi
- sshdownload=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/sshdownload/sshdownload.svg b/scripts/unused/OLD_CONTAINERS/sshdownload/sshdownload.svg
deleted file mode 100755
index 66dd353..0000000
--- a/scripts/unused/OLD_CONTAINERS/sshdownload/sshdownload.svg
+++ /dev/null
@@ -1,290 +0,0 @@
-
-
diff --git a/scripts/unused/OLD_CONTAINERS/tiledesk/docker-compose.yml b/scripts/unused/OLD_CONTAINERS/tiledesk/docker-compose.yml
deleted file mode 100755
index 25046a7..0000000
--- a/scripts/unused/OLD_CONTAINERS/tiledesk/docker-compose.yml
+++ /dev/null
@@ -1,90 +0,0 @@
-networks:
- vpn:
- external: true
-
-services:
- proxy:
- ports:
- - "PORT1:80" # specify port forewarding
- #labels:
- #traefik.enable: true
- #traefik.http.routers.tiledesk.entrypoints: web,websecure
- #traefik.http.routers.tiledesk.rule: Host(`DOMAINSUBNAMEHERE`)
- #traefik.http.routers.tiledesk.tls: true
- #traefik.http.routers.tiledesk.tls.certresolver: production
- #traefik.http.routers.tiledesk.middlewares:
- healthcheck:
- disable: false #HEALTHCHECKHERE
- networks:
- vpn:
- ipv4_address: IPADDRESSHERE
- volumes:
- - /var/run/docker.sock:/var/run/docker.sock:ro #SOCKETHERE
-
- mongo:
- volumes:
- - ./tiledesk-datadb:/data/db
-
- dashboard:
- environment:
- - "WIDGET_LOCATION=${EXTERNAL_BASE_URL:-http://localhost:8081}/widget/"
- - "API_BASEIMAGE_URL=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
- ports:
- - "4500:80" #use expose if you want to block external access
-
- webwidget:
- image: chat21/chat21-web-widget:5.0.70
- container_name: chat21-web-widget
- ports:
- - "4200:80" # specify port forewarding
- environment:
- - "MQTT_ENDPOINT=${EXTERNAL_MQTT_BASE_URL:-ws://localhost:8081}/mqws/ws"
- - "MQTT_APIENDPOINT=${EXTERNAL_BASE_URL:-http://localhost:8081}/chatapi/api"
- - "API_URL=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
- - "TRANSLATIONS_URL=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
- - "API_BASEIMAGE_URL=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
-
- ionic:
- image: chat21/chat21-ionic:3.0.101
- container_name: chat21-ionic
- ports:
- - "8082:80" #use expose if you want to block external access
- environment:
- - "MQTT_ENDPOINT=${EXTERNAL_MQTT_BASE_URL:-ws://localhost:8081}/mqws/ws"
- server:
- image: tiledesk/tiledesk-server:2.4.67
- - CHAT21_URL=http://chat21httpserver:8004
- - "EMAIL_BASEURL=${EXTERNAL_BASE_URL:-http://localhost:8081}/dashboard"
- - "WEBHOOK_ORIGIN=${EXTERNAL_BASE_URL:-http://localhost:8081}/api/"
- - "WIDGET_LOCATION=${EXTERNAL_BASE_URL:-http://localhost:8081}/widget/launch.js"
- - "WIDGET_TEST_LOCATION=${EXTERNAL_BASE_URL:-http://localhost:8081}/widget/assets/test_widget_page/index.html"
- - CACHE_REDIS_PORT=6379
- ports:
- - "3000:3000"
-
- chat21httpserver:
- environment:
- - RABBITMQ_URI=amqp://ignored:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiMjM1OTFmZS05N2FhLTRmNWQtOGVlOS0yNjQ2NzljYmM0M2YiLCJzdWIiOiIxMDAtQVBJQURNSU4iLCJzY29wZSI6WyJyYWJiaXRtcS5yZWFkOiovKi8qIiwicmFiYml0bXEud3JpdGU6Ki8qLyoiLCJyYWJiaXRtcS5jb25maWd1cmU6Ki8qLyoiXSwiY2xpZW50X2lkIjoiMTAwLUFQSUFETUlOIiwiY2lkIjoiMTAwLUFQSUFETUlOIiwiYXpwIjoiMTAwLUFQSUFETUlOIiwidXNlcl9pZCI6IjEwMC1BUElBRE1JTiIsImFwcF9pZCI6InRpbGVjaGF0IiwiaWF0IjoxNjk2NDkyMjg3LCJleHAiOjIwMDc1MzIyODcsImF1ZCI6WyJyYWJiaXRtcSIsIjEwMC1BUElBRE1JTiJdLCJraWQiOiJ0aWxlZGVzay1rZXkiLCJ0aWxlZGVza19hcGlfcm9sZXMiOiJhZG1pbiJ9.Ee-TpAPsoC7Dm7qsbUojeHud3E4OCtJZkpupu_R0Aic@rabbitmq:5672?heartbeat=60
- - PUSH_WH_NOTIFY_URL=http://localhost:8004/api/tilechat/notify
- - CONTACTS_LOOKUP_ENDPOINT=http://server:3000/users_util
- ports:
- - "8004:8004"
-
- chat21server:
- environment:
- - WEBHOOK_ENDPOINTS=http://server:3000/chat21/requests,http://chat21httpserver:8004/api/tilechat/push/webhook/endpoint/WHFyAhecCMkYsvldLFWbSrJt7lAZFAmrp7O5QVMvGQsLVn9SkfT
- depends_on:
- - mongo
- - rabbitmq
- - server
-
- rabbitmq:
- ports:
- - 5672:5672
- - 15672:15672
- - 1883:1883
- - 15675:15675
-
- redis:
- ports:
- - "6379:6379"
diff --git a/scripts/unused/OLD_CONTAINERS/tiledesk/tiledesk.config b/scripts/unused/OLD_CONTAINERS/tiledesk/tiledesk.config
deleted file mode 100755
index 812117d..0000000
--- a/scripts/unused/OLD_CONTAINERS/tiledesk/tiledesk.config
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# APP_NAME = name of the application for use in the scripts
-# COMPOSE_FILE = default for no app_name in the docker compose file name, app if there is
-# HOST NAME = subdomain name e.g test is the name for test.website.com
-# DOMAIN = number of the domain from the general config, useful when using multiple domains
-# PUBLIC = if true, application will be setup with the reverse proxy and accessible from the internet
-# WHITELIST = if true only allow whitelisted ips (see general config), if false allow all
-# HEALTHCHECK = if true, the default docker health checks for that container will be enabled
-# AUTHELIA = if true, use Authelia authentication, if false turned off.
-# HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote
-# PORTS = port number(s) that the application will be used (comma seperated)
-#
-CFG_TILEDESK_APP_NAME=tiledesk
-CFG_TILEDESK_BACKUP=true
-CFG_TILEDESK_COMPOSE_FILE=app
-CFG_TILEDESK_HOST_NAME=livechat
-CFG_TILEDESK_DOMAIN=1
-CFG_TILEDESK_PUBLIC=true
-CFG_TILEDESK_WHITELIST=false
-CFG_TILEDESK_HEALTHCHECK=true
-CFG_TILEDESK_AUTHELIA=false
-CFG_TILEDESK_HEADSCALE=false
-CFG_TILEDESK_PORTS=8081
-# Application metadata
-CFG_TILEDESK_CATEGORY="Communication & Collaboration Tools"
-CFG_TILEDESK_TITLE="Tiledesk"
-CFG_TILEDESK_DESCRIPTION="Helpdesk/Live Chat"
-CFG_TILEDESK_LONG_DESCRIPTION="Tiledesk is an open source live chat and conversational AI platform that helps you engage with customers in real-time"
-CFG_TILEDESK_URL="https://github.com/Tiledesk/tiledesk"
-CFG_TILEDISK_ACTIONS="configure|install|restart|shutdown|uninstall"
-CFG_TILEDESK_ACTIONS="configure|install|restart|shutdown|uninstall"
diff --git a/scripts/unused/OLD_CONTAINERS/tiledesk/tiledesk.sh b/scripts/unused/OLD_CONTAINERS/tiledesk/tiledesk.sh
deleted file mode 100755
index f9e840f..0000000
--- a/scripts/unused/OLD_CONTAINERS/tiledesk/tiledesk.sh
+++ /dev/null
@@ -1,146 +0,0 @@
-#!/bin/bash
-
-# Category : Communication & Collaboration Tools
-# Description : Tiledesk - Helpdesk/Live Chat (c/u/s/r/i):
-
-installTiledesk()
-{
- local config_variables="$1"
-
- if [[ "$tiledesk" == *[cCtTuUsSrRiI]* ]]; then
- dockerConfigSetupToContainer silent tiledesk;
- local app_name=$CFG_TILEDESK_APP_NAME
- initializeAppVariables $app_name;
- fi
-
- if [[ "$tiledesk" == *[cC]* ]]; then
- editAppConfig $app_name;
- fi
-
- if [[ "$tiledesk" == *[uU]* ]]; then
- dockerUninstallApp $app_name;
- fi
-
- if [[ "$tiledesk" == *[sS]* ]]; then
- dockerComposeDown $app_name;
- fi
-
- if [[ "$tiledesk" == *[rR]* ]]; then
- dockerComposeRestart $app_name;
- fi
-
- if [[ "$tiledesk" == *[iI]* ]]; then
- echo ""
- echo "##########################################"
- echo "### Install $app_name"
- echo "##########################################"
- echo ""
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up install folder and config file for $app_name."
- echo ""
-
- dockerConfigSetupToContainer "loud" "$app_name" "install" "$config_variables";
- isSuccessful "Install folders and Config files have been setup for $app_name."
-
- ((menu_number++))
- echo ""
-
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Setting up the $app_name docker-compose.yml file."
- echo ""
-
- dockerComposeSetupFile $app_name;
-
- local result=$(cd $containers_dir$app_name && sudo curl https://raw.githubusercontent.com/Tiledesk/tiledesk-deployment/master/docker-compose/docker-compose.yml --output docker-compose.yml)
- checkSuccess "Downloading docker-compose.yml from $app_name GitHub"
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating file permissions before starting."
- echo ""
-
- fixPermissionsBeforeStart $app_name;
- ((menu_number++))
-
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- dockerComposeUpdateAndStartApp $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running the docker-compose.yml to install and start $app_name"
- echo ""
-
- if [[ "$OS_TYPE" == "Ubuntu" || "$OS_TYPE" == "Debian" ]]; then
- if [[ $CFG_DOCKER_INSTALL_TYPE == "rootless" ]]; then
- local result=$(dockerCommandRunInstallUser "docker compose -f docker-compose.yml -f docker-compose.$app_name.yml down")
- checkSuccess "Shutting down docker-compose.$app_name.yml"
- if [[ "$public" == "true" ]]; then
- local result=$(dockerCommandRunInstallUser "EXTERNAL_BASE_URL="https://$domain_full" EXTERNAL_MQTT_BASE_URL="wss://$domain_full" docker compose -f docker-compose.yml -f docker-compose.$app_name.yml up -d")
- checkSuccess "Starting public docker-compose.$app_name.yml"
- else
- local result=$(dockerCommandRunInstallUser "docker compose -f docker-compose.yml -f docker-compose.$app_name.yml up -d")
- checkSuccess "Starting standard docker-compose.$app_name.yml"
- fi
- elif [[ $CFG_DOCKER_INSTALL_TYPE == "rooted" ]]; then
- local result=$(sudo docker compose -f docker-compose.yml -f docker-compose.$app_name.yml down)
- checkSuccess "Shutting down docker-compose.$app_name.yml"
- if [[ "$public" == "true" ]]; then
- local result=$(EXTERNAL_BASE_URL="https://$domain_full" EXTERNAL_MQTT_BASE_URL="wss://$domain_full" sudo docker compose -f docker-compose.yml -f docker-compose.$app_name.yml up -d)
- checkSuccess "Starting public docker-compose.$app_name.yml"
- else
- local result=$(sudo docker compose -f docker-compose.yml -f docker-compose.$app_name.yml up -d)
- checkSuccess "Starting standard docker-compose.$app_name.yml"
- fi
- fi
- fi
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Application specific updates (if required)"
- echo ""
-
- appUpdateSpecifics $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Running Headscale setup (if required)"
- echo ""
-
- setupHeadscale $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Adding $app_name to the Apps Database table."
- echo ""
-
- databaseInstallApp $app_name;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. Updating WebUI config file."
- echo ""
-
- webuiContainerSetup $app_name install;
-
- ((menu_number++))
- echo ""
- echo "---- $menu_number. You can find $app_name files at $containers_dir$app_name"
- echo ""
- echo " You can now navigate to your new service using one of the options below : "
- echo ""
-
- menuShowFinalMessages $app_name;
-
- menu_number=0
- #sleep 3s
- cd
- fi
- tiledesk=n
-}
diff --git a/scripts/unused/OLD_CONTAINERS/tiledesk/tiledesk.svg b/scripts/unused/OLD_CONTAINERS/tiledesk/tiledesk.svg
deleted file mode 100755
index 8ada601..0000000
--- a/scripts/unused/OLD_CONTAINERS/tiledesk/tiledesk.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
diff --git a/scripts/unused/check_wireguard.sh b/scripts/unused/check_wireguard.sh
deleted file mode 100755
index 635df40..0000000
--- a/scripts/unused/check_wireguard.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-checkWireguardRequirement()
-{
- if [[ $CFG_REQUIREMENT_WIREGUARD == "true" ]]; then
- # Check if WireGuard is already installed and load params
- if [[ -e /etc/wireguard/params ]]; then
- isSuccessful "Wireguard is installed."
- else
- isNotice "Wireguard is not installed."
- ((preinstallneeded++))
- fi
- fi
-}
\ No newline at end of file
diff --git a/scripts/unused/manage_wireguard.sh b/scripts/unused/manage_wireguard.sh
deleted file mode 100755
index e0a007a..0000000
--- a/scripts/unused/manage_wireguard.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-
-wireguardManageMenu()
-{
- # Enable input
- stty echo
-
- while true; do
- isHeader "Wireguard Manager"
- echo "Built from: https://github.com/angristan/wireguard-install"
- echo ""
- isOption "1. Add a new user"
- isOption "2. List all users"
- isOption "3. Revoke existing user"
- isOption "4. Uninstall WireGuard"
- isOption "x. Exit"
- echo ""
- isQuestion "What is your choice: "
- read -rp "" wireguard_menu_option
-
- case "${wireguard_menu_option}" in
- 1)
- wireguardNewClient
- ;;
- 2)
- wireguardListClients
- ;;
- 3)
- wireguardRevokeClient
- ;;
- 4)
- wireguardUninstall
- ;;
- x)
- resetToMenu;
- ;;
- *)
- isNotice "Invalid choice. Please select a valid option."
- ;;
- esac
- done
-}
diff --git a/scripts/unused/manager/check_manager.sh b/scripts/unused/manager/check_manager.sh
deleted file mode 100755
index 2ccb600..0000000
--- a/scripts/unused/manager/check_manager.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-checkManagerRequirement()
-{
- if [[ $CFG_DOCKER_MANAGER_ENABLED == "true" ]]; then
- ### Docker Manager User Creation
- if userExists "$CFG_DOCKER_MANAGER_USER"; then
- isSuccessful "The Docker Manager User appears to be setup."
- else
- isNotice "The Docker Manager User is not setup."
- ((preinstallneeded++))
- fi
- fi
-}
\ No newline at end of file
diff --git a/scripts/unused/manager/install_user_manager.sh b/scripts/unused/manager/install_user_manager.sh
deleted file mode 100755
index e3ee53e..0000000
--- a/scripts/unused/manager/install_user_manager.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/bash
-
-installDockerManagerUser()
-{
- if [[ "$CFG_DOCKER_MANAGER_ENABLED" == "true" ]]; then
- if [[ "$OS_TYPE" == "Ubuntu" || "$OS_TYPE" == "Debian" ]]; then
- if ! userExists "$CFG_DOCKER_MANAGER_USER"; then
- isHeader "Installing $CFG_DOCKER_MANAGER_USER"
-
- isNotice "User '$CFG_DOCKER_MANAGER_USER' does not exist, starting creation..."
-
- # Create the User Account
- local result=$(runSystem useradd -m -s /bin/bash "$CFG_DOCKER_MANAGER_USER")
- checkSuccess "Adding user via useradd command"
-
- local result=$(echo "$CFG_DOCKER_MANAGER_USER:$CFG_DOCKER_MANAGER_PASS" | sudo chpasswd)
- checkSuccess "Setting up login password"
-
- local result=$(sudo -u "$CFG_DOCKER_MANAGER_USER" mkdir -p /home/$CFG_DOCKER_MANAGER_USER/.ssh/)
- checkSuccess "Creating /home/$CFG_DOCKER_MANAGER_USER/.ssh folder"
-
- local result=$(sudo -u "$CFG_DOCKER_MANAGER_USER" ssh-keygen -t ed25519 -b 4096 -f "/home/$CFG_DOCKER_MANAGER_USER/.ssh/ssh_key_${CFG_INSTALL_NAME}_${CFG_DOCKER_MANAGER_USER}" -N "passphrase")
- checkSuccess "Setting up SSH-Keygen in /home/$CFG_DOCKER_MANAGER_USER/.ssh"
-
- # SSH configuration directory
- config_file="/home/$CFG_DOCKER_MANAGER_USER/.ssh/config"
-
- # Check if the config file already exists
- if [ -f "$config_file" ]; then
- isNotice "The config file already exists. Updating the existing file..."
- else
- local result=$(createTouch "$config_file" $docker_install_user)
- checkSuccess "Creating config file"
- local result=$(sudo chmod 600 "$config_file")
- checkSuccess "Changing permissions to config file"
- fi
-
- # Add the ServerAliveInterval option to the config file
- if sudo grep -q "ServerAliveInterval" "$config_file"; then
- isNotice "ServerAliveInterval is already configured in the config file."
- else
- local result=$(echo -e "Host *\n ServerAliveInterval 60" | sudo tee -a "$config_file" >/dev/null)
- checkSuccess "Adding ServerAliveInterval to the config file."
- fi
-
- local result=$(source ~/.bashrc)
- checkSuccess "Reloading .bashrc"
-
- # Marker-guard the append (matching the rootless .bashrc pattern)
- # so a re-run or a user delete+recreate can't duplicate the block.
- if sudo grep -q "### LibrePortal Manager User Start" "$sshd_config"; then
- isNotice "Manager-user SSH server config already present — skipping."
- else
- local result=$(sudo bash -c "cat >> $sshd_config <&1)
- checkSuccess "Removing the '$CFG_DOCKER_MANAGER_USER' user"
-
- # Remove the Docker Manager User specific block from $sshd_config
- local result=$(sudo sed -i '/### LibrePortal Manager User Start/,/### LibrePortal Manager User End/d' $sshd_config)
- checkSuccess "Removing the Docker Manager User from $sshd_config."
-
- # Restart SSH Service
- local result=$(runSystem service ssh restart)
- checkSuccess "Restarting SSH Service"
- fi
- fi
-}
\ No newline at end of file
diff --git a/scripts/unused/ssh_manager.sh b/scripts/unused/ssh_manager.sh
deleted file mode 100755
index e6f9581..0000000
--- a/scripts/unused/ssh_manager.sh
+++ /dev/null
@@ -1,278 +0,0 @@
-#!/bin/bash
-
-# Used for Sending SSH keys to remote hosts
-installSSHRemoteList()
-{
- if [[ "$CFG_REQUIREMENT_SSHREMOTE" == "true" ]]; then
- if [[ "$setupSSHRemoteKeys" == true ]]; then
- local app_name="$1"
- echo ""
- echo "############################################"
- echo "###### Remote SSH Install ######"
- echo "############################################"
- echo ""
-
- # Check if sqlite3 is available
- if ! command -v sqlite3 &> /dev/null; then
- isNotice "sqlite3 command not found. Make sure it's installed."
- fi
-
- # Check if database file is available
- if [ ! -f "$docker_dir/$db_file" ] ; then
- isNotice "Database file not found. Make sure it's installed."
- fi
-
- # Check if SSH hosts are configured (configs should already be loaded)
- if [[ -z "$CFG_IPS_SSH_SETUP" ]]; then
- echo "No hosts found in the configuration."
- echo ""
- else
- # Use the CFG_IPS_SSH_SETUP variable directly
- IFS=',' read -ra ip_addresses <<< "$CFG_IPS_SSH_SETUP"
-
- for ip in "${ip_addresses[@]}"; do
- results=$(sqlite3 "$docker_dir/$db_file" "SELECT COUNT(*) FROM ssh WHERE ip = '$ip';")
- if [ "$results" -eq 0 ]; then
- isNotice "Copying SSH public key to $ip..."
- installSSHKeyToHost "$ip"
- databaseSSHInsert $ip;
- else
- if [[ "$toolinstallremotesshlist" == [yY] ]]; then
- while true; do
- isNotice "Make sure you have the host setup and ready with the LibrePortal preinstallation before doing this!"
- isQuestion "Is $ip prepared with the LibrePortal pre-installation? (y/n): "
- read -rp "" ishostsetupprompt
- if [[ -n "$ishostsetupprompt" ]]; then
- break
- fi
- isNotice "Please provide a valid input."
- done
- if [[ "$ishostsetupprompt" == [yY] ]]; then
- while true; do
- isQuestion "Record found for $ip. Do you want to reinstall? (y/n): "
- read -rp "" toolreinstallremotessh
- if [[ -n "$toolreinstallremotessh" ]]; then
- break
- fi
- isNotice "Please provide a valid input."
- done
- if [[ "$toolreinstallremotessh" == [yY] ]]; then
- ## Start copy
- isNotice "Copying SSH public key to $ip..."
- installSSHKeyToHost "$ip"
- databaseSSHInsert $ip;
- fi
- else
- isError "Please setup your host $ip with the LibrePortal pre-installation"
- fi
- else
- isNotice "All SSH Keys are already setup."
- isNotice "'Install Remote SSH Keys' option in the tools list if you want to reinstall any keys."
- fi
- fi
- done
- # Random note - Not sure how secure having all passwords saved for SSH, so not adding
- fi
- fi
- fi
-}
-
-installSSHKeyToHost()
-{
- local host=$1
- local ssh_key_file="$ssh_dir$CFG_DOCKER_MANAGER_USER/ssh_key_${CFG_INSTALL_NAME}_${CFG_DOCKER_MANAGER_USER}.pub"
-
- # Check if the specified SSH key file exists
- if [ ! -f "$ssh_key_file" ]; then
- isError "The SSH key file '$ssh_key_file' does not exist."
- fi
-
-# Copy the SSH public key to the remote directory using sftp
-local result=$(sftp -oBatchMode=no -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null "$CFG_DOCKER_MANAGER_USER@$host" < /dev/null; then
- isNotice "sqlite3 command not found. Make sure it's installed."
- fi
-
- # Check if database file is available
- if [ ! -f "$docker_dir/$db_file" ] ; then
- isNotice "Database file not found. Make sure it's installed."
- fi
-
- # Remove old keys from the authorized_keys file and the database
- updateAuthorizedKeysAndDatabase "$ssh_directory"
-
- updateSSHPermissions
-
- # Reloading SSH Service
- local result=$(sudo service ssh reload)
- checkSuccess "Reloading the SSH Service"
-
- isSuccessful "SSH Key Scan completed successfully."
-}
-
-# Function to add an SSH public key from a file to the authorized_keys file and the database
-addSSHKeyToAuthorizedKeysAndDatabase()
-{
- local key_file="$1"
- local ssh_directory="$2"
- local auth_key_file="$ssh_directory/authorized_keys" # Define auth_key_file here
-
- # Get the filename without the path
- local key_filename=$(basename "$key_file")
-
- #echo "DEBUG: Adding SSH public key from $key_filename to authorized_keys file."
-
- # Check if the specified SSH public key file exists
- if [ -f "$key_file" ]; then
- # Ensure the authorized_keys file is empty or create it if it doesn't exist
- if [ ! -f "$auth_key_file" ]; then
- createTouch "$auth_key_file" $docker_install_user
- fi
-
- # Check if the key already exists in the file
- local ssh_public_key=$(cat "$key_file")
- local key_file_name=$(basename "$key_file")
- local auth_key_file_name=$(basename "$auth_key_file")
-
- if ! grep -Fxq "$ssh_public_key" "$auth_key_file"; then
- #echo "DEBUG: Adding key from file: $key_file"
- #echo "DEBUG: Key filename: $key_filename"
-
- # Add the key to the authorized_keys file
- echo "$ssh_public_key" >> "$auth_key_file"
- checkSuccess "SSH public key from $key_filename added to $auth_key_file_name."
- #else
- #echo "NOTICE: SSH Key already exists in the authorized_keys file. Skipping..."
- fi
-
- # Hash the public key content
- local ssh_public_key_hash=$(echo "$ssh_public_key" | sha256sum | cut -d' ' -f1)
-
- # Check if the key already exists in the database
- local key_in_db=$(sqlite3 "$docker_dir/$db_file" "SELECT COUNT(*) FROM ssh_keys WHERE name = '$key_filename';")
-
- if [ "$key_in_db" -eq 0 ]; then
- # Key doesn't exist in the database, insert it
- local result=$(sqlite3 "$docker_dir/$db_file" "INSERT INTO ssh_keys (name, hash, date, time) VALUES ('$key_filename', '$ssh_public_key_hash', '$current_date', '$current_time');")
- checkSuccess "SSH public key from $key_filename added to the database."
- else
- # Key exists in the database, check if its content has changed
- local db_key_hash=$(sqlite3 "$docker_dir/$db_file" "SELECT hash FROM ssh_keys WHERE name = '$key_filename';")
- if [ "$db_key_hash" != "$ssh_public_key_hash" ]; then
- # Key content has changed, update the record
- local result=$(sqlite3 "$docker_dir/$db_file" "UPDATE ssh_keys SET hash = '$ssh_public_key_hash', date = '$current_date', time = '$current_time' WHERE name = '$key_filename';")
- checkSuccess "SSH Key content from $key_filename updated in the database."
- #else
- #echo "NOTICE: SSH Key content from $key_filename already exists in the database. Skipping update..."
- fi
- fi
- else
- isError "SSH public key file not found: $key_filename"
- fi
-}
-
-# Function to remove an SSH public key from the authorized_keys file and the database
-removeSSHKeyFromAuthorizedKeysAndDatabase()
-{
- if [[ "$CFG_REQUIREMENT_SSHREMOTE" == "true" ]]; then
- local key_filename="$1"
- local ssh_directory="$2" # Define ssh_directory here
- local auth_key_file="$ssh_directory/authorized_keys" # Define auth_key_file here
-
- # Remove the key from the authorized_keys file
- local result=$(sudo sed -i "/$key_filename/d" "$auth_key_file")
- checkSuccess "SSH public key '$key_filename' removed from authorized_keys file."
-
- # Remove the key from the database
- db_query="DELETE FROM ssh_keys WHERE name = '$key_filename';"
- local result=$(sqlite3 "$docker_dir/$db_file" "$db_query")
- checkSuccess "SSH public key '$key_filename' removed from the database."
- fi
-}
-
-updateSSHPermissions()
-{
- local result=$(sudo chmod 700 $ssh_dir$CFG_DOCKER_MANAGER_USER/)
- checkSuccess "Adjusting permissions for $ssh_dir$CFG_DOCKER_MANAGER_USER"
-
- # SSH configuration directory
- auth_key="$ssh_dir$CFG_DOCKER_MANAGER_USER/authorized_keys"
- # Check if the config file already exists
- if [ -f "$auth_key" ]; then
- local result=$(sudo chmod 600 $auth_key)
- checkSuccess "Adjusting permissions for authorized_keys"
- fi
-
- local result=$(sudo chmod +rx $ssh_dir $ssh_dir$CFG_DOCKER_MANAGER_USER)
- checkSuccess "Adding read and write permissions for ssh folders"
-
- local result=$(sudo chown -R $CFG_DOCKER_MANAGER_USER:$CFG_DOCKER_MANAGER_USER $ssh_dir$CFG_DOCKER_MANAGER_USER)
- checkSuccess "Adding chown to $CFG_DOCKER_MANAGER_USER user for ssh folders"
-
- local result=$(sudo find $ssh_dir$CFG_DOCKER_MANAGER_USER -type f -name "*.pub" -exec sudo chmod 600 {} \;)
- checkSuccess "Updating all permissions of keys to 600"
-}
diff --git a/scripts/unused/wireguard/client/check_clients.sh b/scripts/unused/wireguard/client/check_clients.sh
deleted file mode 100755
index 4de7b51..0000000
--- a/scripts/unused/wireguard/client/check_clients.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-wireguardCheckClients()
-{
- local WIREGUARD_NUMBER_OF_CLIENTS=$(grep -c -E "^### Client" "/etc/wireguard/${CFG_WG_SERVER_NIC}.conf")
- if [[ ${WIREGUARD_NUMBER_OF_CLIENTS} == '0' ]]; then
- echo ""
- isError "You have no existing clients!"
- echo ""
- wireguardManageMenu;
- fi
-}
diff --git a/scripts/unused/wireguard/client/list_clients.sh b/scripts/unused/wireguard/client/list_clients.sh
deleted file mode 100755
index b4e8c9e..0000000
--- a/scripts/unused/wireguard/client/list_clients.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-wireguardListClients()
-{
- isHeader "Wireguard Client List"
-
- wireguardCheckClients;
-
- runSystem grep -E "^### Client" "/etc/wireguard/${CFG_WG_SERVER_NIC}.conf" | cut -d ' ' -f 3 | nl -s ') '
-}
diff --git a/scripts/unused/wireguard/client/revoke_client.sh b/scripts/unused/wireguard/client/revoke_client.sh
deleted file mode 100755
index 2eced92..0000000
--- a/scripts/unused/wireguard/client/revoke_client.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-
-wireguardRevokeClient()
-{
- isHeader "Wireguard Client Removal"
-
- wireguardCheckClients;
-
- echo ""
- echo "Select the existing client you want to revoke"
- runSystem grep -E "^### Client" "/etc/wireguard/${CFG_WG_SERVER_NIC}.conf" | cut -d ' ' -f 3 | nl -s ') '
- until [[ ${WIREGUARD_CLIENT_NUMBER} -ge 1 && ${WIREGUARD_CLIENT_NUMBER} -le ${WIREGUARD_NUMBER_OF_CLIENTS} ]]; do
- if [[ ${WIREGUARD_CLIENT_NUMBER} == '1' ]]; then
- read -rp "Select one client [1]: " WIREGUARD_CLIENT_NUMBER
- else
- read -rp "Select one client [1-${WIREGUARD_NUMBER_OF_CLIENTS}]: " WIREGUARD_CLIENT_NUMBER
- fi
- done
-
- # match the selected number to a client name
- local WIREGUARD_CLIENT_NAME=$(runSystem grep -E "^### Client" "/etc/wireguard/${CFG_WG_SERVER_NIC}.conf" | cut -d ' ' -f 3 | sed -n "${WIREGUARD_CLIENT_NUMBER}"p)
-
- result=$(runSystem sed -i "/^### Client ${WIREGUARD_CLIENT_NAME}\$/,/^$/d" "/etc/wireguard/${CFG_WG_SERVER_NIC}.conf")
- checkSuccess "Removed [Peer] block matching $WIREGUARD_CLIENT_NAME"
-
- result=$(runSystem rm -f "${CFG_WG_HOME_DIR}/${CFG_WG_SERVER_NIC}-client-${WIREGUARD_CLIENT_NAME}.conf")
- checkSuccess "Removed generated client file for $WIREGUARD_CLIENT_NAME"
-
- result=$(runSystem wg syncconf "${CFG_WG_SERVER_NIC}" <(runSystem wg-quick strip "${CFG_WG_SERVER_NIC}"))
- checkSuccess "Restart wireguard to apply changes"
-}
diff --git a/scripts/unused/wireguard/config_wireguard b/scripts/unused/wireguard/config_wireguard
deleted file mode 100755
index e5cd2f7..0000000
--- a/scripts/unused/wireguard/config_wireguard
+++ /dev/null
@@ -1,7 +0,0 @@
-# Wireguard - No need to configure unless you know what you are doing.
-CFG_WG_HOME_DIR="/docker/wireguard/"
-CFG_WG_SERVER_NIC="wg0"
-CFG_WG_SERVER_IPV4="10.8.0.1"
-CFG_WG_SERVER_PORT="52180"
-CFG_WG_ALLOWED_IPS="0.0.0.0/0"
-CFG_WG_DEFAULT_CLIENT="user"
\ No newline at end of file
diff --git a/scripts/unused/wireguard/install_standalone.sh b/scripts/unused/wireguard/install_standalone.sh
deleted file mode 100755
index 2f6f17a..0000000
--- a/scripts/unused/wireguard/install_standalone.sh
+++ /dev/null
@@ -1,255 +0,0 @@
-#!/bin/bash
-
-# Secure WireGuard server installer
-# Adapted from : https://github.com/angristan/wireguard-install
-
-installStandaloneWireGuard()
-{
- if [[ $CFG_REQUIREMENT_WIREGUARD == "true" ]]; then
- # Check if WireGuard is already installed and load params
- if [[ ! -e /etc/wireguard/params ]]; then
- isHeader "Wireguard Installer"
- echo "Based on : https://github.com/angristan/wireguard-install"
- echo ""
-
- local WG_CAN_INSTALL="true"
- local WG_CHECK_VIRTUALIZATION=$(systemd-detect-virt)
-
- if [ "$WG_CHECK_VIRTUALIZATION" == "openvz" ]; then
- echo "OpenVZ is not supported"
- local WG_CAN_INSTALL="false"
- fi
-
- if [ "$WG_CHECK_VIRTUALIZATION" == "lxc" ]; then
- echo "LXC is not supported (yet)."
- echo "WireGuard can technically run in an LXC container,"
- echo "but the kernel module has to be installed on the host,"
- echo "the container has to be run with some specific parameters"
- echo "and only the tools need to be installed in the container."
- local WG_CAN_INSTALL="false"
- fi
-
- if [[ $WG_CAN_INSTALL == 'true' ]]; then
-
- # Install WireGuard tools and module
- if [[ "$OS_TYPE" == "Ubuntu" || "$OS_TYPE" == "Debian" ]]; then
- # All the privileged work (apt, /etc/wireguard keys + server
- # config, sysctl ip_forward, wg-quick service) runs in the
- # root-owned libreportal-wg helper, which reads + validates the
- # CFG_WG_* settings itself.
- runWg install "$server_nic" "$public_ip_v4" >/dev/null
- checkSuccess "Installed standalone WireGuard server (/etc/wireguard/${CFG_WG_SERVER_NIC}.conf)"
-
- # Update DNS after the helper apt-installed resolvconf
- updateDNS "" standalonewireguard;
-
- portUse wireguardstandalone $CFG_WG_SERVER_PORT install;
- portOpenwireguardstandalone $CFG_WG_SERVER_PORT/udp install;
-
- wireguardNewClient install;
-
- # Check if WireGuard is running
- systemctl is-active --quiet "wg-quick@${CFG_WG_SERVER_NIC}"
- WIREGUARD_RUNNING=$?
-
- # WireGuard might not work if we updated the kernel. Tell the user to reboot
- if [[ ${WIREGUARD_RUNNING} -ne 0 ]]; then
- isNotice "***WARNING*** WireGuard does not seem to be running."
- isNotice "You can check if WireGuard is running with: systemctl status wg-quick@${CFG_WG_SERVER_NIC}${NC}"
- isNotice "If you get something like 'Cannot find device ${CFG_WG_SERVER_NIC}', please reboot!"
- else # WireGuard is running
- isSuccessful "WireGuard is running."
- isSuccessful "You can check the status of WireGuard with: systemctl status wg-quick@${CFG_WG_SERVER_NIC}"
- isNotice "If you don't have internet connectivity from your client, try to reboot the server."
- fi
- fi
- fi
- #else
- #isNotice "Wireguard is already installed, no need to install."
- fi
- fi
-}
-
-wireguardNewClient()
-{
- local type="$1"
-
- isHeader "Wireguard Client Creation"
- isNotice "The client name must consist of alphanumeric character(s)."
- isNotice "It may also include underscores or dashes and can't exceed 15 chars."
- echo ""
-
- until [[ ${WIREGUARD_CLIENT_NAME} =~ ^[a-zA-Z0-9_-]+$ && ${WIREGUARD_CLIENT_EXISTS} == '0' && ${#WIREGUARD_CLIENT_NAME} -lt 16 ]]; do
- if [[ $type == "install" ]]; then
- WIREGUARD_CLIENT_NAME="$CFG_WG_DEFAULT_CLIENT"
- else
- read -rp "Client name: " -e WIREGUARD_CLIENT_NAME
- fi
- local WIREGUARD_CLIENT_EXISTS=$(runSystem grep -c -E "^### Client ${WIREGUARD_CLIENT_NAME}\$" "/etc/wireguard/${CFG_WG_SERVER_NIC}.conf")
-
- if [[ ${WIREGUARD_CLIENT_EXISTS} != 0 ]]; then
- echo ""
- isNotice "A client with the specified name was already created, please choose another name."
- echo ""
- fi
- done
-
- for WIREGUARD_DOT_IP in {2..254}; do
- local WIREGUARD_DOT_EXISTS=$(runSystem grep -c "${CFG_WG_SERVER_IPV4::-1}${WIREGUARD_DOT_IP}" "/etc/wireguard/${CFG_WG_SERVER_NIC}.conf")
- if [[ ${WIREGUARD_DOT_EXISTS} == '0' ]]; then
- break
- fi
- done
-
- if [[ ${WIREGUARD_DOT_EXISTS} == '1' ]]; then
- echo ""
- isNotice "The subnet configured supports only 253 clients."
- echo ""
- fi
-
- # Generate key pair for the client
- local WIREGUARD_CLIENT_PRIV_KEY=$(runSystem wg genkey)
- local WIREGUARD_CLIENT_PUB_KEY=$(echo "${WIREGUARD_CLIENT_PRIV_KEY}" | runSystem wg pubkey)
- local WIREGUARD_CLIENT_PRE_SHARED_KEY=$(runSystem wg genpsk)
- local WIREGUARD_ENDPOINT="${public_ip_v4}:${CFG_WG_SERVER_PORT}"
-
- # Create client file
- createTouch "${CFG_WG_HOME_DIR}/${CFG_WG_SERVER_NIC}-client-${WIREGUARD_CLIENT_NAME}.conf" $sudo_user_name
-
- # Create client file and add the server as a peer
- echo "[Interface]
-PrivateKey = ${WIREGUARD_CLIENT_PRIV_KEY}
-Address = ${CFG_WG_SERVER_IPV4}/32
-DNS = ${CFG_DNS_SERVER_1},${CFG_DNS_SERVER_2}
-
-[Peer]
-PublicKey = ${SERVER_PUB_KEY}
-PresharedKey = ${WIREGUARD_CLIENT_PRE_SHARED_KEY}
-Endpoint = ${WIREGUARD_ENDPOINT}
-AllowedIPs = ${CFG_WG_ALLOWED_IPS}" | runSystem tee "${CFG_WG_HOME_DIR}/${CFG_WG_SERVER_NIC}-client-${WIREGUARD_CLIENT_NAME}.conf" >/dev/null
-
- # Add the client as a peer to the server
- echo -e "\n### Client ${WIREGUARD_CLIENT_NAME}
-[Peer]
-PublicKey = ${WIREGUARD_CLIENT_PUB_KEY}
-PresharedKey = ${WIREGUARD_CLIENT_PRE_SHARED_KEY}
-AllowedIPs = ${CFG_WG_ALLOWED_IPS}" | runSystem tee -a "/etc/wireguard/${CFG_WG_SERVER_NIC}.conf" >/dev/null
-
- #result=$(runSystem wg syncconf ${CFG_WG_SERVER_NIC} /etc/wireguard/${CFG_WG_SERVER_NIC}.conf)
- #checkSuccess "Syncing config file for $CFG_WG_SERVER_NIC"
-
- #result=$(runSystem systemctl stop "wg-quick@${CFG_WG_SERVER_NIC}")
- #checkSuccess "Stopped wg-quick@${CFG_WG_SERVER_NIC} service."
- #result=$(runSystem systemctl start "wg-quick@${CFG_WG_SERVER_NIC}")
- #checkSuccess "Started wg-quick@${CFG_WG_SERVER_NIC} service."
-
- # Generate QR code if qrencode is installed
- if command -v qrencode &>/dev/null; then
- isNotice "Here is your client config file as a QR Code:"
- runSystem qrencode -t ansiutf8 -l L <"${CFG_WG_HOME_DIR}/${CFG_WG_SERVER_NIC}-client-${WIREGUARD_CLIENT_NAME}.conf"
- echo ""
- fi
-
- isSuccessful "Your client config file is in ${CFG_WG_HOME_DIR}/${CFG_WG_SERVER_NIC}-client-${WIREGUARD_CLIENT_NAME}.conf"
-}
-
-wireguardListClients()
-{
- isHeader "Wireguard Client List"
-
- wireguardCheckClients;
-
- runSystem grep -E "^### Client" "/etc/wireguard/${CFG_WG_SERVER_NIC}.conf" | cut -d ' ' -f 3 | nl -s ') '
-}
-
-wireguardRevokeClient()
-{
- isHeader "Wireguard Client Removal"
-
- wireguardCheckClients;
-
- echo ""
- echo "Select the existing client you want to revoke"
- runSystem grep -E "^### Client" "/etc/wireguard/${CFG_WG_SERVER_NIC}.conf" | cut -d ' ' -f 3 | nl -s ') '
- until [[ ${WIREGUARD_CLIENT_NUMBER} -ge 1 && ${WIREGUARD_CLIENT_NUMBER} -le ${WIREGUARD_NUMBER_OF_CLIENTS} ]]; do
- if [[ ${WIREGUARD_CLIENT_NUMBER} == '1' ]]; then
- read -rp "Select one client [1]: " WIREGUARD_CLIENT_NUMBER
- else
- read -rp "Select one client [1-${WIREGUARD_NUMBER_OF_CLIENTS}]: " WIREGUARD_CLIENT_NUMBER
- fi
- done
-
- # match the selected number to a client name
- local WIREGUARD_CLIENT_NAME=$(runSystem grep -E "^### Client" "/etc/wireguard/${CFG_WG_SERVER_NIC}.conf" | cut -d ' ' -f 3 | sed -n "${WIREGUARD_CLIENT_NUMBER}"p)
-
- result=$(runSystem sed -i "/^### Client ${WIREGUARD_CLIENT_NAME}\$/,/^$/d" "/etc/wireguard/${CFG_WG_SERVER_NIC}.conf")
- checkSuccess "Removed [Peer] block matching $WIREGUARD_CLIENT_NAME"
-
- result=$(runSystem rm -f "${CFG_WG_HOME_DIR}/${CFG_WG_SERVER_NIC}-client-${WIREGUARD_CLIENT_NAME}.conf")
- checkSuccess "Removed generated client file for $WIREGUARD_CLIENT_NAME"
-
- result=$(runSystem wg syncconf "${CFG_WG_SERVER_NIC}" <(runSystem wg-quick strip "${CFG_WG_SERVER_NIC}"))
- checkSuccess "Restart wireguard to apply changes"
-}
-
-wireguardCheckClients()
-{
- local WIREGUARD_NUMBER_OF_CLIENTS=$(grep -c -E "^### Client" "/etc/wireguard/${CFG_WG_SERVER_NIC}.conf")
- if [[ ${WIREGUARD_NUMBER_OF_CLIENTS} == '0' ]]; then
- echo ""
- isError "You have no existing clients!"
- echo ""
- wireguardManageMenu;
- fi
-}
-
-wireguardUninstall()
-{
- isHeader "Wireguard Uninstaller"
- isNotice "***WARNING*** This will uninstall WireGuard and remove all the configuration files!"
- isNotice "Please backup the /etc/wireguard directory if you want to keep your configuration files."
- echo ""
- isQuestion "Do you really want to remove WireGuard? (y/n): "
- read -p "" WIREGUARD_REMOVE
-
- if [[ $WIREGUARD_REMOVE == [yY] ]]; then
- if [[ "$OS_TYPE" == "Ubuntu" || "$OS_TYPE" == "Debian" ]]; then
- result=$(runSystem systemctl stop "wg-quick@${CFG_WG_SERVER_NIC}")
- checkSuccess "Stopped wg-quick@${CFG_WG_SERVER_NIC} service."
-
- result=$(runSystem systemctl disable "wg-quick@${CFG_WG_SERVER_NIC}")
- checkSuccess "Disabled wg-quick@${CFG_WG_SERVER_NIC} service."
-
- if [[ "$OS_TYPE" == "Ubuntu" || "$OS_TYPE" == "Debian" ]]; then
- result=$(runSystem apt-get remove -y wireguard wireguard-tools qrencode)
- checkSuccess "Removed wireguard wireguard-tools qrencode"
- fi
-
- result=$(runSystem rm -rf /etc/wireguard)
- checkSuccess "Deleted /etc/wireguard folder."
- result=$(runSystem rm -f /etc/sysctl.d/wg.conf)
- checkSuccess "Delete /etc/sysctl.d/wg.conf file."
-
- result=$(runSystem sysctl --system)
- checkSuccess "Reloaded sysctl"
-
- portUnuse wireguardstandalone $CFG_WG_SERVER_PORT install;
- portClose wireguardstandalone $CFG_WG_SERVER_PORT/udp install;
-
- # Check if WireGuard is running
- systemctl is-active --quiet "wg-quick@${CFG_WG_SERVER_NIC}"
- WIREGUARD_RUNNING=$?
-
- if [[ ${WIREGUARD_RUNNING} -eq 0 ]]; then
- isError "WireGuard failed to uninstall properly."
- wireguardManageMenu;
- else
- isSuccessful "WireGuard uninstalled successfully."
- wireguardManageMenu;
- fi
- fi
- else
- echo ""
- isNotice "Removal aborted!"
- fi
-}
diff --git a/scripts/unused/wireguard/uninstall_standalone.sh b/scripts/unused/wireguard/uninstall_standalone.sh
deleted file mode 100755
index 46011b7..0000000
--- a/scripts/unused/wireguard/uninstall_standalone.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash
-
-wireguardUninstall()
-{
- isHeader "Wireguard Uninstaller"
- isNotice "***WARNING*** This will uninstall WireGuard and remove all the configuration files!"
- isNotice "Please backup the /etc/wireguard directory if you want to keep your configuration files."
- echo ""
- isQuestion "Do you really want to remove WireGuard? (y/n): "
- read -p "" WIREGUARD_REMOVE
-
- if [[ $WIREGUARD_REMOVE == [yY] ]]; then
- if [[ "$OS_TYPE" == "Ubuntu" || "$OS_TYPE" == "Debian" ]]; then
- result=$(runSystem systemctl stop "wg-quick@${CFG_WG_SERVER_NIC}")
- checkSuccess "Stopped wg-quick@${CFG_WG_SERVER_NIC} service."
-
- result=$(runSystem systemctl disable "wg-quick@${CFG_WG_SERVER_NIC}")
- checkSuccess "Disabled wg-quick@${CFG_WG_SERVER_NIC} service."
-
- if [[ "$OS_TYPE" == "Ubuntu" || "$OS_TYPE" == "Debian" ]]; then
- result=$(runSystem apt-get remove -y wireguard wireguard-tools qrencode)
- checkSuccess "Removed wireguard wireguard-tools qrencode"
- fi
-
- result=$(runSystem rm -rf /etc/wireguard)
- checkSuccess "Deleted /etc/wireguard folder."
- result=$(runSystem rm -f /etc/sysctl.d/wg.conf)
- checkSuccess "Delete /etc/sysctl.d/wg.conf file."
-
- result=$(runSystem sysctl --system)
- checkSuccess "Reloaded sysctl"
-
- portUnuse wireguardstandalone $CFG_WG_SERVER_PORT install;
- portClose wireguardstandalone $CFG_WG_SERVER_PORT/udp install;
-
- # Check if WireGuard is running
- systemctl is-active --quiet "wg-quick@${CFG_WG_SERVER_NIC}"
- WIREGUARD_RUNNING=$?
-
- if [[ ${WIREGUARD_RUNNING} -eq 0 ]]; then
- isError "WireGuard failed to uninstall properly."
- wireguardManageMenu;
- else
- isSuccessful "WireGuard uninstalled successfully."
- wireguardManageMenu;
- fi
- fi
- else
- echo ""
- isNotice "Removal aborted!"
- fi
-}