Put commands on new lines & modified network configurations
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@ -2,3 +2,5 @@ certs/
|
|||||||
data/
|
data/
|
||||||
env/
|
env/
|
||||||
sql/
|
sql/
|
||||||
|
|
||||||
|
.env
|
||||||
|
49
compose.yml
49
compose.yml
@ -24,12 +24,13 @@ services:
|
|||||||
container_name: node-exporter
|
container_name: node-exporter
|
||||||
image: quay.io/prometheus/node-exporter:latest
|
image: quay.io/prometheus/node-exporter:latest
|
||||||
restart: always
|
restart: always
|
||||||
command: --path.rootfs=/host
|
command:
|
||||||
|
- --path.rootfs=/host
|
||||||
pid: host
|
pid: host
|
||||||
volumes:
|
volumes:
|
||||||
- /:/host:ro,rslave
|
- /:/host:ro,rslave
|
||||||
networks:
|
networks:
|
||||||
- service_network
|
- info_network
|
||||||
expose:
|
expose:
|
||||||
- 9100
|
- 9100
|
||||||
|
|
||||||
@ -39,7 +40,7 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
command:
|
command:
|
||||||
- --housekeeping_interval=30s
|
- --housekeeping_interval=30s
|
||||||
- --disable_metrics=disk,diskIO,network,tcp,udp,percpu,sched,process
|
- --disable_metrics=disk,diskIO,network,tcp,udp,percpu,sched,process # lower CPU usage
|
||||||
- --docker_only=true
|
- --docker_only=true
|
||||||
devices:
|
devices:
|
||||||
- /dev/kmsg
|
- /dev/kmsg
|
||||||
@ -50,7 +51,7 @@ services:
|
|||||||
- /var/lib/docker:/var/lib/docker:ro
|
- /var/lib/docker:/var/lib/docker:ro
|
||||||
- /dev/disk:/dev/disk:ro
|
- /dev/disk:/dev/disk:ro
|
||||||
networks:
|
networks:
|
||||||
- service_network
|
- info_network
|
||||||
expose:
|
expose:
|
||||||
- 8080
|
- 8080
|
||||||
|
|
||||||
@ -58,13 +59,15 @@ services:
|
|||||||
container_name: prometheus
|
container_name: prometheus
|
||||||
image: prom/prometheus:latest
|
image: prom/prometheus:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
command: --config.file=/config/prometheus.yml
|
command:
|
||||||
|
- --config.file=/config/prometheus.yml
|
||||||
user: 1001:0
|
user: 1001:0
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/prometheus/config:/config
|
- ./data/prometheus/config:/config
|
||||||
- ./data/prometheus/data:/prometheus
|
- ./data/prometheus/data:/prometheus
|
||||||
networks:
|
networks:
|
||||||
- service_network
|
- service_network
|
||||||
|
- info_network
|
||||||
expose:
|
expose:
|
||||||
- 9090
|
- 9090
|
||||||
|
|
||||||
@ -104,7 +107,7 @@ services:
|
|||||||
env_file: ./env/nextcloud.env
|
env_file: ./env/nextcloud.env
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/nextcloud:/var/www/html
|
- ./data/nextcloud:/var/www/html
|
||||||
- /mnt/storage/nextcloud:/var/www/html/data
|
- $LARGE_STORAGE_DIR/nextcloud:/var/www/html/data
|
||||||
networks:
|
networks:
|
||||||
- service_network
|
- service_network
|
||||||
- nextcloud_network
|
- nextcloud_network
|
||||||
@ -118,7 +121,10 @@ services:
|
|||||||
container_name: nextcloud-db
|
container_name: nextcloud-db
|
||||||
image: mariadb:10.6
|
image: mariadb:10.6
|
||||||
restart: always
|
restart: always
|
||||||
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
|
command:
|
||||||
|
- --transaction-isolation=READ-COMMITTED
|
||||||
|
- --log-bin=binlog
|
||||||
|
- --binlog-format=ROW
|
||||||
env_file: ./env/nextcloud-db.env
|
env_file: ./env/nextcloud-db.env
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/nextcloud-db:/var/lib/mysql
|
- ./data/nextcloud-db:/var/lib/mysql
|
||||||
@ -152,7 +158,8 @@ services:
|
|||||||
container_name: pterodactyl-db
|
container_name: pterodactyl-db
|
||||||
image: mariadb:10.5
|
image: mariadb:10.5
|
||||||
restart: always
|
restart: always
|
||||||
command: --default-authentication-plugin=mysql_native_password
|
command:
|
||||||
|
- --default-authentication-plugin=mysql_native_password
|
||||||
env_file: ./env/pterodactyl-db.env
|
env_file: ./env/pterodactyl-db.env
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/pterodactyl-db:/var/lib/mysql
|
- ./data/pterodactyl-db:/var/lib/mysql
|
||||||
@ -182,8 +189,8 @@ services:
|
|||||||
working_dir: /photoprism
|
working_dir: /photoprism
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/photoprism:/photoprism/storage
|
- ./data/photoprism:/photoprism/storage
|
||||||
- /mnt/storage/photoprism/import:/photoprism/import
|
- $LARGE_STORAGE_DIR/photoprism/import:/photoprism/import
|
||||||
- /mnt/storage/photoprism/originals:/photoprism/originals
|
- $LARGE_STORAGE_DIR/photoprism/originals:/photoprism/originals
|
||||||
networks:
|
networks:
|
||||||
- service_network
|
- service_network
|
||||||
- photoprism_network
|
- photoprism_network
|
||||||
@ -196,7 +203,14 @@ services:
|
|||||||
container_name: photoprism-db
|
container_name: photoprism-db
|
||||||
image: mariadb:10.10
|
image: mariadb:10.10
|
||||||
restart: always
|
restart: always
|
||||||
command: --innodb-buffer-pool-size=512M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
|
command:
|
||||||
|
- --innodb-buffer-pool-size=512M
|
||||||
|
- --transaction-isolation=READ-COMMITTED
|
||||||
|
- --character-set-server=utf8mb4
|
||||||
|
- --collation-server=utf8mb4_unicode_ci
|
||||||
|
- --max-connections=512
|
||||||
|
- --innodb-rollback-on-timeout=OFF
|
||||||
|
- --innodb-lock-wait-timeout=120
|
||||||
env_file: ./env/photoprism-db.env
|
env_file: ./env/photoprism-db.env
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/photoprism-db:/var/lib/mysql
|
- ./data/photoprism-db:/var/lib/mysql
|
||||||
@ -219,9 +233,10 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./data/jellyfin/config:/config
|
- ./data/jellyfin/config:/config
|
||||||
- ./data/jellyfin/cache:/cache
|
- ./data/jellyfin/cache:/cache
|
||||||
- /mnt/storage/media/movies:/movies
|
- $LARGE_STORAGE_DIR/media/movies:/movies
|
||||||
- /mnt/storage/media/shows:/shows
|
- $LARGE_STORAGE_DIR/media/shows:/shows
|
||||||
- /mnt/storage/media/books:/books
|
- $LARGE_STORAGE_DIR/media/books:/books
|
||||||
|
- $LARGE_STORAGE_DIR/media/yt:/yt
|
||||||
networks:
|
networks:
|
||||||
service_network:
|
service_network:
|
||||||
exposed_service_network:
|
exposed_service_network:
|
||||||
@ -233,7 +248,7 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file: ./env/gitea.env
|
env_file: ./env/gitea.env
|
||||||
volumes:
|
volumes:
|
||||||
- /mnt/storage/gitea:/data
|
- $LARGE_STORAGE_DIR/gitea:/data
|
||||||
networks:
|
networks:
|
||||||
- service_network
|
- service_network
|
||||||
- gitea_network
|
- gitea_network
|
||||||
@ -269,6 +284,7 @@ services:
|
|||||||
container_name: uptime-kuma
|
container_name: uptime-kuma
|
||||||
image: louislam/uptime-kuma:latest
|
image: louislam/uptime-kuma:latest
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
tty: true
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/uptime-kuma:/app/data
|
- ./data/uptime-kuma:/app/data
|
||||||
networks:
|
networks:
|
||||||
@ -276,8 +292,9 @@ services:
|
|||||||
expose:
|
expose:
|
||||||
- 3001
|
- 3001
|
||||||
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
|
info_network:
|
||||||
|
name: info_network
|
||||||
nextcloud_network:
|
nextcloud_network:
|
||||||
name: nextcloud_network
|
name: nextcloud_network
|
||||||
pterodactyl_network:
|
pterodactyl_network:
|
||||||
|
12
scripts/backup-all.sh
Executable file
12
scripts/backup-all.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
|
DEST_DIR="$1"
|
||||||
|
|
||||||
|
if [ -z "$DEST_DIR" ]; then
|
||||||
|
echo USAGE: "$SCRIPT_DIR"/backup-all.sh [DEST]
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Backup new data & delete old data
|
||||||
|
/usr/bin/rsync -a --delete "$SCRIPT_DIR"/../ "$DEST_DIR"
|
12
scripts/backup-data.sh
Executable file
12
scripts/backup-data.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
|
DEST_DIR="$1"
|
||||||
|
|
||||||
|
if [ -z "$DEST_DIR" ]; then
|
||||||
|
echo USAGE: "$SCRIPT_DIR"/backup-all.sh [DEST]
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Backup new data & delete old data
|
||||||
|
/usr/bin/rsync -a --delete "$SCRIPT_DIR"/../data/ "$DEST_DIR"
|
@ -1,14 +1,14 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
COMPOSE_PATH=/root/new-services
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
|
COMPOSE_DIR="$SCRIPT_DIR"/../
|
||||||
|
|
||||||
databases=$(docker compose -f ${COMPOSE_PATH}/compose.yml ps | grep '\-db' | awk '{print $1}' | tr '\n' ' ')
|
|
||||||
|
|
||||||
|
# Get all service databases, dump databases, & copy database to compose path
|
||||||
|
databases=$(docker compose -f ${COMPOSE_DIR}/compose.yml ps | grep '\-db' | awk '{print $1}' | tr '\n' ' ')
|
||||||
for db in $databases; do
|
for db in $databases; do
|
||||||
db_env_path=${COMPOSE_PATH}/env/${db}.env
|
db_env_path=${COMPOSE_DIR}/env/${db}.env
|
||||||
|
|
||||||
if [ ! -f $db_env_path ]; then
|
if [ ! -f $db_env_path ]; then
|
||||||
echo "Could not find the environment file for database '$db'"
|
echo "Could not find the environment file for database '$db'"
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
@ -18,12 +18,12 @@ for db in $databases; do
|
|||||||
db_dmp_cmd="mysqldump --password=${db_passwd} ${db_service} > /root/${db_service}.sql"
|
db_dmp_cmd="mysqldump --password=${db_passwd} ${db_service} > /root/${db_service}.sql"
|
||||||
|
|
||||||
echo -e "\nDumping database '${db}'"
|
echo -e "\nDumping database '${db}'"
|
||||||
docker exec ${db} sh -c "$db_dmp_cmd" &> /dev/null
|
docker exec ${db} sh -c "$db_dmp_cmd" &> /dev/null
|
||||||
|
|
||||||
echo "Copying database dump '${db_service}.sql' to '${COMPOSE_PATH}/sql/${db_service}.sql'"
|
echo "Copying database dump '${db_service}.sql' to '${COMPOSE_DIR}/sql/${db_service}.sql'"
|
||||||
docker cp ${db}:/root/${db_service}.sql ${COMPOSE_PATH}/sql/${db_service}.sql &> /dev/null
|
docker cp ${db}:/root/${db_service}.sql ${COMPOSE_DIR}/sql/${db_service}.sql &> /dev/null
|
||||||
|
|
||||||
chown -R root:root ${COMPOSE_PATH}/sql
|
chown -R root:root ${COMPOSE_DIR}/sql
|
||||||
done
|
done
|
||||||
|
|
||||||
echo -e "\nDumping complete!"
|
echo -e "\nDumping complete!"
|
||||||
|
Reference in New Issue
Block a user