Files
hermes-docker/core_services/docker-compose.yaml
R. Gierwialo 176c9f84d5 Add LiteLLM
2026-01-18 11:36:25 +00:00

126 lines
4.9 KiB
YAML

version: '3.6'
services:
mail:
image: 'boky/postfix'
container_name: core_mail
networks:
internal_traffic:
ipv4_address: 192.168.2.20
restart: unless-stopped
deploy:
resources:
limits:
cpus: '0.50'
memory: 128M
environment:
- RELAYHOST=smtp.gmail.com:587
- RELAYHOST_USERNAME=${RELAYHOST_USERNAME}
- RELAYHOST_PASSWORD=${RELAYHOST_PASSWORD}
- ALLOWED_SENDER_DOMAINS=gmail.com gierwialo.com eldorado.city radziel.com
- XOAUTH2_CLIENT_ID=${XOAUTH2_CLIENT_ID}
- XOAUTH2_SECRET=${XOAUTH2_SECRET}
- XOAUTH2_INITIAL_ACCESS_TOKEN=${XOAUTH2_INITIAL_ACCESS_TOKEN}
- XOAUTH2_INITIAL_REFRESH_TOKEN=${XOAUTH2_INITIAL_REFRESH_TOKEN}
http_proxy:
image: 'jc21/nginx-proxy-manager:2.9.14'
container_name: core_proxy
restart: unless-stopped
deploy:
resources:
limits:
cpus: '0.50'
memory: 256M
networks:
internal_traffic:
ipv4_address: 192.168.2.253
volumes:
- data_nginx_manager:/data
- data_letsencrypt:/etc/letsencrypt
depends_on:
- syslog
syslog:
image: rgsyslog
hostname: syslog
container_name: core_syslog
network_mode: host
restart: always
deploy:
resources:
limits:
cpus: '0.50'
memory: 128M
volumes:
- data_logs:/var/log
ports:
- 514:514
- 514:514/udp
cap_add:
- SYSLOG
ups:
image: instantlinux/nut-upsd
container_name: core_ups
network_mode: host
privileged: true
restart: always
deploy:
resources:
limits:
cpus: '0.50'
memory: 128M
devices:
- /dev/bus/usb:/dev/bus/usb
environment:
- PORT=auto
- NAME=eaton3s
- API_USER=upsmon
- API_PASSWORD=pass
- VENDORID=0463
- PRODUCTID=ffff
- POLLINTERVAL=5
- SDORDER=-1
cap_add:
- SYS_ADMIN
volumes:
- data_ups:/etc/nut
llmproxy:
image: ghcr.io/berriai/litellm:main-stable
container_name: core_llmproxy
deploy:
resources:
limits:
cpus: '0.75'
memory: 512M
networks:
internal_traffic:
ipv4_address: 192.168.2.30
environment:
DATABASE_URL: "postgresql://litellm:litellm@192.168.3.41:5432/litellm"
STORE_MODEL_IN_DB: "True" # allows adding models to proxy via UI
env_file:
- .env # Load local .env file
healthcheck: # Defines the health check configuration for the container
test: [ "CMD-SHELL", "wget --no-verbose --tries=1 http://localhost:4000/health/liveliness || exit 1" ] # Command to execute for health check
interval: 30s # Perform health check every 30 seconds
timeout: 10s # Health check command times out after 10 seconds
retries: 3 # Retry up to 3 times if health check fails
start_period: 40s # Wait 40 seconds after container start before beginning health check
volumes:
data_nginx_manager:
external: true
data_letsencrypt:
external: true
data_logs:
external: true
data_ups:
external: true
networks:
internal_traffic:
external: true