Files
arcane/lab/compose.yaml
Georgy Kazakov a2b9c77c07 fix
2026-07-22 18:42:25 +03:00

168 lines
4.3 KiB
YAML

# =============================================================================
# Work / Dev stack
# PostgreSQL + RabbitMQ + Keycloak + MinIO + OpenWebUI + Botpress + Seq + SearXNG
# =============================================================================
networks:
lab:
name: lab
driver: bridge
services:
postgres:
image: postgres:17
container_name: postgres
environment:
POSTGRES_USER: ${POSTGRES_USER:-postgres}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
POSTGRES_DB: ${POSTGRES_DB:-postgres}
ports:
- "5432:5432"
volumes:
- postgresql-data:/var/lib/postgresql/data
networks:
- lab
restart: always
rabbitmq:
image: rabbitmq:3-management
container_name: rabbitmq
environment:
RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER:-rmqadmin}
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD:-password}
ports:
- "5672:5672"
- "15672:15672"
volumes:
- rabbitmq-data:/var/lib/rabbitmq
networks:
- lab
restart: always
keycloak:
image: quay.io/keycloak/keycloak:latest
container_name: keycloak
depends_on:
- postgres
environment:
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://postgres:5432/${KEYCLOAK_DB:-keycloak}
KC_DB_USERNAME: ${POSTGRES_USER:-postgres}
KC_DB_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
KC_HOSTNAME: ${KEYCLOAK_HOSTNAME:-keycloak.home.g33k.cc}
KC_PROXY_HEADERS: xforwarded
KC_LOG_LEVEL: info
KC_METRICS_ENABLED: "true"
KC_HEALTH_ENABLED: "true"
KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN:-admin}
KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD:-admin}
command: start
ports:
- "8088:8080"
volumes:
- keycloak-data:/opt/keycloak/data
networks:
- lab
restart: always
minio:
image: quay.io/minio/minio:latest
container_name: minio
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin}
MINIO_IDENTITY_OPENID_CONFIG_URL: ${MINIO_OIDC_CONFIG_URL}
MINIO_IDENTITY_OPENID_CLIENT_ID: ${MINIO_OIDC_CLIENT_ID}
MINIO_IDENTITY_OPENID_CLIENT_SECRET: ${MINIO_OIDC_CLIENT_SECRET}
MINIO_IDENTITY_OPENID_ROLE_POLICY: consoleAdmin
MINIO_IDENTITY_OPENID_CLAIM_NAME: policy
command: server /data --console-address :9001
ports:
- "9000:9000"
- "9001:9001"
volumes:
- minio-data:/data
networks:
- lab
restart: always
openwebui:
image: ghcr.io/open-webui/open-webui:main
container_name: openwebui
ports:
- "3003:8080"
volumes:
- openwebui-data:/app/backend/data
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
- lab
restart: always
botpress-lang:
image: botpress/server:latest
container_name: botpress-lang
command: bash -c "./duckling -p 8000 & ./bp lang --langDir /botpress/lang --port 3100"
volumes:
- botpress_lang:/botpress/lang
networks:
- lab
restart: always
botpress-server:
image: botpress/server:latest
container_name: botpress-server
depends_on:
- postgres
- botpress-lang
environment:
DATABASE_URL: postgres://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@postgres:5432/${BOTPRESS_DB:-botpress}
BP_MODULE_NLU_DUCKLINGURL: http://botpress-lang:8000
BP_MODULE_NLU_LANGUAGESOURCES: '[{"endpoint":"http://botpress-lang:3100"}]'
EXTERNAL_URL: ${BOTPRESS_URL:-http://localhost:3000}
ports:
- "3333:3000"
volumes:
- botpress-data:/botpress/data
networks:
- lab
restart: always
seq:
image: datalust/seq:latest
container_name: seq
environment:
ACCEPT_EULA: "Y"
SEQ_FIRSTRUN_ADMINPASSWORD: ${SEQ_PASSWORD:-password}
ports:
- "5341:80"
volumes:
- seq-data:/data
networks:
- lab
restart: always
searxng:
image: docker.io/searxng/searxng:latest
container_name: searxng
ports:
- "9999:8080"
volumes:
- searxng-data:/var/cache/searxng/
- searxng-config:/etc/searxng/
networks:
- lab
restart: always
volumes:
postgresql-data:
rabbitmq-data:
keycloak-data:
minio-data:
openwebui-data:
botpress_lang:
botpress-data:
seq-data:
searxng-data:
searxng-config: