chore: add docker and traefik config for ai.activeblue.net
This commit is contained in:
53
docker-compose.odoo.yml
Normal file
53
docker-compose.odoo.yml
Normal 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
24
odoo-ai-config/odoo.conf
Normal 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
33
traefik_dynamic_ai.yml
Normal 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
|
||||||
Reference in New Issue
Block a user