168 lines
4.3 KiB
YAML
168 lines
4.3 KiB
YAML
# =============================================================================
|
|
# Work / Dev stack
|
|
# PostgreSQL + RabbitMQ + Keycloak + MinIO + OpenWebUI + Botpress + Seq + SearXNG
|
|
# =============================================================================
|
|
|
|
networks:
|
|
work:
|
|
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:
|