chore: add docker and traefik config for ai.activeblue.net

This commit is contained in:
ActiveBlue Build
2026-04-12 14:17:32 -04:00
parent d1e8847cad
commit bea58371c1
3 changed files with 110 additions and 0 deletions

53
docker-compose.odoo.yml Normal file
View File

@@ -0,0 +1,53 @@
version: "3.9"
services:
odoo-ai-web:
image: odoo:18
depends_on:
odoo-ai-db:
condition: service_healthy
environment:
- HOST=odoo-ai-db
- USER=odoo
- PASSWORD=${POSTGRES_PASSWORD}
volumes:
- ./odoo-ai-data:/var/lib/odoo
- ./odoo-ai-config:/etc/odoo
- ./odoo_module:/mnt/extra-addons
ports: []
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.odoo-ai.rule=Host(`ai.activeblue.net`)"
- "traefik.http.routers.odoo-ai.entrypoints=websecure"
- "traefik.http.routers.odoo-ai.tls.certresolver=le"
- "traefik.http.services.odoo-ai.loadbalancer.server.port=8069"
networks:
- traefik-public
- odoo-ai-internal
odoo-ai-db:
image: postgres:15
environment:
- POSTGRES_USER=odoo
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=ai
volumes:
- odoo-ai-db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U odoo -d ai"]
interval: 10s
timeout: 5s
retries: 5
restart: unless-stopped
networks:
- odoo-ai-internal
networks:
traefik-public:
external: true
odoo-ai-internal:
driver: bridge
volumes:
odoo-ai-db-data:

24
odoo-ai-config/odoo.conf Normal file
View File

@@ -0,0 +1,24 @@
[options]
; Odoo 18 Community configuration for ai.activeblue.net
addons_path = /mnt/extra-addons,/usr/lib/python3/dist-packages/odoo/addons
admin_passwd = False
db_host = odoo-ai-db
db_port = 5432
db_name = ai
db_user = odoo
dbfilter = ^ai$
; Performance
workers = 4
max_cron_threads = 2
limit_time_cpu = 300
limit_time_real = 600
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
; Proxy
proxy_mode = True
; Logging
log_level = info
logfile = /var/log/odoo/odoo.log

33
traefik_dynamic_ai.yml Normal file
View File

@@ -0,0 +1,33 @@
# ActiveBlue AI — Traefik dynamic config
# Place this file at: /opt/traefik/dynamic/traefik_dynamic_ai.yml
http:
routers:
odoo-ai:
rule: "Host(`ai.activeblue.net`)"
entryPoints:
- websecure
tls:
certResolver: le
service: odoo-ai
middlewares:
- odoo-ai-headers
services:
odoo-ai:
loadBalancer:
servers:
- url: "http://odoo-ai-web:8069"
healthCheck:
path: /web/health
interval: 30s
timeout: 5s
middlewares:
odoo-ai-headers:
headers:
customRequestHeaders:
X-Forwarded-Proto: "https"
sslRedirect: true
forceSTSHeader: true
stsSeconds: 31536000