Merge pull request #85 from outis1one/claude/zealous-heisenberg-8ylloi
Claude/zealous heisenberg 8ylloi
This commit is contained in:
@@ -202,7 +202,24 @@ install_actualbudget() {
|
|||||||
|
|
||||||
local TZ_VAL; TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
local TZ_VAL; TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
||||||
|
|
||||||
cat > docker-compose.yml << 'AB_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << AB_COMPOSE
|
||||||
name: actualbudget
|
name: actualbudget
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -216,13 +233,7 @@ services:
|
|||||||
- ./data:/data
|
- ./data:/data
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
AB_COMPOSE
|
AB_COMPOSE
|
||||||
|
|
||||||
cat > .env << AB_ENV
|
cat > .env << AB_ENV
|
||||||
|
|||||||
+19
-8
@@ -195,7 +195,24 @@ install_archivebox() {
|
|||||||
ensure_docker_dir_ownership "$AB_DIR"
|
ensure_docker_dir_ownership "$AB_DIR"
|
||||||
cd "$AB_DIR" || return 1
|
cd "$AB_DIR" || return 1
|
||||||
|
|
||||||
cat > docker-compose.yml << 'ABCOMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << ABCOMPOSE
|
||||||
name: archivebox
|
name: archivebox
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -214,13 +231,7 @@ services:
|
|||||||
- ./data:/data
|
- ./data:/data
|
||||||
ports:
|
ports:
|
||||||
- "8000:8000"
|
- "8000:8000"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
ABCOMPOSE
|
ABCOMPOSE
|
||||||
|
|
||||||
cat > .env << ABENV
|
cat > .env << ABENV
|
||||||
|
|||||||
+18
-7
@@ -233,6 +233,23 @@ install_arm() {
|
|||||||
TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
||||||
UID_VAL=$(id -u "$ACTUAL_USER"); GID_VAL=$(id -g "$ACTUAL_USER")
|
UID_VAL=$(id -u "$ACTUAL_USER"); GID_VAL=$(id -g "$ACTUAL_USER")
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << ARM_COMPOSE
|
cat > docker-compose.yml << ARM_COMPOSE
|
||||||
name: arm
|
name: arm
|
||||||
|
|
||||||
@@ -258,13 +275,7 @@ services:
|
|||||||
# Add more optical drives as needed:
|
# Add more optical drives as needed:
|
||||||
# - /dev/sr1:/dev/sr1
|
# - /dev/sr1:/dev/sr1
|
||||||
privileged: true
|
privileged: true
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
ARM_COMPOSE
|
ARM_COMPOSE
|
||||||
|
|
||||||
cat > .env << ARM_ENV
|
cat > .env << ARM_ENV
|
||||||
|
|||||||
@@ -208,6 +208,23 @@ install_audiobookshelf() {
|
|||||||
|
|
||||||
local TZ_VAL; TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
local TZ_VAL; TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << ABS_COMPOSE
|
cat > docker-compose.yml << ABS_COMPOSE
|
||||||
name: audiobookshelf
|
name: audiobookshelf
|
||||||
|
|
||||||
@@ -226,13 +243,7 @@ services:
|
|||||||
- \${PODCASTS_PATH:-./podcasts}:/podcasts
|
- \${PODCASTS_PATH:-./podcasts}:/podcasts
|
||||||
ports:
|
ports:
|
||||||
- "13378:80"
|
- "13378:80"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
ABS_COMPOSE
|
ABS_COMPOSE
|
||||||
|
|
||||||
cat > .env << ABS_ENV
|
cat > .env << ABS_ENV
|
||||||
|
|||||||
+18
-7
@@ -197,6 +197,23 @@ install_calibre_web() {
|
|||||||
ensure_docker_dir_ownership "$CW_DIR"
|
ensure_docker_dir_ownership "$CW_DIR"
|
||||||
cd "$CW_DIR" || return 1
|
cd "$CW_DIR" || return 1
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << CW_COMPOSE
|
cat > docker-compose.yml << CW_COMPOSE
|
||||||
name: calibre-web
|
name: calibre-web
|
||||||
|
|
||||||
@@ -216,13 +233,7 @@ services:
|
|||||||
- ./books:/books
|
- ./books:/books
|
||||||
ports:
|
ports:
|
||||||
- "8083:8083"
|
- "8083:8083"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
CW_COMPOSE
|
CW_COMPOSE
|
||||||
|
|
||||||
cat > .env << CW_ENV
|
cat > .env << CW_ENV
|
||||||
|
|||||||
+21
-12
@@ -197,7 +197,24 @@ install_changedetection() {
|
|||||||
ensure_docker_dir_ownership "$CD_DIR"
|
ensure_docker_dir_ownership "$CD_DIR"
|
||||||
cd "$CD_DIR" || return 1
|
cd "$CD_DIR" || return 1
|
||||||
|
|
||||||
cat > docker-compose.yml << 'CD_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << CD_COMPOSE
|
||||||
name: changedetection
|
name: changedetection
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -209,13 +226,11 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "5000:5000"
|
- "5000:5000"
|
||||||
environment:
|
environment:
|
||||||
- BASE_URL=${BASE_URL}
|
- BASE_URL=\${BASE_URL}
|
||||||
- PLAYWRIGHT_DRIVER_URL=ws://playwright-chrome:3000
|
- PLAYWRIGHT_DRIVER_URL=ws://playwright-chrome:3000
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/datastore
|
- ./data:/datastore
|
||||||
networks:
|
${_CADDY_NET_BLOCK} depends_on:
|
||||||
- caddy_net
|
|
||||||
depends_on:
|
|
||||||
- playwright-chrome
|
- playwright-chrome
|
||||||
|
|
||||||
playwright-chrome:
|
playwright-chrome:
|
||||||
@@ -225,13 +240,7 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- DEFAULT_LAUNCH_ARGS=--no-sandbox --disable-dev-shm-usage
|
- DEFAULT_LAUNCH_ARGS=--no-sandbox --disable-dev-shm-usage
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
CD_COMPOSE
|
CD_COMPOSE
|
||||||
|
|
||||||
cat > .env << CD_ENV
|
cat > .env << CD_ENV
|
||||||
|
|||||||
@@ -214,7 +214,24 @@ install_drum-rhythm-game() {
|
|||||||
|
|
||||||
chown -R "$ACTUAL_USER:$ACTUAL_USER" "$DRUM_DIR/html"
|
chown -R "$ACTUAL_USER:$ACTUAL_USER" "$DRUM_DIR/html"
|
||||||
|
|
||||||
cat > docker-compose.yml << 'DRUM_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << DRUM_COMPOSE
|
||||||
name: drum-rhythm-game
|
name: drum-rhythm-game
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -227,13 +244,7 @@ services:
|
|||||||
- ./html:/usr/share/nginx/html:ro
|
- ./html:/usr/share/nginx/html:ro
|
||||||
ports:
|
ports:
|
||||||
- "8096:80"
|
- "8096:80"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
DRUM_COMPOSE
|
DRUM_COMPOSE
|
||||||
|
|
||||||
cat > .env << DRUM_ENV
|
cat > .env << DRUM_ENV
|
||||||
|
|||||||
+18
-7
@@ -222,6 +222,23 @@ install_emby() {
|
|||||||
TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
||||||
UID_VAL=$(id -u "$ACTUAL_USER"); GID_VAL=$(id -g "$ACTUAL_USER")
|
UID_VAL=$(id -u "$ACTUAL_USER"); GID_VAL=$(id -g "$ACTUAL_USER")
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << EMBY_COMPOSE
|
cat > docker-compose.yml << EMBY_COMPOSE
|
||||||
name: emby
|
name: emby
|
||||||
|
|
||||||
@@ -244,13 +261,7 @@ services:
|
|||||||
# Uncomment for hardware transcoding (Intel/AMD):
|
# Uncomment for hardware transcoding (Intel/AMD):
|
||||||
# devices:
|
# devices:
|
||||||
# - /dev/dri:/dev/dri
|
# - /dev/dri:/dev/dri
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
EMBY_COMPOSE
|
EMBY_COMPOSE
|
||||||
|
|
||||||
cat > .env << EMBY_ENV
|
cat > .env << EMBY_ENV
|
||||||
|
|||||||
+18
-7
@@ -199,6 +199,23 @@ install_filebrowser() {
|
|||||||
local FB_PATH=""
|
local FB_PATH=""
|
||||||
prompt_text "Primary files directory to browse [default: $ACTUAL_HOME]:" "$ACTUAL_HOME" FB_PATH
|
prompt_text "Primary files directory to browse [default: $ACTUAL_HOME]:" "$ACTUAL_HOME" FB_PATH
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << FB_COMPOSE
|
cat > docker-compose.yml << FB_COMPOSE
|
||||||
name: filebrowser
|
name: filebrowser
|
||||||
|
|
||||||
@@ -215,13 +232,7 @@ services:
|
|||||||
- ${FB_PATH}:/files
|
- ${FB_PATH}:/files
|
||||||
ports:
|
ports:
|
||||||
- "8085:80"
|
- "8085:80"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
FB_COMPOSE
|
FB_COMPOSE
|
||||||
|
|
||||||
cat > .env << FB_ENV
|
cat > .env << FB_ENV
|
||||||
|
|||||||
+20
-9
@@ -214,7 +214,24 @@ install_fmd() {
|
|||||||
local FMD_PASS
|
local FMD_PASS
|
||||||
FMD_PASS=$(openssl rand -base64 16 | tr -dc 'a-zA-Z0-9' | head -c 16)
|
FMD_PASS=$(openssl rand -base64 16 | tr -dc 'a-zA-Z0-9' | head -c 16)
|
||||||
|
|
||||||
cat > docker-compose.yml << 'FMD_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << FMD_COMPOSE
|
||||||
name: fmd
|
name: fmd
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -224,18 +241,12 @@ services:
|
|||||||
hostname: fmd
|
hostname: fmd
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- FMD_ADMIN_PASSWORD=${FMD_ADMIN_PASSWORD}
|
- FMD_ADMIN_PASSWORD=\${FMD_ADMIN_PASSWORD}
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/fmd/data
|
- ./data:/fmd/data
|
||||||
ports:
|
ports:
|
||||||
- "8084:8080"
|
- "8084:8080"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
FMD_COMPOSE
|
FMD_COMPOSE
|
||||||
|
|
||||||
cat > .env << FMD_ENV
|
cat > .env << FMD_ENV
|
||||||
|
|||||||
@@ -375,6 +375,23 @@ ENVEOF
|
|||||||
[ -n "$DRI_LINE" ] && DEVICES_BLOCK="${DEVICES_BLOCK}\n ${DRI_LINE}"
|
[ -n "$DRI_LINE" ] && DEVICES_BLOCK="${DEVICES_BLOCK}\n ${DRI_LINE}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > "$DIR/docker-compose.yml" << 'COMPOSEEOF'
|
cat > "$DIR/docker-compose.yml" << 'COMPOSEEOF'
|
||||||
# Frigate NVR + Mosquitto MQTT + frigate-notify
|
# Frigate NVR + Mosquitto MQTT + frigate-notify
|
||||||
# Generated by ubuntu-post-install setup.sh
|
# Generated by ubuntu-post-install setup.sh
|
||||||
@@ -416,9 +433,7 @@ COMPOSEEOF
|
|||||||
- "8554:8554"
|
- "8554:8554"
|
||||||
- "8555:8555/tcp"
|
- "8555:8555/tcp"
|
||||||
- "8555:8555/udp"
|
- "8555:8555/udp"
|
||||||
networks:
|
${_CADDY_NET_BLOCK} healthcheck:
|
||||||
- caddy_net
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:5000/api/version"]
|
test: ["CMD", "curl", "-f", "http://127.0.0.1:5000/api/version"]
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
@@ -451,10 +466,7 @@ COMPOSEEOF
|
|||||||
volumes:
|
volumes:
|
||||||
- ./frigate-notify/config.yml:/app/config.yml:ro
|
- ./frigate-notify/config.yml:/app/config.yml:ro
|
||||||
|
|
||||||
networks:
|
${_CADDY_NET_SECTION}
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
COMPOSEEOF
|
COMPOSEEOF
|
||||||
log_success "docker-compose.yml written"
|
log_success "docker-compose.yml written"
|
||||||
|
|
||||||
|
|||||||
@@ -211,7 +211,24 @@ install_frigate-notify() {
|
|||||||
ensure_docker_dir_ownership "$FN_DIR"
|
ensure_docker_dir_ownership "$FN_DIR"
|
||||||
cd "$FN_DIR" || return 1
|
cd "$FN_DIR" || return 1
|
||||||
|
|
||||||
cat > docker-compose.yml << 'FN_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << FN_COMPOSE
|
||||||
name: frigate-notify
|
name: frigate-notify
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -222,13 +239,7 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- ./config.yml:/app/config.yml:ro
|
- ./config.yml:/app/config.yml:ro
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
FN_COMPOSE
|
FN_COMPOSE
|
||||||
|
|
||||||
# Smart defaults based on what's installed
|
# Smart defaults based on what's installed
|
||||||
|
|||||||
+18
-7
@@ -230,6 +230,23 @@ install_frigate() {
|
|||||||
log_warning "No /dev/dri/renderD128 — Frigate will use CPU detection."
|
log_warning "No /dev/dri/renderD128 — Frigate will use CPU detection."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << FRIGATE_COMPOSE
|
cat > docker-compose.yml << FRIGATE_COMPOSE
|
||||||
name: frigate
|
name: frigate
|
||||||
|
|
||||||
@@ -256,13 +273,7 @@ $DEVICE_BLOCK
|
|||||||
- "8554:8554"
|
- "8554:8554"
|
||||||
- "8555:8555/tcp"
|
- "8555:8555/tcp"
|
||||||
- "8555:8555/udp"
|
- "8555:8555/udp"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
FRIGATE_COMPOSE
|
FRIGATE_COMPOSE
|
||||||
|
|
||||||
cat > .env << FRIGATE_ENV
|
cat > .env << FRIGATE_ENV
|
||||||
|
|||||||
+19
-8
@@ -210,7 +210,24 @@ install_gatus() {
|
|||||||
|
|
||||||
local TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
local TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
||||||
|
|
||||||
cat > docker-compose.yml << 'GATUS_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << GATUS_COMPOSE
|
||||||
name: gatus
|
name: gatus
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -225,13 +242,7 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./gatus_config:/config
|
- ./gatus_config:/config
|
||||||
- ./gatus_data:/data
|
- ./gatus_data:/data
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
GATUS_COMPOSE
|
GATUS_COMPOSE
|
||||||
|
|
||||||
cat > .env << GATUS_ENV
|
cat > .env << GATUS_ENV
|
||||||
|
|||||||
@@ -218,11 +218,25 @@ install_homeassistant() {
|
|||||||
else
|
else
|
||||||
HA_NET_LINES=" ports:
|
HA_NET_LINES=" ports:
|
||||||
- \"8123:8123\""
|
- \"8123:8123\""
|
||||||
HA_CADDY_NET_LINES=" networks:
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
HA_CADDY_NET_LINES=" networks:
|
||||||
- caddy_net"
|
- caddy_net"
|
||||||
|
else
|
||||||
|
HA_CADDY_NET_LINES=""
|
||||||
|
fi
|
||||||
echo " → Bridge networking selected (port 8123 published)."
|
echo " → Bridge networking selected (port 8123 published)."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ "$HA_NETMODE" != "2" ] && [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << HOMEASSISTANT_COMPOSE
|
cat > docker-compose.yml << HOMEASSISTANT_COMPOSE
|
||||||
name: homeassistant
|
name: homeassistant
|
||||||
|
|
||||||
@@ -240,11 +254,7 @@ services:
|
|||||||
- /run/dbus:/run/dbus:ro
|
- /run/dbus:/run/dbus:ro
|
||||||
${HA_NET_LINES}
|
${HA_NET_LINES}
|
||||||
${HA_CADDY_NET_LINES}
|
${HA_CADDY_NET_LINES}
|
||||||
|
${_CADDY_NET_SECTION}
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
HOMEASSISTANT_COMPOSE
|
HOMEASSISTANT_COMPOSE
|
||||||
|
|
||||||
mkdir -p config
|
mkdir -p config
|
||||||
|
|||||||
+18
-7
@@ -197,6 +197,23 @@ install_homebox() {
|
|||||||
ensure_docker_dir_ownership "$HB_DIR"
|
ensure_docker_dir_ownership "$HB_DIR"
|
||||||
cd "$HB_DIR" || return 1
|
cd "$HB_DIR" || return 1
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << HB_COMPOSE
|
cat > docker-compose.yml << HB_COMPOSE
|
||||||
name: homebox
|
name: homebox
|
||||||
|
|
||||||
@@ -213,13 +230,7 @@ services:
|
|||||||
- ./data:/data
|
- ./data:/data
|
||||||
ports:
|
ports:
|
||||||
- "7745:7745"
|
- "7745:7745"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
HB_COMPOSE
|
HB_COMPOSE
|
||||||
|
|
||||||
cat > .env << HB_ENV
|
cat > .env << HB_ENV
|
||||||
|
|||||||
+38
-33
@@ -291,17 +291,34 @@ install_immich() {
|
|||||||
TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
||||||
|
|
||||||
# ── Write docker-compose.yml ────────────────────────────────────────────
|
# ── Write docker-compose.yml ────────────────────────────────────────────
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -n "$EXTERNAL_LIBRARY" ]; then
|
if [ -n "$EXTERNAL_LIBRARY" ]; then
|
||||||
cat > docker-compose.yml << 'IMMICH_COMPOSE'
|
cat > docker-compose.yml << IMMICH_COMPOSE
|
||||||
name: immich
|
name: immich
|
||||||
|
|
||||||
services:
|
services:
|
||||||
immich-server:
|
immich-server:
|
||||||
container_name: immich_server
|
container_name: immich_server
|
||||||
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
image: ghcr.io/immich-app/immich-server:\${IMMICH_VERSION:-release}
|
||||||
volumes:
|
volumes:
|
||||||
- ${UPLOAD_LOCATION}:/usr/src/app/upload
|
- \${UPLOAD_LOCATION}:/usr/src/app/upload
|
||||||
- ${EXTERNAL_LIBRARY}:/usr/src/app/external:ro
|
- \${EXTERNAL_LIBRARY}:/usr/src/app/external:ro
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
@@ -313,12 +330,10 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
healthcheck:
|
healthcheck:
|
||||||
disable: false
|
disable: false
|
||||||
networks:
|
${_CADDY_NET_BLOCK}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
immich-machine-learning:
|
immich-machine-learning:
|
||||||
container_name: immich_machine_learning
|
container_name: immich_machine_learning
|
||||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
image: ghcr.io/immich-app/immich-machine-learning:\${IMMICH_VERSION:-release}
|
||||||
volumes:
|
volumes:
|
||||||
- model-cache:/cache
|
- model-cache:/cache
|
||||||
env_file:
|
env_file:
|
||||||
@@ -338,32 +353,28 @@ services:
|
|||||||
container_name: immich_postgres
|
container_name: immich_postgres
|
||||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
|
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
POSTGRES_PASSWORD: \${DB_PASSWORD}
|
||||||
POSTGRES_USER: ${DB_USERNAME}
|
POSTGRES_USER: \${DB_USERNAME}
|
||||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
POSTGRES_DB: \${DB_DATABASE_NAME}
|
||||||
POSTGRES_INITDB_ARGS: '--data-checksums'
|
POSTGRES_INITDB_ARGS: '--data-checksums'
|
||||||
volumes:
|
volumes:
|
||||||
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
- \${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
model-cache:
|
model-cache:
|
||||||
|
${_CADDY_NET_SECTION}
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
IMMICH_COMPOSE
|
IMMICH_COMPOSE
|
||||||
else
|
else
|
||||||
cat > docker-compose.yml << 'IMMICH_COMPOSE'
|
cat > docker-compose.yml << IMMICH_COMPOSE
|
||||||
name: immich
|
name: immich
|
||||||
|
|
||||||
services:
|
services:
|
||||||
immich-server:
|
immich-server:
|
||||||
container_name: immich_server
|
container_name: immich_server
|
||||||
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
image: ghcr.io/immich-app/immich-server:\${IMMICH_VERSION:-release}
|
||||||
volumes:
|
volumes:
|
||||||
- ${UPLOAD_LOCATION}:/usr/src/app/upload
|
- \${UPLOAD_LOCATION}:/usr/src/app/upload
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
@@ -375,12 +386,10 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
healthcheck:
|
healthcheck:
|
||||||
disable: false
|
disable: false
|
||||||
networks:
|
${_CADDY_NET_BLOCK}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
immich-machine-learning:
|
immich-machine-learning:
|
||||||
container_name: immich_machine_learning
|
container_name: immich_machine_learning
|
||||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
image: ghcr.io/immich-app/immich-machine-learning:\${IMMICH_VERSION:-release}
|
||||||
volumes:
|
volumes:
|
||||||
- model-cache:/cache
|
- model-cache:/cache
|
||||||
env_file:
|
env_file:
|
||||||
@@ -400,21 +409,17 @@ services:
|
|||||||
container_name: immich_postgres
|
container_name: immich_postgres
|
||||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
|
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
POSTGRES_PASSWORD: \${DB_PASSWORD}
|
||||||
POSTGRES_USER: ${DB_USERNAME}
|
POSTGRES_USER: \${DB_USERNAME}
|
||||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
POSTGRES_DB: \${DB_DATABASE_NAME}
|
||||||
POSTGRES_INITDB_ARGS: '--data-checksums'
|
POSTGRES_INITDB_ARGS: '--data-checksums'
|
||||||
volumes:
|
volumes:
|
||||||
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
- \${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
model-cache:
|
model-cache:
|
||||||
|
${_CADDY_NET_SECTION}
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
IMMICH_COMPOSE
|
IMMICH_COMPOSE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
+25
-20
@@ -268,8 +268,25 @@ install_iopaint() {
|
|||||||
# Volume ./models:/root/.cache persists ALL model caches:
|
# Volume ./models:/root/.cache persists ALL model caches:
|
||||||
# /root/.cache/torch/hub/checkpoints/ (LaMa, CV2, ZITS, etc.)
|
# /root/.cache/torch/hub/checkpoints/ (LaMa, CV2, ZITS, etc.)
|
||||||
# /root/.cache/huggingface/ (SD, PowerPaint, LDM, etc.)
|
# /root/.cache/huggingface/ (SD, PowerPaint, LDM, etc.)
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "$USE_GPU" =~ ^[Yy]$ ]]; then
|
if [[ "$USE_GPU" =~ ^[Yy]$ ]]; then
|
||||||
cat > docker-compose.yml << 'IOPAINT_GPU'
|
cat > docker-compose.yml << IOPAINT_GPU
|
||||||
name: iopaint
|
name: iopaint
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -280,8 +297,8 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
command: >-
|
command: >-
|
||||||
iopaint start
|
iopaint start
|
||||||
--model=${MODEL:-lama}
|
--model=\${MODEL:-lama}
|
||||||
--device=${DEVICE:-cuda}
|
--device=\${DEVICE:-cuda}
|
||||||
--port=8080
|
--port=8080
|
||||||
--host=0.0.0.0
|
--host=0.0.0.0
|
||||||
ports:
|
ports:
|
||||||
@@ -298,16 +315,10 @@ services:
|
|||||||
- driver: nvidia
|
- driver: nvidia
|
||||||
count: 1
|
count: 1
|
||||||
capabilities: [gpu]
|
capabilities: [gpu]
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
IOPAINT_GPU
|
IOPAINT_GPU
|
||||||
else
|
else
|
||||||
cat > docker-compose.yml << 'IOPAINT_CPU'
|
cat > docker-compose.yml << IOPAINT_CPU
|
||||||
name: iopaint
|
name: iopaint
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -318,8 +329,8 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
command: >-
|
command: >-
|
||||||
iopaint start
|
iopaint start
|
||||||
--model=${MODEL:-lama}
|
--model=\${MODEL:-lama}
|
||||||
--device=${DEVICE:-cpu}
|
--device=\${DEVICE:-cpu}
|
||||||
--port=8080
|
--port=8080
|
||||||
--host=0.0.0.0
|
--host=0.0.0.0
|
||||||
ports:
|
ports:
|
||||||
@@ -329,13 +340,7 @@ services:
|
|||||||
- ./models:/root/.cache
|
- ./models:/root/.cache
|
||||||
- ./input:/app/input
|
- ./input:/app/input
|
||||||
- ./output:/app/output
|
- ./output:/app/output
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
IOPAINT_CPU
|
IOPAINT_CPU
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
+18
-7
@@ -225,6 +225,23 @@ install_jellyfin() {
|
|||||||
log_warning "No /dev/dri/renderD128 — Jellyfin will use CPU transcoding."
|
log_warning "No /dev/dri/renderD128 — Jellyfin will use CPU transcoding."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << JELLYFIN_COMPOSE
|
cat > docker-compose.yml << JELLYFIN_COMPOSE
|
||||||
name: jellyfin
|
name: jellyfin
|
||||||
|
|
||||||
@@ -245,13 +262,7 @@ $HWACCEL_BLOCK
|
|||||||
- "8096:8096"
|
- "8096:8096"
|
||||||
- "1900:1900/udp"
|
- "1900:1900/udp"
|
||||||
- "7359:7359/udp"
|
- "7359:7359/udp"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
JELLYFIN_COMPOSE
|
JELLYFIN_COMPOSE
|
||||||
|
|
||||||
cat > .env << JELLYFIN_ENV
|
cat > .env << JELLYFIN_ENV
|
||||||
|
|||||||
+20
-11
@@ -201,7 +201,24 @@ install_joplin() {
|
|||||||
DB_PASS="$(generate_password 32)"
|
DB_PASS="$(generate_password 32)"
|
||||||
local BASE_URL="https://joplin.${SITE_DOMAIN}"
|
local BASE_URL="https://joplin.${SITE_DOMAIN}"
|
||||||
|
|
||||||
cat > docker-compose.yml << 'JOPLIN_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << JOPLIN_COMPOSE
|
||||||
name: joplin
|
name: joplin
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -215,9 +232,7 @@ services:
|
|||||||
env_file: .env
|
env_file: .env
|
||||||
ports:
|
ports:
|
||||||
- "22300:22300"
|
- "22300:22300"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
joplin-db:
|
joplin-db:
|
||||||
image: postgres:15-alpine
|
image: postgres:15-alpine
|
||||||
container_name: joplin-db
|
container_name: joplin-db
|
||||||
@@ -226,13 +241,7 @@ services:
|
|||||||
env_file: .env
|
env_file: .env
|
||||||
volumes:
|
volumes:
|
||||||
- ./db-data:/var/lib/postgresql/data
|
- ./db-data:/var/lib/postgresql/data
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
JOPLIN_COMPOSE
|
JOPLIN_COMPOSE
|
||||||
|
|
||||||
cat > .env << JOPLIN_ENV
|
cat > .env << JOPLIN_ENV
|
||||||
|
|||||||
+17
-9
@@ -346,8 +346,19 @@ install_koha() {
|
|||||||
ensure_docker_dir_ownership "$KOHA_DIR"
|
ensure_docker_dir_ownership "$KOHA_DIR"
|
||||||
cd "$KOHA_DIR" || return 1
|
cd "$KOHA_DIR" || return 1
|
||||||
|
|
||||||
|
local _CADDY_NET_ENTRY=""
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_ENTRY=" - caddy_net
|
||||||
|
"
|
||||||
|
_CADDY_NET_SECTION=" caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
# ── docker-compose.yml ────────────────────────────────────────────────────
|
# ── docker-compose.yml ────────────────────────────────────────────────────
|
||||||
cat > docker-compose.yml << 'KOHA_COMPOSE'
|
cat > docker-compose.yml << KOHA_COMPOSE
|
||||||
name: koha
|
name: koha
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -370,18 +381,17 @@ services:
|
|||||||
- koha-rabbitmq
|
- koha-rabbitmq
|
||||||
networks:
|
networks:
|
||||||
- koha_internal
|
- koha_internal
|
||||||
- caddy_net
|
${_CADDY_NET_ENTRY}
|
||||||
|
|
||||||
koha-db:
|
koha-db:
|
||||||
image: mariadb:11
|
image: mariadb:11
|
||||||
container_name: koha-db
|
container_name: koha-db
|
||||||
hostname: koha-db
|
hostname: koha-db
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS}
|
MYSQL_ROOT_PASSWORD: \${DB_ROOT_PASS}
|
||||||
MYSQL_DATABASE: koha_default
|
MYSQL_DATABASE: koha_default
|
||||||
MYSQL_USER: koha_default
|
MYSQL_USER: koha_default
|
||||||
MYSQL_PASSWORD: ${DB_PASS}
|
MYSQL_PASSWORD: \${DB_PASS}
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/var/lib/mysql
|
- ./data:/var/lib/mysql
|
||||||
networks:
|
networks:
|
||||||
@@ -402,16 +412,14 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
RABBITMQ_DEFAULT_USER: koha
|
RABBITMQ_DEFAULT_USER: koha
|
||||||
RABBITMQ_DEFAULT_PASS: ${RABBIT_PASS}
|
RABBITMQ_DEFAULT_PASS: \${RABBIT_PASS}
|
||||||
networks:
|
networks:
|
||||||
- koha_internal
|
- koha_internal
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
koha_internal:
|
koha_internal:
|
||||||
internal: true
|
internal: true
|
||||||
caddy_net:
|
${_CADDY_NET_SECTION}
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
KOHA_COMPOSE
|
KOHA_COMPOSE
|
||||||
|
|
||||||
# ── config-main.env ───────────────────────────────────────────────────────
|
# ── config-main.env ───────────────────────────────────────────────────────
|
||||||
|
|||||||
@@ -242,10 +242,6 @@ services:
|
|||||||
- ./playlists:/playlists:rw
|
- ./playlists:/playlists:rw
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
LYRION_COMPOSE
|
LYRION_COMPOSE
|
||||||
|
|
||||||
cat > .env << LYRION_ENV
|
cat > .env << LYRION_ENV
|
||||||
|
|||||||
+18
-7
@@ -231,6 +231,23 @@ install_magicmirror() {
|
|||||||
ensure_docker_dir_ownership "$MM_DIR"
|
ensure_docker_dir_ownership "$MM_DIR"
|
||||||
cd "$MM_DIR" || continue
|
cd "$MM_DIR" || continue
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << MM_COMPOSE
|
cat > docker-compose.yml << MM_COMPOSE
|
||||||
name: mm-$MM_PORT
|
name: mm-$MM_PORT
|
||||||
|
|
||||||
@@ -248,13 +265,7 @@ services:
|
|||||||
- ./css:/opt/magic_mirror/css
|
- ./css:/opt/magic_mirror/css
|
||||||
ports:
|
ports:
|
||||||
- "$MM_PORT:8080"
|
- "$MM_PORT:8080"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
MM_COMPOSE
|
MM_COMPOSE
|
||||||
|
|
||||||
mkdir -p config modules css
|
mkdir -p config modules css
|
||||||
|
|||||||
@@ -212,7 +212,24 @@ install_mail-archiver() {
|
|||||||
ADMIN_PASS=$(generate_password 24)
|
ADMIN_PASS=$(generate_password 24)
|
||||||
TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
TZ_VAL="${SITE_TZ:-$(cat /etc/timezone 2>/dev/null || echo UTC)}"
|
||||||
|
|
||||||
cat > docker-compose.yml << 'MA_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << MA_COMPOSE
|
||||||
name: mail-archiver
|
name: mail-archiver
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -227,9 +244,7 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
mailarchiver-db:
|
mailarchiver-db:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
networks:
|
${_CADDY_NET_BLOCK}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
mailarchiver-db:
|
mailarchiver-db:
|
||||||
image: postgres:17-alpine
|
image: postgres:17-alpine
|
||||||
container_name: mailarchiver-db
|
container_name: mailarchiver-db
|
||||||
@@ -246,11 +261,7 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 5
|
retries: 5
|
||||||
start_period: 30s
|
start_period: 30s
|
||||||
|
${_CADDY_NET_SECTION}
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
MA_COMPOSE
|
MA_COMPOSE
|
||||||
|
|
||||||
cat > .env << MA_ENV
|
cat > .env << MA_ENV
|
||||||
|
|||||||
+24
-15
@@ -247,7 +247,24 @@ install_mattermost() {
|
|||||||
prompt_text "Mattermost site URL [$SITE_URL]:" "$SITE_URL" CONFIGURED_SITEURL
|
prompt_text "Mattermost site URL [$SITE_URL]:" "$SITE_URL" CONFIGURED_SITEURL
|
||||||
[[ -n "$CONFIGURED_SITEURL" ]] && SITE_URL="$CONFIGURED_SITEURL"
|
[[ -n "$CONFIGURED_SITEURL" ]] && SITE_URL="$CONFIGURED_SITEURL"
|
||||||
|
|
||||||
cat > docker-compose.yml << 'EOF'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << EOF
|
||||||
name: mattermost
|
name: mattermost
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -259,10 +276,8 @@ services:
|
|||||||
env_file: .env
|
env_file: .env
|
||||||
volumes:
|
volumes:
|
||||||
- ./db:/var/lib/postgresql/data
|
- ./db:/var/lib/postgresql/data
|
||||||
networks:
|
${_CADDY_NET_BLOCK} healthcheck:
|
||||||
- caddy_net
|
test: ["CMD-SHELL", "pg_isready -U \${POSTGRES_USER} -d \${POSTGRES_DB}"]
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
|
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
@@ -284,9 +299,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "8065:8065"
|
- "8065:8065"
|
||||||
- "8443:8443/udp"
|
- "8443:8443/udp"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
coturn:
|
coturn:
|
||||||
image: coturn/coturn:latest
|
image: coturn/coturn:latest
|
||||||
container_name: mattermost-coturn
|
container_name: mattermost-coturn
|
||||||
@@ -298,8 +311,8 @@ services:
|
|||||||
- --listening-ip=0.0.0.0
|
- --listening-ip=0.0.0.0
|
||||||
- --fingerprint
|
- --fingerprint
|
||||||
- --use-auth-secret
|
- --use-auth-secret
|
||||||
- --static-auth-secret=${COTURN_SECRET}
|
- --static-auth-secret=\${COTURN_SECRET}
|
||||||
- --realm=${MM_REALM:-localhost}
|
- --realm=\${MM_REALM:-localhost}
|
||||||
- --min-port=49153
|
- --min-port=49153
|
||||||
- --max-port=49352
|
- --max-port=49352
|
||||||
- --no-tls
|
- --no-tls
|
||||||
@@ -308,11 +321,7 @@ services:
|
|||||||
- --no-multicast-peers
|
- --no-multicast-peers
|
||||||
- --log-file=stdout
|
- --log-file=stdout
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
${_CADDY_NET_SECTION}
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cat > .env << EOF
|
cat > .env << EOF
|
||||||
|
|||||||
+18
-7
@@ -212,6 +212,23 @@ install_mealie() {
|
|||||||
MEALIE_BASE_URL="https://recipes.${SITE_DOMAIN}"
|
MEALIE_BASE_URL="https://recipes.${SITE_DOMAIN}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << MEALIE_COMPOSE
|
cat > docker-compose.yml << MEALIE_COMPOSE
|
||||||
name: mealie
|
name: mealie
|
||||||
|
|
||||||
@@ -233,13 +250,7 @@ services:
|
|||||||
- ./data:/app/data
|
- ./data:/app/data
|
||||||
ports:
|
ports:
|
||||||
- "9925:9000"
|
- "9925:9000"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
MEALIE_COMPOSE
|
MEALIE_COMPOSE
|
||||||
|
|
||||||
cat > .env << MEALIE_ENV
|
cat > .env << MEALIE_ENV
|
||||||
|
|||||||
+22
-11
@@ -215,7 +215,24 @@ install_meshcentral() {
|
|||||||
ensure_docker_dir_ownership "$MC_DIR"
|
ensure_docker_dir_ownership "$MC_DIR"
|
||||||
cd "$MC_DIR" || return 1
|
cd "$MC_DIR" || return 1
|
||||||
|
|
||||||
cat > docker-compose.yml << 'MC_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << MC_COMPOSE
|
||||||
name: meshcentral
|
name: meshcentral
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -226,9 +243,9 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- NODE_ENV=production
|
- NODE_ENV=production
|
||||||
- HOSTNAME=${MC_HOSTNAME:-localhost}
|
- HOSTNAME=\${MC_HOSTNAME:-localhost}
|
||||||
- REVERSE_PROXY=${MC_REVERSE_PROXY:-false}
|
- REVERSE_PROXY=\${MC_REVERSE_PROXY:-false}
|
||||||
- REVERSE_PROXY_TLS_PORT=${MC_TLS_PORT:-443}
|
- REVERSE_PROXY_TLS_PORT=\${MC_TLS_PORT:-443}
|
||||||
- IFRAME=false
|
- IFRAME=false
|
||||||
- ALLOW_NEW_ACCOUNTS=true
|
- ALLOW_NEW_ACCOUNTS=true
|
||||||
- WEBRTC=true
|
- WEBRTC=true
|
||||||
@@ -239,13 +256,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "4430:443"
|
- "4430:443"
|
||||||
- "4433:4433"
|
- "4433:4433"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
MC_COMPOSE
|
MC_COMPOSE
|
||||||
|
|
||||||
cat > .env << MC_ENV
|
cat > .env << MC_ENV
|
||||||
|
|||||||
+22
-11
@@ -197,7 +197,24 @@ install_n8n() {
|
|||||||
ensure_docker_dir_ownership "$N8N_DIR"
|
ensure_docker_dir_ownership "$N8N_DIR"
|
||||||
cd "$N8N_DIR" || return 1
|
cd "$N8N_DIR" || return 1
|
||||||
|
|
||||||
cat > docker-compose.yml << 'N8N_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << N8N_COMPOSE
|
||||||
name: n8n
|
name: n8n
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -213,18 +230,12 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- N8N_PORT=5678
|
- N8N_PORT=5678
|
||||||
- N8N_PROTOCOL=https
|
- N8N_PROTOCOL=https
|
||||||
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE:-UTC}
|
- GENERIC_TIMEZONE=\${GENERIC_TIMEZONE:-UTC}
|
||||||
- N8N_HOST=${N8N_HOST:-n8n}
|
- N8N_HOST=\${N8N_HOST:-n8n}
|
||||||
- WEBHOOK_URL=${WEBHOOK_URL}
|
- WEBHOOK_URL=\${WEBHOOK_URL}
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/home/node/.n8n
|
- ./data:/home/node/.n8n
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
N8N_COMPOSE
|
N8N_COMPOSE
|
||||||
|
|
||||||
cat > .env << N8N_ENV
|
cat > .env << N8N_ENV
|
||||||
|
|||||||
+20
-11
@@ -205,8 +205,25 @@ RUN apt-get update \
|
|||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
NCDF
|
NCDF
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
# ── docker-compose.yml ──────────────────────────────────────────────────
|
# ── docker-compose.yml ──────────────────────────────────────────────────
|
||||||
cat > docker-compose.yml << 'NCCOMPOSE'
|
cat > docker-compose.yml << NCCOMPOSE
|
||||||
name: nextcloud
|
name: nextcloud
|
||||||
services:
|
services:
|
||||||
nextcloud:
|
nextcloud:
|
||||||
@@ -223,9 +240,7 @@ services:
|
|||||||
- ./custom_apps:/var/www/html/custom_apps
|
- ./custom_apps:/var/www/html/custom_apps
|
||||||
ports:
|
ports:
|
||||||
- "8080:80"
|
- "8080:80"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
db:
|
db:
|
||||||
image: mariadb:10.11
|
image: mariadb:10.11
|
||||||
container_name: nextcloud-db
|
container_name: nextcloud-db
|
||||||
@@ -234,13 +249,7 @@ services:
|
|||||||
env_file: .env
|
env_file: .env
|
||||||
volumes:
|
volumes:
|
||||||
- ./db:/var/lib/mysql
|
- ./db:/var/lib/mysql
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
NCCOMPOSE
|
NCCOMPOSE
|
||||||
|
|
||||||
# ── .env ────────────────────────────────────────────────────────────────
|
# ── .env ────────────────────────────────────────────────────────────────
|
||||||
|
|||||||
+20
-9
@@ -203,7 +203,24 @@ install_ntfy() {
|
|||||||
ensure_docker_dir_ownership "$NTFY_DIR"
|
ensure_docker_dir_ownership "$NTFY_DIR"
|
||||||
cd "$NTFY_DIR" || return 1
|
cd "$NTFY_DIR" || return 1
|
||||||
|
|
||||||
cat > docker-compose.yml << 'NTFY_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << NTFY_COMPOSE
|
||||||
name: ntfy
|
name: ntfy
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -214,19 +231,13 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
command: serve
|
command: serve
|
||||||
environment:
|
environment:
|
||||||
- TZ=${TZ}
|
- TZ=\${TZ}
|
||||||
volumes:
|
volumes:
|
||||||
- ./cache:/var/cache/ntfy
|
- ./cache:/var/cache/ntfy
|
||||||
- ./config:/etc/ntfy
|
- ./config:/etc/ntfy
|
||||||
ports:
|
ports:
|
||||||
- "8090:80"
|
- "8090:80"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
NTFY_COMPOSE
|
NTFY_COMPOSE
|
||||||
|
|
||||||
cat > .env << NTFY_ENV
|
cat > .env << NTFY_ENV
|
||||||
|
|||||||
+19
-8
@@ -243,8 +243,25 @@ install_onlyoffice() {
|
|||||||
fi
|
fi
|
||||||
[[ -z "$JWT_SECRET" ]] && JWT_SECRET="$(generate_password 32)"
|
[[ -z "$JWT_SECRET" ]] && JWT_SECRET="$(generate_password 32)"
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
# ── docker-compose.yml ──────────────────────────────────────────────────
|
# ── docker-compose.yml ──────────────────────────────────────────────────
|
||||||
cat > docker-compose.yml << 'OOCOMPOSE'
|
cat > docker-compose.yml << OOCOMPOSE
|
||||||
name: onlyoffice
|
name: onlyoffice
|
||||||
services:
|
services:
|
||||||
onlyoffice:
|
onlyoffice:
|
||||||
@@ -259,13 +276,7 @@ services:
|
|||||||
- ./fonts:/usr/share/fonts/truetype/custom
|
- ./fonts:/usr/share/fonts/truetype/custom
|
||||||
ports:
|
ports:
|
||||||
- "8082:80"
|
- "8082:80"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
OOCOMPOSE
|
OOCOMPOSE
|
||||||
|
|
||||||
# ── .env ────────────────────────────────────────────────────────────────
|
# ── .env ────────────────────────────────────────────────────────────────
|
||||||
|
|||||||
+19
-8
@@ -194,7 +194,24 @@ install_portainer() {
|
|||||||
ensure_docker_dir_ownership "$PORTAINER_DIR"
|
ensure_docker_dir_ownership "$PORTAINER_DIR"
|
||||||
cd "$PORTAINER_DIR" || return 1
|
cd "$PORTAINER_DIR" || return 1
|
||||||
|
|
||||||
cat > docker-compose.yml << 'PORTAINER_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << PORTAINER_COMPOSE
|
||||||
name: portainer
|
name: portainer
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -209,13 +226,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "9000:9000"
|
- "9000:9000"
|
||||||
- "9443:9443"
|
- "9443:9443"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
PORTAINER_COMPOSE
|
PORTAINER_COMPOSE
|
||||||
|
|
||||||
mkdir -p data
|
mkdir -p data
|
||||||
|
|||||||
@@ -197,7 +197,24 @@ install_stirling_pdf() {
|
|||||||
ensure_docker_dir_ownership "$PDF_DIR"
|
ensure_docker_dir_ownership "$PDF_DIR"
|
||||||
cd "$PDF_DIR" || return 1
|
cd "$PDF_DIR" || return 1
|
||||||
|
|
||||||
cat > docker-compose.yml << 'PDF_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << PDF_COMPOSE
|
||||||
name: stirling-pdf
|
name: stirling-pdf
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -213,13 +230,7 @@ services:
|
|||||||
- ./training-data:/usr/share/tessdata
|
- ./training-data:/usr/share/tessdata
|
||||||
- ./extraConfigs:/configs
|
- ./extraConfigs:/configs
|
||||||
- ./logs:/logs
|
- ./logs:/logs
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
PDF_COMPOSE
|
PDF_COMPOSE
|
||||||
|
|
||||||
cat > .env << PDF_ENV
|
cat > .env << PDF_ENV
|
||||||
|
|||||||
+18
-7
@@ -172,6 +172,23 @@ install_syncthing() {
|
|||||||
PUID="$(id -u "$ACTUAL_USER")"
|
PUID="$(id -u "$ACTUAL_USER")"
|
||||||
PGID="$(id -g "$ACTUAL_USER")"
|
PGID="$(id -g "$ACTUAL_USER")"
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << EOF
|
cat > docker-compose.yml << EOF
|
||||||
name: syncthing
|
name: syncthing
|
||||||
|
|
||||||
@@ -193,13 +210,7 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./config:/var/syncthing/config
|
- ./config:/var/syncthing/config
|
||||||
- ./data:/var/syncthing
|
- ./data:/var/syncthing
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cat > .env << ENV
|
cat > .env << ENV
|
||||||
|
|||||||
+19
-8
@@ -203,7 +203,24 @@ install_traccar() {
|
|||||||
ensure_docker_dir_ownership "$TRACCAR_DIR"
|
ensure_docker_dir_ownership "$TRACCAR_DIR"
|
||||||
cd "$TRACCAR_DIR" || return 1
|
cd "$TRACCAR_DIR" || return 1
|
||||||
|
|
||||||
cat > docker-compose.yml << 'TRACCAR_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << TRACCAR_COMPOSE
|
||||||
name: traccar
|
name: traccar
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -220,13 +237,7 @@ services:
|
|||||||
- "8082:8082"
|
- "8082:8082"
|
||||||
- "5000-5150:5000-5150"
|
- "5000-5150:5000-5150"
|
||||||
- "5000-5150:5000-5150/udp"
|
- "5000-5150:5000-5150/udp"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
TRACCAR_COMPOSE
|
TRACCAR_COMPOSE
|
||||||
|
|
||||||
mkdir -p logs data config
|
mkdir -p logs data config
|
||||||
|
|||||||
+22
-12
@@ -118,8 +118,25 @@ install_unifi() {
|
|||||||
UID_VAL=$(id -u "$ACTUAL_USER")
|
UID_VAL=$(id -u "$ACTUAL_USER")
|
||||||
GID_VAL=$(id -g "$ACTUAL_USER")
|
GID_VAL=$(id -g "$ACTUAL_USER")
|
||||||
|
|
||||||
# Single-quoted heredoc: ${...} left literal for Docker Compose to expand from .env
|
local _CADDY_NET_BLOCK=""
|
||||||
cat > docker-compose.yml << 'UNIFI_COMPOSE'
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Unquoted heredoc; ${...} used for caddy_net vars; all Docker Compose vars escaped with \$
|
||||||
|
cat > docker-compose.yml << UNIFI_COMPOSE
|
||||||
name: unifi
|
name: unifi
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -158,20 +175,13 @@ services:
|
|||||||
# - "8880:8880" # guest portal HTTP
|
# - "8880:8880" # guest portal HTTP
|
||||||
# - "6789:6789" # mobile speed test
|
# - "6789:6789" # mobile speed test
|
||||||
# - "5514:5514/udp" # remote syslog
|
# - "5514:5514/udp" # remote syslog
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
|
|
||||||
# Inline MongoDB init — Docker Compose interpolates vars from .env at startup.
|
# Inline MongoDB init — Docker Compose interpolates vars from .env at startup.
|
||||||
configs:
|
configs:
|
||||||
init-mongo.js:
|
init-mongo.js:
|
||||||
content: |
|
content: |
|
||||||
db.getSiblingDB("${MONGO_DBNAME}").createUser({user: "${MONGO_USER}", pwd: "${MONGO_PASS}", roles: [{role: "${MONGO_ROLE}", db: "${MONGO_DBNAME}"}]});
|
db.getSiblingDB("\${MONGO_DBNAME}").createUser({user: "\${MONGO_USER}", pwd: "\${MONGO_PASS}", roles: [{role: "\${MONGO_ROLE}", db: "\${MONGO_DBNAME}"}]});
|
||||||
db.getSiblingDB("${MONGO_DBNAME}_stat").createUser({user: "${MONGO_USER}", pwd: "${MONGO_PASS}", roles: [{role: "${MONGO_ROLE}", db: "${MONGO_DBNAME}_stat"}]});
|
db.getSiblingDB("\${MONGO_DBNAME}_stat").createUser({user: "\${MONGO_USER}", pwd: "\${MONGO_PASS}", roles: [{role: "\${MONGO_ROLE}", db: "\${MONGO_DBNAME}_stat"}]});
|
||||||
UNIFI_COMPOSE
|
UNIFI_COMPOSE
|
||||||
|
|
||||||
cat > .env << UNIFI_ENV
|
cat > .env << UNIFI_ENV
|
||||||
|
|||||||
+19
-8
@@ -196,7 +196,24 @@ install_uptimekuma() {
|
|||||||
ensure_docker_dir_ownership "$UPTIME_DIR"
|
ensure_docker_dir_ownership "$UPTIME_DIR"
|
||||||
cd "$UPTIME_DIR" || return 1
|
cd "$UPTIME_DIR" || return 1
|
||||||
|
|
||||||
cat > docker-compose.yml << 'UPTIME_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << UPTIME_COMPOSE
|
||||||
name: uptime-kuma
|
name: uptime-kuma
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -210,13 +227,7 @@ services:
|
|||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
ports:
|
ports:
|
||||||
- "3001:3001"
|
- "3001:3001"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
UPTIME_COMPOSE
|
UPTIME_COMPOSE
|
||||||
|
|
||||||
mkdir -p data
|
mkdir -p data
|
||||||
|
|||||||
+19
-8
@@ -242,7 +242,24 @@ install_vaultwarden() {
|
|||||||
prompt_text "SMTP password:" "" SMTP_PASS
|
prompt_text "SMTP password:" "" SMTP_PASS
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << 'VW_COMPOSE'
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > docker-compose.yml << VW_COMPOSE
|
||||||
name: vaultwarden
|
name: vaultwarden
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -256,13 +273,7 @@ services:
|
|||||||
- ./vaultwarden_data:/data
|
- ./vaultwarden_data:/data
|
||||||
ports:
|
ports:
|
||||||
- "8888:80"
|
- "8888:80"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: ${CADDY_NET:-caddy_net}
|
|
||||||
VW_COMPOSE
|
VW_COMPOSE
|
||||||
|
|
||||||
cat > .env << VW_ENV
|
cat > .env << VW_ENV
|
||||||
|
|||||||
+18
-7
@@ -128,6 +128,23 @@ install_watchtower() {
|
|||||||
NTFY_URL="http://ntfy/watchtower"
|
NTFY_URL="http://ntfy/watchtower"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << WT_COMPOSE
|
cat > docker-compose.yml << WT_COMPOSE
|
||||||
name: watchtower
|
name: watchtower
|
||||||
|
|
||||||
@@ -152,13 +169,7 @@ services:
|
|||||||
- WATCHTOWER_DEBUG=false
|
- WATCHTOWER_DEBUG=false
|
||||||
volumes:
|
volumes:
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
WT_COMPOSE
|
WT_COMPOSE
|
||||||
|
|
||||||
# Create .env
|
# Create .env
|
||||||
|
|||||||
+18
-7
@@ -234,6 +234,23 @@ install_wg-easy() {
|
|||||||
# Escape $ in hash for docker-compose env (bcrypt hashes contain $$)
|
# Escape $ in hash for docker-compose env (bcrypt hashes contain $$)
|
||||||
local WG_HASH_ESCAPED="${WG_PASSWORD_HASH//\$/\$\$}"
|
local WG_HASH_ESCAPED="${WG_PASSWORD_HASH//\$/\$\$}"
|
||||||
|
|
||||||
|
local _CADDY_NET_BLOCK=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_BLOCK=" networks:
|
||||||
|
- caddy_net
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local _CADDY_NET_SECTION=""
|
||||||
|
if [ -d "$DOCKER_DIR/caddy" ]; then
|
||||||
|
_CADDY_NET_SECTION="
|
||||||
|
networks:
|
||||||
|
caddy_net:
|
||||||
|
external: true
|
||||||
|
name: ${SITE_CADDY_NET:-caddy_net}
|
||||||
|
"
|
||||||
|
fi
|
||||||
|
|
||||||
cat > docker-compose.yml << WGEASY_COMPOSE
|
cat > docker-compose.yml << WGEASY_COMPOSE
|
||||||
name: wg-easy
|
name: wg-easy
|
||||||
|
|
||||||
@@ -258,13 +275,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "51820:51820/udp"
|
- "51820:51820/udp"
|
||||||
- "51821:51821/tcp"
|
- "51821:51821/tcp"
|
||||||
networks:
|
${_CADDY_NET_BLOCK}${_CADDY_NET_SECTION}
|
||||||
- caddy_net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
caddy_net:
|
|
||||||
external: true
|
|
||||||
name: \${CADDY_NET:-caddy_net}
|
|
||||||
WGEASY_COMPOSE
|
WGEASY_COMPOSE
|
||||||
|
|
||||||
cat > .env << WGEASY_ENV
|
cat > .env << WGEASY_ENV
|
||||||
|
|||||||
Reference in New Issue
Block a user