clustered-fucks/compose-files/replicant/mealie/docker-compose.yml
Maddox ecac3c8949 Add compose file management infrastructure
- collect-compose.yml: Fetches all compose files from docker_hosts
- collect-env-templates.yml: Creates .env.example with secrets redacted
- deploy-compose.yml: Pushes compose files to hosts (with optional restart)
- diff-compose.yml: Shows differences before deploying

Collected 23 compose files from 7 hosts:
- replicant: 12 stacks (arr-stack, mealie, portainer, etc)
- docker666: 4 stacks (unifi, gluetun, uptime, utils)
- databases: 3 stacks (postgres, forgejo, utils)
- download-stack: 2 stacks (download-stack, utils)
- media-transcode: 1 stack (utils)
- network-services: 1 stack (utils)
- immich: 1 stack (utils)
2026-01-23 19:11:23 +00:00

106 lines
2.8 KiB
YAML

# ~/docker/appdata/mealie/docker-compose.yml
# Mealie - Recipe manager with PostgreSQL backend
# Migrated from alien to replicant
services:
mealie:
image: ghcr.io/mealie-recipes/mealie:latest
container_name: mealie
restart: unless-stopped
depends_on:
mealie_postgres:
condition: service_healthy
ports:
- "9925:9000"
environment:
# User/System
- PUID=1000
- PGID=1000
- TZ=America/New_York
# Application
- BASE_URL=https://food.3ddbrewery.com
- ALLOW_SIGNUP=false
- AUTO_BACKUP_ENABLED=true
- API_PORT=9000
- TOKEN_TIME=720
# PostgreSQL
- DB_ENGINE=postgres
- POSTGRES_USER=mealie
- POSTGRES_PASSWORD=stale-swindle-marrow-equation
- POSTGRES_SERVER=mealie_postgres
- POSTGRES_PORT=5432
- POSTGRES_DB=mealie
# SMTP
- SMTP_HOST=smtp.gmail.com
- SMTP_PORT=587
- SMTP_AUTH_STRATEGY=TLS
- SMTP_FROM_NAME=Mealie
- SMTP_FROM_EMAIL=xoppaw@gmail.com
- SMTP_USER=xoppaw@gmail.com
- SMTP_PASSWORD=tgkyhtjozefgsxsj
# AI (Ollama)
- OPENAI_BASE_URL=http://192.168.1.245:11434/v1
- OPENAI_API_KEY=56
- OPENAI_MODEL=tinyllama
- OPENAI_SEND_DATABASE_DATA=true
- OIDC_AUTH_ENABLED=true
- OIDC_SIGNUP_ENABLED=true
- OIDC_CONFIGURATION_URL=https://id.3ddbrewery.com/application/o/mealie/.well-known/openid-configuration
- OIDC_CLIENT_ID=${OIDC_CLIENT_ID}
- OIDC_CLIENT_SECRET=${OIDC_CLIENT_SECRET}
- OIDC_PROVIDER_NAME=Authentik
- OIDC_AUTO_REDIRECT=false
- OIDC_REMEMBER_ME=true
- FORWARDED_ALLOW_IPS=*
volumes:
- ./:/app/data
networks:
- proxy
- database
deploy:
resources:
limits:
cpus: '2'
memory: 1G
reservations:
memory: 256M
labels:
# Homepage
- "homepage.group=Services"
- "homepage.name=Mealie"
- "homepage.icon=mealie.png"
- "homepage.href=https://food.3ddbrewery.com"
- "homepage.description=Recipe manager"
mealie_postgres:
image: postgres:15
container_name: mealie_postgres
restart: unless-stopped
environment:
- POSTGRES_USER=mealie
- POSTGRES_PASSWORD=stale-swindle-marrow-equation
- POSTGRES_DB=mealie
- TZ=America/New_York
volumes:
- ./postgres:/var/lib/postgresql/data
networks:
- database
deploy:
resources:
limits:
cpus: '1'
memory: 512M
reservations:
memory: 128M
healthcheck:
test: ["CMD-SHELL", "pg_isready -U mealie -d mealie"]
interval: 10s
timeout: 5s
retries: 5
command: postgres -c listen_addresses='*'
networks:
proxy:
external: true
database:
external: true