simulationlab-hr / docker-compose.yaml
renanserrano's picture
Upload folder using huggingface_hub
bd67f06 verified
services:
# --- HRMS (Frappe) ---
frappe-hrms-mariadb:
image: ghcr.io/collinear-ai/collinear/frappe-hrms-mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: admin
MARIADB_ROOT_PASSWORD: admin
frappe-hrms-redis:
image: ghcr.io/collinear-ai/collinear/frappe-hrms-redis:latest
frappe-hrms:
image: ghcr.io/collinear-ai/collinear/frappe-hrms:latest
environment:
FRAPPE_SITE_NAME: hrms.localhost
FRAPPE_ADMIN_PASSWORD: admin
FRAPPE_DB_HOST: frappe-hrms-mariadb
FRAPPE_DB_PORT: "3306"
FRAPPE_DB_ROOT_PASSWORD: admin
FRAPPE_REDIS_HOST: frappe-hrms-redis
FRAPPE_REDIS_PORT: "6379"
FRAPPE_SOCKETIO_PORT: "9000"
FRAPPE_DEVELOPER_MODE: "1"
FRAPPE_ENABLE_SCHEDULER: "1"
FRAPPE_INSTALL_APPS: hrms,collinear_hrms_seed
FRAPPE_DEPENDENCY_TIMEOUT: "180"
depends_on:
frappe-hrms-mariadb:
condition: service_healthy
frappe-hrms-redis:
condition: service_healthy
frappe-hrms-env:
image: ghcr.io/collinear-ai/collinear/frappe-hrms-env:latest
ports:
- "8030:8030"
environment:
FRAPPE_BASE_URL: http://frappe-hrms:8000
FRAPPE_SITE_NAME: hrms.localhost
FRAPPE_ADMIN_USERNAME: Administrator
FRAPPE_ADMIN_PASSWORD: admin
depends_on:
frappe-hrms:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "python3 -c \"import urllib.request; urllib.request.urlopen('http://localhost:8030/health')\""]
interval: 15s
timeout: 5s
retries: 120
start_period: 60s
# --- Email (MailHog) ---
mailhog:
image: mailhog/mailhog:v1.0.1
healthcheck:
test: ["CMD-SHELL", "wget --spider -q http://localhost:8025/api/v2/messages || exit 1"]
interval: 10s
timeout: 5s
retries: 6
start_period: 10s
email-env:
image: ghcr.io/collinear-ai/collinear/email-env:latest
ports:
- "8040:8040"
environment:
MAILHOG_BASE_URL: http://mailhog:8025
MAILHOG_SMTP_HOST: mailhog
MAILHOG_SMTP_PORT: "1025"
depends_on:
mailhog:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "python3 -c \"import urllib.request; urllib.request.urlopen('http://localhost:8040/health')\""]
interval: 10s
timeout: 5s
retries: 6
start_period: 10s
# --- Calendar (Baikal + Chronos) ---
baikal:
image: ckulka/baikal:0.10.1-nginx
volumes:
- baikal-config:/var/www/baikal/config
- baikal-specific:/var/www/baikal/Specific
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:80/ > /dev/null || exit 1"]
interval: 10s
timeout: 5s
retries: 10
start_period: 10s
chronos-mcp:
image: ghcr.io/collinear-ai/collinear/chronos-mcp:latest
environment:
CALDAV_BASE_URL: http://baikal:80/dav.php
CALDAV_USERNAME: chronos
CALDAV_PASSWORD: admin
depends_on:
baikal:
condition: service_healthy
chronos-server:
image: ghcr.io/collinear-ai/collinear/chronos-server:latest
ports:
- "8050:8050"
environment:
CHRONOS_MCP_URL: http://chronos-mcp:8040/mcp
CALDAV_BASE_URL: http://baikal:80/dav.php
CALDAV_USERNAME: chronos
CALDAV_PASSWORD: admin
depends_on:
chronos-mcp:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "python3 -c \"import urllib.request; urllib.request.urlopen('http://localhost:8050/health')\""]
interval: 10s
timeout: 5s
retries: 18
start_period: 30s
# --- RocketChat ---
rocketchat-mongodb:
image: ghcr.io/collinear-ai/collinear/rocketchat-mongodb:6-preseeded
rocketchat:
image: ghcr.io/collinear-ai/collinear/rocketchat:7.6.0
depends_on:
rocketchat-mongodb:
condition: service_healthy
rocketchat-env:
image: ghcr.io/collinear-ai/collinear/rocketchat-env:latest
ports:
- "8060:8060"
environment:
ROCKETCHAT_BASE_URL: http://rocketchat:3000
depends_on:
rocketchat:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "python3 -c \"import urllib.request; urllib.request.urlopen('http://localhost:8060/health')\""]
interval: 10s
timeout: 5s
retries: 12
start_period: 30s
# --- OpenEnv wrapper ---
openenv-server:
build:
context: .
dockerfile: server/Dockerfile
ports:
- "8000:8000"
environment:
HRMS_TOOL_SERVER_URL: http://frappe-hrms-env:8030
EMAIL_TOOL_SERVER_URL: http://email-env:8040
CALENDAR_TOOL_SERVER_URL: http://chronos-server:8050
ROCKETCHAT_TOOL_SERVER_URL: http://rocketchat-env:8060
COLLINEAR_API_KEY: ${COLLINEAR_API_KEY:-}
depends_on:
frappe-hrms-env:
condition: service_healthy
email-env:
condition: service_healthy
chronos-server:
condition: service_healthy
rocketchat-env:
condition: service_healthy
volumes:
baikal-config: {}
baikal-specific: {}