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