Use env vars
This commit is contained in:
parent
e90770c1dc
commit
dce5b863ae
|
@ -0,0 +1,20 @@
|
||||||
|
include .env
|
||||||
|
|
||||||
|
SERVICES = actualbudget gitea homepage linkding nextcloud photoprism restic syncthing traefik
|
||||||
|
|
||||||
|
# Default target: upload .env files for all services
|
||||||
|
upload: $(addprefix upload-,$(SERVICES))
|
||||||
|
|
||||||
|
# Target to upload .env file for a specific service
|
||||||
|
upload-%:
|
||||||
|
@echo "🚀 Uploading .env file for $* service..."
|
||||||
|
scp $*/.env $(REMOTE_USER)@$(REMOTE_HOST):$(REMOTE_PATH)/$*/
|
||||||
|
@echo "✅ Uploaded .env file for $* service successfully."
|
||||||
|
|
||||||
|
# Usage instructions
|
||||||
|
help:
|
||||||
|
@echo "📋 Usage: make [target]"
|
||||||
|
@echo ""
|
||||||
|
@echo "🎯 Targets:"
|
||||||
|
@echo " upload 📤 Upload .env files for all services"
|
||||||
|
@echo " upload-service 📤 Upload .env file for a specific service (e.g., upload-actualbudget)"
|
|
@ -34,7 +34,7 @@ services:
|
||||||
- db
|
- db
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.gitea.rule=Host(`git.velouria.dev`)"
|
- "traefik.http.routers.gitea.rule=Host(${HOST})"
|
||||||
- "traefik.http.routers.gitea.entrypoints=websecure"
|
- "traefik.http.routers.gitea.entrypoints=websecure"
|
||||||
- "traefik.http.routers.gitea.tls.certresolver=myresolver"
|
- "traefik.http.routers.gitea.tls.certresolver=myresolver"
|
||||||
- "traefik.http.services.gitea.loadbalancer.server.port=3000"
|
- "traefik.http.services.gitea.loadbalancer.server.port=3000"
|
||||||
|
|
|
@ -7,8 +7,8 @@ services:
|
||||||
PUID: 1000
|
PUID: 1000
|
||||||
PGID: 1000
|
PGID: 1000
|
||||||
ports:
|
ports:
|
||||||
- "100.104.163.2:4004:3000"
|
- "${HOST}:4004:3000"
|
||||||
volumes:
|
volumes:
|
||||||
- ${PWD}/config:/app/config # Make sure your local config directory exists
|
- ${PWD}/config:/app/config
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro # optional, for docker integrations
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
|
@ -5,7 +5,7 @@ services:
|
||||||
container_name: "${LD_CONTAINER_NAME:-linkding}"
|
container_name: "${LD_CONTAINER_NAME:-linkding}"
|
||||||
image: sissbruecker/linkding:latest
|
image: sissbruecker/linkding:latest
|
||||||
ports:
|
ports:
|
||||||
- "100.104.163.2:${LD_HOST_PORT:-9090}:9090"
|
- "${LD_HOST}:${LD_HOST_PORT:-9090}:9090"
|
||||||
volumes:
|
volumes:
|
||||||
- "${LD_HOST_DATA_DIR:-./data}:/etc/linkding/data"
|
- "${LD_HOST_DATA_DIR:-./data}:/etc/linkding/data"
|
||||||
env_file:
|
env_file:
|
||||||
|
|
|
@ -19,7 +19,7 @@ services:
|
||||||
image: nextcloud:latest
|
image: nextcloud:latest
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- "100.104.163.2:8080:80"
|
- "${HOST}:8080:80"
|
||||||
volumes:
|
volumes:
|
||||||
- ${PWD}/nextcloud:/var/www/html
|
- ${PWD}/nextcloud:/var/www/html
|
||||||
- /mnt/nextcloud_data:/var/www/html/data
|
- /mnt/nextcloud_data:/var/www/html/data
|
||||||
|
@ -45,12 +45,12 @@ volumes:
|
||||||
|
|
||||||
secrets:
|
secrets:
|
||||||
nextcloud_admin_password:
|
nextcloud_admin_password:
|
||||||
file: /etc/secure_config/.nextcloud_admin_password.txt # put admin password in this file
|
file: /etc/secure_config/.nextcloud_admin_password.txt
|
||||||
nextcloud_admin_user:
|
nextcloud_admin_user:
|
||||||
file: /etc/secure_config/.nextcloud_admin_user.txt # put admin username in this file
|
file: /etc/secure_config/.nextcloud_admin_user.txt
|
||||||
postgres_db:
|
postgres_db:
|
||||||
file: /etc/secure_config/.postgres_db.txt # put postgresql db name in this file
|
file: /etc/secure_config/.postgres_db.txt
|
||||||
postgres_password:
|
postgres_password:
|
||||||
file: /etc/secure_config/.postgres_password.txt # put postgresql password in this file
|
file: /etc/secure_config/.postgres_password.txt
|
||||||
postgres_user:
|
postgres_user:
|
||||||
file: /etc/secure_config/.postgres_user.txt # put postgresql username in this file
|
file: /etc/secure_config/.postgres_user.txt
|
||||||
|
|
|
@ -14,12 +14,12 @@ services:
|
||||||
- seccomp:unconfined
|
- seccomp:unconfined
|
||||||
- apparmor:unconfined
|
- apparmor:unconfined
|
||||||
ports:
|
ports:
|
||||||
- "100.104.163.2:2342:2342"
|
- "${HOST}:2342:2342"
|
||||||
environment:
|
environment:
|
||||||
PHOTOPRISM_ADMIN_USER: "admin" # admin login username
|
PHOTOPRISM_ADMIN_USER: "admin" # admin login username
|
||||||
PHOTOPRISM_ADMIN_PASSWORD: ${PHOTOPRISM_DATABASE_PASSWORD} # initial admin password (8-72 characters)
|
PHOTOPRISM_ADMIN_PASSWORD: ${PHOTOPRISM_DATABASE_PASSWORD} # initial admin password (8-72 characters)
|
||||||
PHOTOPRISM_AUTH_MODE: "password" # authentication mode (public, password)
|
PHOTOPRISM_AUTH_MODE: "password" # authentication mode (public, password)
|
||||||
PHOTOPRISM_SITE_URL: "http://100.104.163.2:2342/" # server URL in the format "http(s)://domain.name(:port)/(path)"
|
PHOTOPRISM_SITE_URL: "http://${HOST}:2342/" # server URL in the format "http(s)://domain.name(:port)/(path)"
|
||||||
PHOTOPRISM_DISABLE_TLS: "false" # disables HTTPS/TLS even if the site URL starts with https:// and a certificate is available
|
PHOTOPRISM_DISABLE_TLS: "false" # disables HTTPS/TLS even if the site URL starts with https:// and a certificate is available
|
||||||
PHOTOPRISM_DEFAULT_TLS: "true" # defaults to a self-signed HTTPS/TLS certificate if no other certificate is available
|
PHOTOPRISM_DEFAULT_TLS: "true" # defaults to a self-signed HTTPS/TLS certificate if no other certificate is available
|
||||||
PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video)
|
PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video)
|
||||||
|
|
|
@ -30,7 +30,7 @@ services:
|
||||||
--keep-monthly 12
|
--keep-monthly 12
|
||||||
B2_ACCOUNT_ID: ${B2_ACCOUNT_ID}
|
B2_ACCOUNT_ID: ${B2_ACCOUNT_ID}
|
||||||
B2_ACCOUNT_KEY: ${B2_ACCOUNT_KEY}
|
B2_ACCOUNT_KEY: ${B2_ACCOUNT_KEY}
|
||||||
TZ: 'Europe/Berlin'
|
TZ: ${RESTIC_TIMEZONE}
|
||||||
|
|
||||||
prune:
|
prune:
|
||||||
image: mazzolino/restic:1.7.1
|
image: mazzolino/restic:1.7.1
|
||||||
|
@ -44,7 +44,7 @@ services:
|
||||||
RESTIC_PASSWORD: ${RESTIC_PASSWORD}
|
RESTIC_PASSWORD: ${RESTIC_PASSWORD}
|
||||||
B2_ACCOUNT_ID: ${B2_ACCOUNT_ID}
|
B2_ACCOUNT_ID: ${B2_ACCOUNT_ID}
|
||||||
B2_ACCOUNT_KEY: ${B2_ACCOUNT_KEY}
|
B2_ACCOUNT_KEY: ${B2_ACCOUNT_KEY}
|
||||||
TZ: 'Europe/Berlin'
|
TZ: ${RESTIC_TIMEZONE}
|
||||||
|
|
||||||
check:
|
check:
|
||||||
image: mazzolino/restic:1.7.1
|
image: mazzolino/restic:1.7.1
|
||||||
|
@ -60,7 +60,7 @@ services:
|
||||||
RESTIC_PASSWORD: ${RESTIC_PASSWORD}
|
RESTIC_PASSWORD: ${RESTIC_PASSWORD}
|
||||||
B2_ACCOUNT_ID: ${B2_ACCOUNT_ID}
|
B2_ACCOUNT_ID: ${B2_ACCOUNT_ID}
|
||||||
B2_ACCOUNT_KEY: ${B2_ACCOUNT_KEY}
|
B2_ACCOUNT_KEY: ${B2_ACCOUNT_KEY}
|
||||||
TZ: 'Europe/Berlin'
|
TZ: ${RESTIC_TIMEZONE}
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
private: {}
|
private: {}
|
||||||
|
|
|
@ -11,7 +11,7 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ${PWD}/st-sync:/var/syncthing
|
- ${PWD}/st-sync:/var/syncthing
|
||||||
ports:
|
ports:
|
||||||
- "100.104.163.2:8384:8384" # Web UI
|
- "{HOST}:8384:8384" # Web UI
|
||||||
- 22000:22000/tcp # TCP file transfers
|
- 22000:22000/tcp # TCP file transfers
|
||||||
- 22000:22000/udp # QUIC file transfers
|
- 22000:22000/udp # QUIC file transfers
|
||||||
- 21027:21027/udp # Receive local discovery broadcasts
|
- 21027:21027/udp # Receive local discovery broadcasts
|
||||||
|
|
|
@ -1,38 +1,37 @@
|
||||||
version: "3.3"
|
version: "3.3"
|
||||||
services:
|
services:
|
||||||
traefik:
|
traefik:
|
||||||
image: "traefik:latest"
|
image: "traefik:${TRAEFIK_VERSION}"
|
||||||
container_name: "traefik"
|
container_name: "traefik"
|
||||||
command:
|
command:
|
||||||
- "--api.dashboard=true"
|
- "--api.dashboard=${TRAEFIK_API_DASHBOARD}"
|
||||||
- "--api.insecure=false"
|
- "--api.insecure=${TRAEFIK_API_INSECURE}"
|
||||||
- "--providers.docker=true"
|
- "--providers.docker=${TRAEFIK_PROVIDERS_DOCKER}"
|
||||||
- "--providers.docker.exposedbydefault=false"
|
- "--providers.docker.exposedbydefault=${TRAEFIK_PROVIDERS_DOCKER_EXPOSEDBYDEFAULT}"
|
||||||
- "--entrypoints.web.address=:9091"
|
- "--entrypoints.web.address=${TRAEFIK_ENTRYPOINTS_WEB_ADDRESS}"
|
||||||
- "--entrypoints.websecure.address=:443"
|
- "--entrypoints.websecure.address=${TRAEFIK_ENTRYPOINTS_WEBSECURE_ADDRESS}"
|
||||||
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
|
- "--certificatesresolvers.myresolver.acme.tlschallenge=${TRAEFIK_CERTIFICATESRESOLVERS_MYRESOLVER_ACME_TLSCHALLENGE}"
|
||||||
- "--certificatesresolvers.myresolver.acme.email=mail@velouria.dev"
|
- "--certificatesresolvers.myresolver.acme.email=${TRAEFIK_CERTIFICATESRESOLVERS_MYRESOLVER_ACME_EMAIL}"
|
||||||
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
- "--certificatesresolvers.myresolver.acme.storage=${TRAEFIK_CERTIFICATESRESOLVERS_MYRESOLVER_ACME_STORAGE}"
|
||||||
ports:
|
ports:
|
||||||
- "9091:80"
|
- "${TRAEFIK_PORTS}"
|
||||||
- "443:443"
|
|
||||||
volumes:
|
volumes:
|
||||||
- "./letsencrypt:/letsencrypt"
|
- "${TRAEFIK_VOLUMES_LETSENCRYPT}"
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
- "${TRAEFIK_VOLUMES_DOCKER_SOCK}"
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=${TRAEFIK_LABELS_ENABLE}"
|
||||||
- "traefik.http.routers.traefik.rule=Host(`traefik.velouria.dev`)"
|
- "traefik.http.routers.traefik.rule=${TRAEFIK_LABELS_ROUTER_RULE}"
|
||||||
- "traefik.http.routers.traefik.entrypoints=websecure"
|
- "traefik.http.routers.traefik.entrypoints=${TRAEFIK_LABELS_ROUTER_ENTRYPOINTS}"
|
||||||
- "traefik.http.routers.traefik.service=api@internal"
|
- "traefik.http.routers.traefik.service=${TRAEFIK_LABELS_ROUTER_SERVICE}"
|
||||||
- "traefik.http.routers.traefik.tls.certresolver=myresolver"
|
- "traefik.http.routers.traefik.tls.certresolver=${TRAEFIK_LABELS_ROUTER_TLS_CERTRESOLVER}"
|
||||||
- "traefik.http.routers.traefik.middlewares=traefik-auth"
|
- "traefik.http.routers.traefik.middlewares=${TRAEFIK_LABELS_ROUTER_MIDDLEWARES}"
|
||||||
- "traefik.http.middlewares.traefik-auth.basicauth.users=user:$$apr1$$DzkytTmy$$B/p/aGYr4N4iH0JW8/zbg/"
|
- "traefik.http.middlewares.traefik-auth.basicauth.users=${TRAEFIK_MIDDLEWARES_TRAEFIK_AUTH_USERS}"
|
||||||
- "homepage.group=Base"
|
- "homepage.group=${TRAEFIK_HOMEPAGE_GROUP}"
|
||||||
- "homepage.name=Traefik"
|
- "homepage.name=${TRAEFIK_HOMEPAGE_NAME}"
|
||||||
- "homepage.href=https://traefik.velouria.dev/"
|
- "homepage.href=${TRAEFIK_HOMEPAGE_HREF}"
|
||||||
networks:
|
networks:
|
||||||
- traefik_network
|
- traefik_network
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
traefik_network:
|
traefik_network
|
||||||
external: true
|
external: true
|
Loading…
Reference in New Issue