359 lines
8.6 KiB
YAML
359 lines
8.6 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# Firefly III
|
|
firefly-app:
|
|
image: fireflyiii/core:latest
|
|
hostname: app
|
|
container_name: firefly_iii_core
|
|
networks:
|
|
- firefly_iii
|
|
restart: always
|
|
volumes:
|
|
- firefly_iii_upload:/var/www/html/storage/upload
|
|
env_file: ./firefly/.env
|
|
ports:
|
|
- '80:8080'
|
|
depends_on:
|
|
- firefly-db
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/api/v1/about"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
|
|
firefly-db:
|
|
image: mariadb:lts
|
|
hostname: db
|
|
container_name: firefly_iii_db
|
|
networks:
|
|
- firefly_iii
|
|
restart: always
|
|
env_file: ./firefly/.db.env
|
|
volumes:
|
|
- firefly_iii_db:/var/lib/mysql
|
|
healthcheck:
|
|
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
firefly-importer:
|
|
image: fireflyiii/data-importer:latest
|
|
hostname: importer
|
|
restart: always
|
|
container_name: firefly_iii_importer
|
|
networks:
|
|
- firefly_iii
|
|
ports:
|
|
- '81:8080'
|
|
depends_on:
|
|
- firefly-app
|
|
env_file: ./firefly/.importer.env
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
firefly-cron:
|
|
image: alpine
|
|
container_name: firefly_iii_cron
|
|
restart: always
|
|
command: sh -c "
|
|
apk add tzdata
|
|
&& ln -s /usr/share/zoneinfo/${TZ} /etc/localtime
|
|
| echo \"0 3 * * * wget -qO- http://app:8080/api/v1/cron/HcguQHJQpjR38uLfred;echo\"
|
|
| crontab -
|
|
&& crond -f -L /dev/stdout"
|
|
networks:
|
|
- firefly_iii
|
|
|
|
# Frigate
|
|
frigate:
|
|
container_name: frigate
|
|
restart: unless-stopped
|
|
stop_grace_period: 30s
|
|
image: ghcr.io/blakeblackshear/frigate:stable
|
|
shm_size: "512mb"
|
|
devices:
|
|
- /dev/bus/usb:/dev/bus/usb
|
|
volumes:
|
|
- /etc/localtime:/etc/localtime:ro
|
|
- ./frigate/config:/config
|
|
- ./frigate/storage:/media/frigate
|
|
- type: tmpfs
|
|
target: /tmp/cache
|
|
tmpfs:
|
|
size: 3000000000
|
|
ports:
|
|
- "8971:8971"
|
|
- "5000:5000"
|
|
- "8554:8554"
|
|
- "8555:8555/tcp"
|
|
- "8555:8555/udp"
|
|
environment:
|
|
FRIGATE_RTSP_PASSWORD: "password"
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:5000/api/version"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
|
|
# Gitea
|
|
gitea-server:
|
|
image: docker.gitea.com/gitea:latest
|
|
container_name: gitea
|
|
environment:
|
|
- USER_UID=1000
|
|
- USER_GID=1000
|
|
- GITEA__database__DB_TYPE=postgres
|
|
- GITEA__database__HOST=gitea-db:5432
|
|
- GITEA__database__NAME=gitea
|
|
- GITEA__database__USER=gitea
|
|
- GITEA__database__PASSWD=gitea
|
|
restart: always
|
|
networks:
|
|
- gitea
|
|
volumes:
|
|
- ./gitea/gitea:/data
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
ports:
|
|
- "3000:3000"
|
|
- "222:22"
|
|
depends_on:
|
|
- gitea-db
|
|
|
|
gitea-db:
|
|
image: docker.io/library/postgres:14
|
|
restart: always
|
|
environment:
|
|
- POSTGRES_USER=gitea
|
|
- POSTGRES_PASSWORD=gitea
|
|
- POSTGRES_DB=gitea
|
|
networks:
|
|
- gitea
|
|
volumes:
|
|
- ./gitea/postgres:/var/lib/postgresql/data
|
|
|
|
# Immich
|
|
immich-server:
|
|
container_name: immich_server
|
|
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
|
volumes:
|
|
- ${UPLOAD_LOCATION}:/data
|
|
- /etc/localtime:/etc/localtime:ro
|
|
env_file:
|
|
- ./immich/.env
|
|
ports:
|
|
- '2283:2283'
|
|
depends_on:
|
|
- immich-redis
|
|
- immich-database
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "timeout 1 bash -c '</dev/tcp/localhost/2283' || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
labels:
|
|
- "com.centurylinklabs.watchtower.monitor-only=true"
|
|
|
|
immich-machine-learning:
|
|
container_name: immich_machine_learning
|
|
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
|
volumes:
|
|
- immich-model-cache:/cache
|
|
env_file:
|
|
- ./immich/.env
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "ps", "aux", "|", "grep", "python", "|", "grep", "-v", "grep"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 60s
|
|
|
|
immich-redis:
|
|
container_name: immich_redis
|
|
image: docker.io/valkey/valkey:8-bookworm@sha256:facc1d2c3462975c34e10fccb167bfa92b0e0dbd992fc282c29a61c3243afb11
|
|
healthcheck:
|
|
test: redis-cli ping || exit 1
|
|
restart: unless-stopped
|
|
|
|
immich-database:
|
|
container_name: immich_postgres
|
|
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:32324a2f41df5de9efe1af166b7008c3f55646f8d0e00d9550c16c9822366b4a
|
|
environment:
|
|
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
|
POSTGRES_USER: ${DB_USERNAME}
|
|
POSTGRES_DB: ${DB_DATABASE_NAME}
|
|
POSTGRES_INITDB_ARGS: '--data-checksums'
|
|
DB_STORAGE_TYPE: 'HDD'
|
|
volumes:
|
|
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
|
shm_size: 128mb
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME} -d ${DB_DATABASE_NAME}"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
# MongoDB
|
|
mongodb:
|
|
image: mongo:6-jammy
|
|
ports:
|
|
- '27017:27017'
|
|
volumes:
|
|
- mongodb-data:/data/db
|
|
restart: "unless-stopped"
|
|
healthcheck:
|
|
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
# n8n
|
|
n8n:
|
|
image: docker.n8n.io/n8nio/n8n:latest
|
|
container_name: n8n
|
|
ports:
|
|
- "5678:5678"
|
|
volumes:
|
|
- n8n-data:/home/node/.n8n
|
|
- ./n8n/data:/data
|
|
- /etc/localtime:/etc/localtime:ro
|
|
restart: unless-stopped
|
|
env_file:
|
|
- ./n8n/.env
|
|
network_mode: "host"
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:5678/healthz"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
# Portainer
|
|
portainer:
|
|
image: portainer/portainer-ce:latest
|
|
ports:
|
|
- 9443:9443
|
|
- 9000:9000
|
|
volumes:
|
|
- portainer-data:/data
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- ./portainer/curl:/usr/local/bin/curl
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD","/usr/local/bin/curl", "http://localhost:9000/api/system/status"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
# Redis
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: redis
|
|
restart: unless-stopped
|
|
command: >
|
|
redis-server
|
|
--requirepass Olenoob2209
|
|
--appendonly yes
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis-data:/data
|
|
environment:
|
|
- REDIS_PASSWORD=Olenoob2209
|
|
networks:
|
|
- redis-net
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "-a", "Olenoob2209", "ping"]
|
|
interval: 10s
|
|
timeout: 3s
|
|
retries: 5
|
|
start_period: 5s
|
|
|
|
redisinsight:
|
|
image: redislabs/redisinsight:2.70
|
|
container_name: redisinsight
|
|
restart: unless-stopped
|
|
ports:
|
|
- "5540:5540"
|
|
networks:
|
|
- redis-net
|
|
volumes:
|
|
- redisinsight-data:/db
|
|
|
|
# What's Up Docker
|
|
whatsupdocker:
|
|
image: getwud/wud
|
|
container_name: wud
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
ports:
|
|
- 9999:3000
|
|
environment:
|
|
- WUD_TRIGGER_HTTP_MYREMOTEHOST_URL=https://satisfhome.duckdns.org/webhook/4865569a-ceb7-4d46-8c69-a50e39b8fa6d
|
|
|
|
# WebMap
|
|
nmap:
|
|
image: instrumentisto/nmap
|
|
container_name: nmap
|
|
command: -sT -A -T3 -oX tmp/myscan.xml 192.168.2.0/24
|
|
cap_add:
|
|
- NET_ADMIN
|
|
volumes:
|
|
- ./webmap/webmap:/tmp
|
|
network_mode: host
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=100
|
|
|
|
webmap:
|
|
container_name: webmap
|
|
hostname: webmap
|
|
ports:
|
|
- '8001:8000'
|
|
volumes:
|
|
- ./webmap/webmap:/opt/xml
|
|
image: reborntc/webmap
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=100
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8000"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
volumes:
|
|
firefly_iii_upload:
|
|
firefly_iii_db:
|
|
immich-model-cache:
|
|
mongodb-data:
|
|
n8n-data:
|
|
portainer-data:
|
|
redis-data:
|
|
redisinsight-data:
|
|
|
|
networks:
|
|
firefly_iii:
|
|
driver: bridge
|
|
gitea:
|
|
driver: bridge
|
|
redis-net:
|
|
driver: bridge |