Files
esh-pfi-infrastructure/servers/esh-docker-vm/system-details.txt
T
vh b443b5c220 Refresh ana-docker + esh-docker-vm snapshots after moving inline secrets to .env
Upstream compose files on both hosts now reference ${DB_ROOT_PW} (seafile)
  and ${ADGUARD_WIDGET_PASSWORD} (esh adguard) from their respective .env,
  so next refreshes no longer capture the literal passwords.
2026-04-20 14:30:07 -07:00

962 lines
31 KiB
Plaintext

===== HOST =====
Hostname: esh-vm-docker.esteban.net
Date: 2026-04-20T14:28:06-07:00
Uptime: up 2 weeks, 6 days, 22 hours, 11 minutes
OS: Debian GNU/Linux 12 (bookworm)
Kernel: 6.1.0-41-amd64
Arch: x86_64
===== HARDWARE =====
CPU cores: 16
CPU model: QEMU Virtual CPU version 2.5+
MemTotal: 15.6 GB
MemAvailable: 11.4 GB
===== GPUS =====
nvidia-smi not present (no NVIDIA GPUs or driver not installed)
===== FILESYSTEMS (df) =====
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 250G 122G 117G 52% /
10.0.50.50:/mnt/backup 92T 26G 92T 1% /mnt/backup
10.0.50.50:/mnt/compose 1.5T 4.1G 1.5T 1% /mnt/compose
10.0.50.50:/mnt/documents 92T 0 92T 0% /mnt/documents
10.0.50.50:/mnt/books 92T 96G 92T 1% /mnt/books
===== PERSISTENT MOUNTS (/etc/fstab, non-comment) =====
UUID=a2e1bc05-3afa-4803-9ab2-dfee1d5c9e6c / ext4 errors=remount-ro 0 1
UUID=4f4fa84b-2b71-4ee5-9be4-2deb4c287d8e none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
10.0.50.50:/mnt/compose /mnt/compose nfs defaults 0 0
10.0.50.50:/mnt/books /mnt/books nfs defaults 0 0
10.0.50.50:/mnt/documents /mnt/documents nfs defaults 0 0
10.0.50.50:/mnt/backup /mnt/backup nfs defaults 0 0
===== TARGETED DATA PATHS =====
/opt (total: 62M)
total 16
drwxr-xr-x 4 root root 4096 2025-03-18 23:59 .
drwxr-xr-x 19 root root 4096 2025-12-29 14:50 ..
drwxr-xr-x 5 lkraven lkraven 4096 2025-03-18 23:58 docker
drwxrwxrwx 6 lkraven lkraven 4096 2024-06-13 22:00 docker-bu
/opt/docker (total: 53M)
total 32
drwxr-xr-x 5 lkraven lkraven 4096 2025-03-18 23:58 .
drwxr-xr-x 4 root root 4096 2025-03-18 23:59 ..
drwxr-xr-x 18 lkraven lkraven 4096 2026-04-19 01:08 compose
drwxr-xr-x 7 lkraven lkraven 4096 2025-11-29 00:26 conf
drwxr-xr-x 8 lkraven lkraven 4096 2025-03-18 23:59 .git
-rw-r--r-- 1 lkraven lkraven 34 2025-03-18 23:58 .gitignore
-rw-r--r-- 1 lkraven lkraven 1059 2025-03-18 23:58 LICENSE
-rw-r--r-- 1 lkraven lkraven 60 2025-03-18 23:58 README.md
/opt/docker/compose (total: 180K)
total 76
drwxr-xr-x 18 lkraven lkraven 4096 2026-04-19 01:08 .
drwxr-xr-x 5 lkraven lkraven 4096 2025-03-18 23:58 ..
drwxr-xr-x 2 lkraven lkraven 4096 2026-04-20 14:27 adguard
drwxr-xr-x 2 root root 4096 2026-04-19 01:07 beszel-esh-vm-docker
drwxr-xr-x 2 lkraven lkraven 4096 2025-03-18 23:58 calibre
drwxr-xr-x 2 lkraven lkraven 4096 2025-03-18 23:58 calibre-web
drwxr-xr-x 2 root root 4096 2025-10-03 22:01 cloudflare-ddns-esh
drwxr-xr-x 2 lkraven lkraven 4096 2025-03-18 23:58 dockge
drwxr-xr-x 2 root root 4096 2026-04-19 00:30 dozzle-agent
drwxr-xr-x 2 lkraven lkraven 4096 2025-03-18 23:58 drawio
drwxr-xr-x 2 lkraven lkraven 4096 2025-03-18 23:58 esphome
drwxr-xr-x 2 lkraven lkraven 4096 2025-08-31 17:39 homeassistant
drwxr-xr-x 2 lkraven lkraven 4096 2025-05-19 22:10 homepage
drwxr-xr-x 2 root root 4096 2025-11-29 00:40 mosquitto
drwxr-xr-x 2 lkraven lkraven 4096 2025-08-28 09:37 paperless-ngx
drwxr-xr-x 2 lkraven lkraven 4096 2025-08-31 17:41 pgadmin
-rw-r--r-- 1 lkraven lkraven 25 2025-03-18 23:58 README.md
drwxr-xr-x 2 lkraven lkraven 4096 2025-05-19 22:10 traefik
drwxr-xr-x 2 lkraven lkraven 4096 2025-03-18 23:58 uptimekuma
/opt/docker/conf (total: 50M)
total 28
drwxr-xr-x 7 lkraven lkraven 4096 2025-11-29 00:26 .
drwxr-xr-x 5 lkraven lkraven 4096 2025-03-18 23:58 ..
drwxr-xr-x 2 nas nas 4096 2026-03-20 21:00 calibre-web
drwxr-xr-x 2 lkraven lkraven 4096 2025-10-03 22:13 cloudflare-ddns
drwxr-xr-x 5 lkraven lkraven 4096 2026-03-30 22:30 homepage
drwxr-xr-x 2 1883 1883 4096 2025-11-29 00:50 mosquitto
drwxr-xr-x 3 lkraven lkraven 4096 2025-03-18 23:58 traefik-esh
/var/lib/docker (total: 4.0K)
/srv (total: 20K)
total 12
drwxr-xr-x 3 root root 4096 2024-06-13 21:52 .
drwxr-xr-x 19 root root 4096 2025-12-29 14:50 ..
drwxrwxrwx 3 root root 4096 2024-06-13 21:54 backups
===== DOCKER =====
Server: 20.10.24+dfsg1 Client: 20.10.24+dfsg1
----- docker info -----
Containers: 24 (running 21, paused 0, stopped 3)
Images: 84
Runtimes: map[io.containerd.runc.v2:{runc [] <nil>} io.containerd.runtime.v1.linux:{runc [] <nil>} runc:{runc [] <nil>}]
Default runtime: runc
Storage driver: overlay2
Root dir: /var/lib/docker
Server version: 20.10.24+dfsg1
----- running containers -----
NAMES IMAGE STATUS PORTS
beszel-agent henrygd/beszel-agent:latest Up 37 hours
dozzle-agent amir20/dozzle:latest Up 38 hours 0.0.0.0:7007->7007/tcp, 8080/tcp
traefik traefik:latest Up 4 days 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:8380->8080/tcp, :::8380->8080/tcp
paperless-ngx-webserver-1 ghcr.io/paperless-ngx/paperless-ngx:latest Up 2 weeks (healthy) 0.0.0.0:8200->8000/tcp, :::8200->8000/tcp
paperless-ngx-broker-1 redis:7 Up 2 weeks 6379/tcp
paperless-ngx-backup-1 offen/docker-volume-backup:latest Up 2 weeks
homepage ghcr.io/gethomepage/homepage:latest Up 2 weeks (healthy) 0.0.0.0:5100->3000/tcp, :::5100->3000/tcp
homeassistant homeassistant/home-assistant:latest Up 46 hours
mosquitto eclipse-mosquitto:latest Up 2 weeks 0.0.0.0:1883->1883/tcp, :::1883->1883/tcp
adguardhome adguard/adguardhome Up 2 weeks 67-68/udp, 0.0.0.0:53->53/udp, :::53->53/udp, 443/udp, 0.0.0.0:53->53/tcp, :::53->53/tcp, 853/udp, 0.0.0.0:853->853/tcp, :::853->853/tcp, 3000/udp, 5443/tcp, 0.0.0.0:3000->3000/tcp, 0.0.0.0:784->784/udp, :::3000->3000/tcp, :::784->784/udp, 5443/udp, 6060/tcp, 0.0.0.0:8080->80/tcp, :::8080->80/tcp, 0.0.0.0:8443->443/tcp, :::8443->443/tcp
cloudflare-ddns timothyjmiller/cloudflare-ddns:latest Up 2 weeks
pgadmin4_container dpage/pgadmin4 Up 2 weeks 443/tcp, 0.0.0.0:5050->80/tcp, :::5050->80/tcp
pgadmin-backup-1 1127ad194f2f Up 2 weeks
esphome ghcr.io/esphome/esphome Up 2 weeks (healthy)
drawio jgraph/drawio Up 2 weeks (healthy) 0.0.0.0:8087->8080/tcp, :::8087->8080/tcp, 0.0.0.0:8447->8443/tcp, :::8447->8443/tcp
calibre-web lscr.io/linuxserver/calibre-web:latest Up 2 weeks 0.0.0.0:8083->8083/tcp, :::8083->8083/tcp
calibre lscr.io/linuxserver/calibre:latest Up 2 weeks 3000-3001/tcp, 0.0.0.0:8181->8181/tcp, :::8181->8181/tcp, 0.0.0.0:8082->8080/tcp, :::8082->8080/tcp, 0.0.0.0:8281->8081/tcp, :::8281->8081/tcp
45d2522a8cb6_uptime-kuma louislam/uptime-kuma:latest Up 2 weeks (healthy) 0.0.0.0:3001->3001/tcp, :::3001->3001/tcp
dockge-dockge-1 louislam/dockge:latest Up 2 weeks (healthy) 0.0.0.0:5001->5001/tcp, :::5001->5001/tcp
portainer_agent portainer/agent:2.19.4 Up 2 weeks 0.0.0.0:9001->9001/tcp, :::9001->9001/tcp
portainer portainer/portainer-ce:latest Up 2 weeks 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp, 9000/tcp
----- all containers -----
NAMES IMAGE STATUS
beszel-agent henrygd/beszel-agent:latest Up 37 hours
dozzle-agent amir20/dozzle:latest Up 38 hours
traefik traefik:latest Up 4 days
paperless-ngx-webserver-1 ghcr.io/paperless-ngx/paperless-ngx:latest Up 2 weeks (healthy)
paperless-ngx-broker-1 redis:7 Up 2 weeks
paperless-ngx-backup-1 offen/docker-volume-backup:latest Up 2 weeks
homepage ghcr.io/gethomepage/homepage:latest Up 2 weeks (healthy)
homeassistant homeassistant/home-assistant:latest Up 46 hours
mosquitto eclipse-mosquitto:latest Up 2 weeks
adguardhome adguard/adguardhome Up 2 weeks
friendly_maxwell 0745ced90756 Exited (13) 4 months ago
focused_pascal 0745ced90756 Exited (13) 4 months ago
pedantic_proskuriakova 0745ced90756 Exited (3) 4 months ago
cloudflare-ddns timothyjmiller/cloudflare-ddns:latest Up 2 weeks
pgadmin4_container dpage/pgadmin4 Up 2 weeks
pgadmin-backup-1 1127ad194f2f Up 2 weeks
esphome ghcr.io/esphome/esphome Up 2 weeks (healthy)
drawio jgraph/drawio Up 2 weeks (healthy)
calibre-web lscr.io/linuxserver/calibre-web:latest Up 2 weeks
calibre lscr.io/linuxserver/calibre:latest Up 2 weeks
45d2522a8cb6_uptime-kuma louislam/uptime-kuma:latest Up 2 weeks (healthy)
dockge-dockge-1 louislam/dockge:latest Up 2 weeks (healthy)
portainer_agent portainer/agent:2.19.4 Up 2 weeks
portainer portainer/portainer-ce:latest Up 2 weeks
----- networks -----
NAME DRIVER SCOPE
adguard_default bridge local
bridge bridge local
calibre-web_default bridge local
cloudflare-ddns-esh_default bridge local
homeassistant_macvlan_net macvlan local
homepage_default bridge local
host host local
none null local
pgadmin_default bridge local
traefik-net bridge local
----- networks (external, non-default — worth knowing for compose external: true) -----
adguard_default
calibre-web_default
cloudflare-ddns-esh_default
homepage_default
pgadmin_default
traefik-net
----- named volumes -----
VOLUME NAME DRIVER
6cdde6cf4b58151d434e8a3da23e77d9c04acdaa574a91ff7bbe60ea113a2adf local
6f7206c067f22a53bf7d0c737f74075f849c11fd535b884c4d3cbb73d275bc21 local
007fc81bd8008b22173f8e4a365b2ca43a37080902ab961a197dde0d8782c786 local
8b1ff384b6cb4859c64a21b51d32780027a3682dc1852a36617b59870ea15e32 local
adguard_adguard-confdir local
adguard_adguard-workdir local
ae127367f71c43b662b16c8232a135c59f2a873dcdf606dfa01967fad1ac915e local
beszel-esh-vm-docker_beszel_agent_data local
beszel-vm-esh-nas_beszel_agent_data local
c7a5978e1b811c4d5b15404e405c0ec32a541f8a921a054b0f725a3010a76684 local
dockge_dockge_data local
dozzle-agent_dozzle_agent_data local
homeassistant_homeassistant_data local
mosquitto_mosquitto_data local
mosquitto_mosquitto_log local
paperless-ngx_data local
paperless-ngx_media local
paperless-ngx_redisdata local
pgadmin_pgadmin-data local
portainer_data local
uptimekuma_uptime-kuma local
----- compose projects currently running -----
adguard
beszel-esh-vm-docker
calibre
calibre-web
cloudflare-ddns-esh
dockge
dozzle-agent
drawio
esphome
homeassistant
homepage
mosquitto
paperless-ngx
pgadmin
traefik
uptimekuma
===== COMPOSE FILES (/opt/docker/compose/) =====
>>> /opt/docker/compose/adguard/docker-compose.yml
#version: "3"
services:
adguardhome:
image: adguard/adguardhome
container_name: adguardhome
ports:
- 53:53/tcp
- 53:53/udp
- 784:784/udp
- 853:853/tcp
- 3000:3000/tcp
- 8080:80/tcp
- 8443:443/tcp
volumes:
- adguard-workdir:/opt/adguardhome/work
- adguard-confdir:/opt/adguardhome/conf
restart: unless-stopped
labels:
# This means the container will be stopped during backup to ensure
# backup integrity. You can omit this label if stopping during backup
# not required. Can be omitted if false.
- docker-volume-backup.stop-during-backup=false
- homepage.group=ESH
- homepage.name=AdGuard Home
- homepage.icon=si-adguard
- homepage.description=DNS
- homepage.href=http://10.0.50.45:8080
- homepage.widget.type=adguard
- homepage.widget.url=http://10.0.50.45:8080
- homepage.widget.username=lkraven
- homepage.widget.password=${ADGUARD_WIDGET_PASSWORD}
networks:
- tnet
volumes:
adguard-workdir: null
adguard-confdir: null
networks:
tnet:
name: traefik-net
external: true
>>> /opt/docker/compose/beszel-esh-vm-docker/compose.yaml
# Beszel — lightweight server/container monitoring.
#
# Hub: single web UI with the SQLite store. Agents: per-host metric collectors
# that the hub pulls from over SSH.
#
# Multi-host layout via compose profiles:
# COMPOSE_PROFILES=hub → hub only (ana-docker)
# COMPOSE_PROFILES=hub,agent → hub + local agent on the same host
# COMPOSE_PROFILES=agent → agent only (ana-ml2)
#
# The agent uses network_mode: host so it sees real host CPU/mem/net/disk
# counters rather than container-scoped ones — that's why it can't share
# the tnet network with the hub.
#
# All tunables live in .env — edit that, not this file.
services:
beszel:
image: henrygd/beszel:${BESZEL_VERSION}
container_name: beszel
profiles: [hub]
restart: unless-stopped
ports:
- "${BESZEL_PORT}:8090"
volumes:
- beszel_data:/beszel_data
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:8090/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
networks:
- tnet
labels:
- homepage.group=PFI-ANA
- homepage.name=Beszel
- homepage.icon=mdi-chart-line
- homepage.description=Server + container monitoring
- homepage.href=http://10.250.50.70:${BESZEL_PORT}
beszel-agent:
image: henrygd/beszel-agent:${BESZEL_VERSION}
container_name: beszel-agent
profiles: [agent]
restart: unless-stopped
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- beszel_agent_data:/var/lib/beszel-agent
environment:
- PORT=${BESZEL_AGENT_PORT:-45876}
- KEY=${BESZEL_HUB_KEY}
- HUB_URL=${HUB_URL}
- TOKEN=${BESZEL_TOKEN}
- EXTRA_FILESYSTEMS=${BESZEL_EXTRA_FS:-}
volumes:
beszel_data:
beszel_agent_data:
networks:
tnet:
name: traefik-net
external: true
>>> /opt/docker/compose/calibre/compose.yaml
version: "2.1"
services:
calibre:
image: lscr.io/linuxserver/calibre:latest
container_name: calibre
security_opt:
- seccomp:unconfined #optional
environment:
- PUID=2000
- PGID=2000
- TZ=America/Los_Angeles
- PASSWORD= #optional
- CLI_ARGS= #optional
volumes:
- /mnt/books/calibre:/config
ports:
- 8082:8080
- 8181:8181
- 8281:8081
restart: unless-stopped
labels:
- homepage.group=Media
- homepage.name=Calibre
- homepage.icon=mdi-bookshelf
- homepage.description=EBook Server (esh)
- homepage.href=http://10.0.50.45:8082
networks:
- tnet
networks:
tnet:
name: traefik-net
external: true
>>> /opt/docker/compose/calibre-web/compose.yaml
services:
calibre-web:
image: lscr.io/linuxserver/calibre-web:latest
container_name: calibre-web
environment:
- PUID=2000
- PGID=2000
- TZ=Etc/UTC
- DOCKER_MODS=linuxserver/mods:universal-calibre #optional
- OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
volumes:
- /opt/docker/conf/calibre-web:/config
- /mnt/books/calibre/calibre_library:/books
labels:
- homepage.group=Media
- homepage.name=Calibre-Web
- homepage.icon=si-calibreweb
- homepage.description=EBook Server (esh)
- homepage.href=http://10.0.50.45:8083
ports:
- 8083:8083
restart: unless-stopped
networks: {}
>>> /opt/docker/compose/cloudflare-ddns-esh/compose.yaml
services:
cloudflare-ddns:
image: timothyjmiller/cloudflare-ddns:latest
container_name: cloudflare-ddns
volumes:
- /opt/docker/conf/cloudflare-ddns/config.json:/config.json
restart: unless-stopped
networks: {}
>>> /opt/docker/compose/dockge/compose.yaml
services:
dockge:
image: louislam/dockge:latest
restart: unless-stopped
ports:
# Host Port : Container Port
- 5001:5001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- dockge_data:/app/data
- /opt/docker/compose:/opt/docker/compose
labels:
- homepage.group=ESH
- homepage.name=Dockge
- homepage.icon=si-portainer
- homepage.description=Docker
- homepage.href=http://10.0.50.45:5001
environment:
# Tell Dockge where is your stacks directory
- DOCKGE_STACKS_DIR=/opt/docker/compose
networks:
- tnet
volumes:
dockge_data: null
networks:
tnet:
name: traefik-net
external: true
>>> /opt/docker/compose/dozzle-agent/compose.yaml
# Dozzle — container log viewer.
#
# Multi-host layout via compose profiles:
# COMPOSE_PROFILES=hub → runs the web UI (deploy on ana-docker)
# COMPOSE_PROFILES=agent → runs the remote agent (deploy on ana-ml2)
#
# Same compose.yaml on both servers; per-host `.env` picks the profile.
#
# All tunables live in .env — edit that, not this file.
services:
dozzle:
image: amir20/dozzle:${DOZZLE_VERSION}
container_name: dozzle
profiles:
- hub
restart: unless-stopped
ports:
- ${DOZZLE_PORT}:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- dozzle_data:/data
environment:
- DOZZLE_HOSTNAME=${DOZZLE_HOSTNAME}
- DOZZLE_REMOTE_AGENT=${DOZZLE_REMOTE_AGENT:-}
- DOZZLE_AUTH_PROVIDER=${DOZZLE_AUTH_PROVIDER:-none}
- DOZZLE_USERNAME=${DOZZLE_USERNAME:-}
- DOZZLE_PASSWORD=${DOZZLE_PASSWORD:-}
healthcheck:
test:
- CMD
- /dozzle
- healthcheck
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
networks:
- tnet
labels:
- homepage.group=PFI-ANA
- homepage.name=Dozzle
- homepage.icon=mdi-text-box-search
- homepage.description=Container logs (ana-docker + ana-ml2)
- homepage.href=http://10.250.50.70:${DOZZLE_PORT}
dozzle-agent:
image: amir20/dozzle:${DOZZLE_VERSION}
container_name: dozzle-agent
profiles:
- agent
restart: unless-stopped
command: agent
ports:
- ${DOZZLE_AGENT_BIND:-0.0.0.0}:${DOZZLE_AGENT_PORT}:7007
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- dozzle_agent_data:/data
environment:
- DOZZLE_HOSTNAME=${DOZZLE_HOSTNAME}
networks:
- tnet
volumes:
dozzle_data: null
dozzle_agent_data: null
networks:
tnet:
name: traefik-net
external: true
>>> /opt/docker/compose/drawio/compose.yaml
services:
drawio:
image: jgraph/drawio
container_name: drawio
restart: unless-stopped
ports:
- 8087:8080
- 8447:8443
healthcheck:
test:
- CMD-SHELL
- curl -f http://127.0.0.1:8080 || exit 1
interval: 1m30s
timeout: 10s
retries: 5
start_period: 10s
labels:
- homepage.group=Apps
- homepage.name=draw.io
- homepage.icon=mdi-pencil
- homepage.description=Draw.IO Graphing (esh)
- homepage.href=http://10.0.50.45:8087
networks:
- tnet
networks:
tnet:
name: traefik-net
external: true
>>> /opt/docker/compose/esphome/compose.yaml
version: '3'
services:
esphome:
container_name: esphome
image: ghcr.io/esphome/esphome
volumes:
- /path/to/esphome/config:/config
- /etc/localtime:/etc/localtime:ro
restart: always
privileged: true
network_mode: host
environment:
- USERNAME=test
- PASSWORD=ChangeMe
>>> /opt/docker/compose/homeassistant/compose.yaml
services:
homeassistant:
image: homeassistant/home-assistant:latest
container_name: homeassistant
environment:
- PUID=2000
- PGID=2000
- TZ=America/Los_Angeles
volumes:
- homeassistant_data:/config
restart: unless-stopped
env_file:
- .env
networks:
macvlan_net:
ipv4_address: 10.0.50.46
labels:
- homepage.group=Apps
- homepage.name=Home Assistant
- homepage.icon=si-homeassistant
- homepage.description=Home Automation (esh)
- homepage.href=http://10.0.50.46:8123
networks:
macvlan_net:
driver: macvlan
driver_opts:
parent: ens18
ipam:
config:
- subnet: 10.0.50.0/24
volumes:
homeassistant_data: null
>>> /opt/docker/compose/homepage/compose.yaml
services:
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
environment:
PUID: 1000
PGID: 1000
ports:
- 5100:3000
volumes:
- /opt/docker/conf/homepage:/app/config # Make sure your local config directory exists
- /var/run/docker.sock:/var/run/docker.sock:ro # optional, for docker integrations
restart: unless-stopped
networks:
- tnet
labels:
- traefik.enable=true
- traefik.http.routers.homepage.rule=host(`eshhome`) || host(`10.0.50.45`)
|| host (`eshhome.esteban.net`)
- traefik.http.services.homepage.loadbalancer.server.port=3000
- traefik.http.routers.homepage.priority=1
env_file:
- .env
networks:
tnet:
name: traefik-net
external: true
>>> /opt/docker/compose/mosquitto/compose.yaml
services:
mosquitto:
container_name: mosquitto
image: eclipse-mosquitto:latest
restart: unless-stopped
ports:
- 1883:1883/tcp
volumes:
- /opt/docker/conf/mosquitto:/mosquitto/config
- mosquitto_data:/mosquitto/data
- mosquitto_log:/mosquitto/log
networks:
- tnet
labels:
- homepage.group=Apps
- homepage.name=Mosquitto
- homepage.icon=mdi-bug
- homepage.description=MQQT Broker port 1883
networks:
tnet:
name: traefik-net
external: true
volumes:
mosquitto_data: null
mosquitto_log: null
>>> /opt/docker/compose/paperless-ngx/compose.yaml
#version: "3.4"
services:
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
networks:
- tnet
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- broker
ports:
- 8200:8000
healthcheck:
test:
- CMD
- curl
- -fs
- -S
- --max-time
- "2"
- http://localhost:8000
interval: 30s
timeout: 10s
retries: 5
volumes:
- data:/usr/src/paperless/data
- media:/usr/src/paperless/media
- /mnt/documents/paperless/export:/usr/src/paperless/export
- /mnt/documents/paperless/consume:/usr/src/paperless/consume
# env_file: docker-compose.env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: 10.0.50.60
PAPERLESS_DBPORT: 5432
PAPERLESS_DBNAME: paperless-ng
PAPERLESS_DBUSER: paperless-ng
PAPERLESS_DBPASS: paperless-ng
# PAPERLESS_MEDIA_ROOT=/data/media
PAPERLESS_CONSUMPTION_DIR: /usr/src/paperless/consume
PAPERLESS_EXPORT_DIR: /usr/src/paperless/export
PAPERLESS_CONSUMER_POLLING: 30
# PAPERLESS_DATA_DIR=/config
labels:
- homepage.group=Media
- homepage.name=PaperlessNGX
- homepage.icon=mdi-file-cabinet
- homepage.description=Document Store (esh)
- homepage.href=http://10.0.50.45:8200
- homepage.sitemonitor=http://10.0.50.45:8200
- homepage.widget.type=paperlessngx
- homepage.widget.url=http://10.0.50.45:8200
- homepage.widget.key=${API_KEY}
networks:
- tnet
env_file:
- .env
backup:
image: offen/docker-volume-backup:latest
restart: always
volumes:
# volumes to backup.
- data:/backup/paperless-data:ro
- media:/backup/paperless-media:ro
- redisdata:/backup/paperless-redisdata:ro
- /mnt/backup/docker/esh-vm-docker/paperless:/archive
# can omit below if not stopping service.
# - /var/run/docker.sock:/var/run/docker.sock:ro
env_file:
- .env
networks:
- tnet
networks:
tnet:
name: traefik-net
external: true
volumes:
data: null
media: null
redisdata: null
>>> /opt/docker/compose/pgadmin/compose.yaml
# version: "3.8"
services:
pgadmin:
image: dpage/pgadmin4
container_name: pgadmin4_container
restart: always
ports:
- 5050:80
environment:
PGADMIN_DEFAULT_EMAIL: ${DEFAULT_EMAIL}
PGADMIN_DEFAULT_PASSWORD: ${DEFAULT_PASSWORD}
volumes:
- pgadmin-data:/var/lib/pgadmin
labels:
- homepage.group=Apps
- homepage.name=PGAdmin
- homepage.icon=mdi-database
- homepage.description=pgsql Manager (esh)
- homepage.href=http://10.0.50.45:5050
networks:
- tnet
env_file:
- .env
backup:
image: offen/docker-volume-backup:latest
restart: always
volumes:
# volumes to backup.
- pgadmin-data:/backup/pgadmin-data:ro
- /mnt/backup/docker/esh-vm-docker/pgadmin:/archive
# can omit below if not stopping service.
# - /var/run/docker.sock:/var/run/docker.sock:ro
env_file:
- .env
networks:
tnet:
name: traefik-net
external: true
volumes:
pgadmin-data: null
>>> /opt/docker/compose/traefik/docker-compose.yml
#version: "3.3"
services:
traefik:
image: traefik:latest
container_name: traefik
command:
- --log.level=DEBUG
- --configFile=/etc/traefik/traefik.yml
- --api.insecure=true
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
- --experimental.plugins.bouncer.modulename=github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin
- --experimental.plugins.bouncer.version=v1.6.0
environment:
- AWS_ACCESS_KEY_ID=${AWS_KEY}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET}
- AWS_REGION=${AWS_REGION}
- AWS_HOSTED_ZONE_ID=${AWS_ZONEID}
ports:
- 80:80
- 8380:8080
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /opt/docker/conf/traefik-esh:/etc/traefik
labels:
- homepage.group=ESH
- homepage.name=traefik
- homepage.icon=si-traefikproxy
- homepage.sitemonitor=http://10.0.50.45:8380
- homepage.href=http://10.0.50.45:8380
- homepage.widget.type=traefik
- homepage.widget.url=http://10.0.50.45:8380
- traefik.http.middlewares.crowdsec.plugin.bouncer.enabled=true
- traefik.http.middlewares.crowdsec.plugin.bouncer.crowdseclapikey=${CROWDSEC_KEY}
- traefik.http.middlewares.crowdsec.plugin.bouncer.crowdseclapihost=crowdsec:8080
- traefik.http.middlewares.crowdsec.plugin.bouncer.crowdseclapischeme=http
- traefik.http.middlewares.crowdsec.plugin.bouncer.crowdsecMode=live
- traefik.http.middlewares.crowdsec.plugin.bouncer.defaultDecisionSeconds=60
networks:
- tnet
env_file:
- .env
networks:
tnet:
name: traefik-net
external: true
>>> /opt/docker/compose/uptimekuma/compose.yaml
services:
uptime-kuma:
restart: always
ports:
- 3001:3001
volumes:
- uptime-kuma:/app/data
container_name: uptime-kuma
image: louislam/uptime-kuma:latest
labels:
- homepage.group=Apps
- homepage.name=Uptime Kuma
- homepage.icon=mdi-arrow-up-bold-circle
- homepage.description=Service Monitoring (esh)
- homepage.href=http://10.0.50.45:3001
- homepage.widget.type=uptimekuma
- homepage.widget.url=http://10.0.50.45:3001
- homepage.widget.slug=nethealth
networks:
- tnet
volumes:
uptime-kuma: {}
networks:
tnet:
name: traefik-net
external: true
===== CONFIG LAYOUT (/opt/docker/conf/ — top 200 entries) =====
/opt/docker/conf
/opt/docker/conf/calibre-web
/opt/docker/conf/calibre-web/app.db
/opt/docker/conf/calibre-web/.CALIBRE_RELEASE
/opt/docker/conf/calibre-web/calibre-web.log
/opt/docker/conf/calibre-web/calibre-web.log.1
/opt/docker/conf/calibre-web/calibre-web.log.2
/opt/docker/conf/calibre-web/client_secrets.json
/opt/docker/conf/calibre-web/gdrive.db
/opt/docker/conf/calibre-web/.key
/opt/docker/conf/cloudflare-ddns
/opt/docker/conf/cloudflare-ddns/config.json
/opt/docker/conf/homepage
/opt/docker/conf/homepage/bookmarks.yaml
/opt/docker/conf/homepage/custom.css
/opt/docker/conf/homepage/custom.js
/opt/docker/conf/homepage/docker.yaml
/opt/docker/conf/homepage/imgs
/opt/docker/conf/homepage/imgs/bg1.jpg
/opt/docker/conf/homepage/imgs/Thumbs.db
/opt/docker/conf/homepage/kubernetes.yaml
/opt/docker/conf/homepage/logs
/opt/docker/conf/homepage/logs/homepage.log
/opt/docker/conf/homepage/nas-tls
/opt/docker/conf/homepage/nas-tls/ca.pem
/opt/docker/conf/homepage/nas-tls/cert.pem
/opt/docker/conf/homepage/nas-tls/key.pem
/opt/docker/conf/homepage/proxmox.yaml
/opt/docker/conf/homepage/services.yaml
/opt/docker/conf/homepage/settings.yaml
/opt/docker/conf/homepage/widgets.yaml
/opt/docker/conf/mosquitto
/opt/docker/conf/mosquitto/mosquitto.conf
/opt/docker/conf/mosquitto/mosquitto.log
/opt/docker/conf/mosquitto/mosquitto.passwd
/opt/docker/conf/traefik-esh
/opt/docker/conf/traefik-esh/certs
/opt/docker/conf/traefik-esh/certs/acme.json
/opt/docker/conf/traefik-esh/traefik.yml
===== LISTENING PORTS =====
0.0.0.0:111
0.0.0.0:1883
0.0.0.0:22
0.0.0.0:3000
0.0.0.0:3001
0.0.0.0:443
0.0.0.0:5001
0.0.0.0:5050
0.0.0.0:5100
0.0.0.0:53
0.0.0.0:6052
0.0.0.0:7007
0.0.0.0:80
0.0.0.0:8000
0.0.0.0:8080
0.0.0.0:8082
0.0.0.0:8083
0.0.0.0:8087
0.0.0.0:8181
0.0.0.0:8200
0.0.0.0:8281
0.0.0.0:8380
0.0.0.0:8443
0.0.0.0:8447
0.0.0.0:853
0.0.0.0:9001
0.0.0.0:9443
[::]:111
127.0.0.1:35469
[::]:1883
[::]:22
*:2375
[::]:3000
[::]:3001
[::]:443
[::]:5001
[::]:5050
[::]:5100
[::]:53
[::]:80
[::]:8000
[::]:8080
[::]:8082
[::]:8083
[::]:8087
[::]:8181
[::]:8200
[::]:8281
[::]:8380
[::]:8443
[::]:8447
[::]:853
[::]:9001
[::]:9443
===== MODEL / HUGGINGFACE CACHES =====
===== DOCKER-ADJACENT SYSTEMD SERVICES =====
containerd.service running
docker.service running
===== DONE =====
Paste the above back into the chat, or pass a path as argv[1] to save.