Files
lasuite-messages/compose.yaml
T
Sylvain Zimmer 5bdc8ccf48 🐛(dkim) fix invalid DKIM signature and add verify test
There was an extra \r\n added, that broke validation. We now test
the source of the received message on the mailcatcher, and validate
that DKIM header. Should be much more robust even if it adds a new
dependency for tests.
2025-04-23 00:19:20 +02:00

243 lines
5.6 KiB
YAML

name: st-messages
services:
postgresql:
image: postgres:16.6
ports:
- "6434:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 1s
timeout: 2s
retries: 300
env_file:
- env.d/development/postgresql
redis:
image: redis:5
mailcatcher:
image: maildev/maildev:2.2.1
ports:
- "1081:1080"
# minio:
# user: ${DOCKER_USER:-1000}
# image: minio/minio
# environment:
# - MINIO_ROOT_USER=st-messages
# - MINIO_ROOT_PASSWORD=password
# ports:
# - "9000:9000"
# - "9001:9001"
# healthcheck:
# test: ["CMD", "mc", "ready", "local"]
# interval: 1s
# timeout: 20s
# retries: 300
# entrypoint: ""
# command: minio server --console-address :9001 /data
# volumes:
# - ./data/media:/data
# createbuckets:
# image: minio/mc
# depends_on:
# minio:
# condition: service_healthy
# restart: true
# entrypoint: >
# sh -c "
# /usr/bin/mc alias set st-messages http://minio:9000 st-messages password && \
# /usr/bin/mc mb st-messages/st-messages-media-storage && \
# /usr/bin/mc version enable st-messages/st-messages-media-storage && \
# exit 0;"
app-dev:
build:
context: .
target: backend-development
args:
DOCKER_USER: ${DOCKER_USER:-1000}
user: ${DOCKER_USER:-1000}
image: st-messages:backend-development
environment:
- PYLINTHOME=/app/.pylint.d
- DJANGO_CONFIGURATION=Development
env_file:
- env.d/development/common
- env.d/development/backend
- env.d/development/postgresql
ports:
- "8071:8000"
volumes:
- ./src/backend:/app
- ./data/static:/data/static
depends_on:
postgresql:
condition: service_healthy
restart: true
redis:
condition: service_started
mta-out:
condition: service_started
# createbuckets:
# condition: service_started
# app:
# build:
# context: .
# target: backend-production
# args:
# DOCKER_USER: ${DOCKER_USER:-1000}
# user: ${DOCKER_USER:-1000}
# image: st-messages:backend-production
# environment:
# - DJANGO_CONFIGURATION=Production
# env_file:
# - env.d/development/common
# - env.d/development/backend
# - env.d/development/postgresql
# depends_on:
# postgresql:
# condition: service_healthy
# restart: true
# redis:
# condition: service_started
# #minio:
# # condition: service_started
nginx:
image: nginx:1.25
ports:
- "8083:8083"
volumes:
- ./docker/files/development/etc/nginx/conf.d:/etc/nginx/conf.d:ro
depends_on:
- keycloak
- app-dev
- mta-in
- mta-out
frontend-dev:
user: "${DOCKER_USER:-1000}"
build:
context: .
dockerfile: ./src/frontend/Dockerfile.dev
environment:
- NEXT_PUBLIC_API_ORIGIN=http://localhost:8071
- NEXT_PUBLIC_S3_DOMAIN_REPLACE=http://localhost:9000
image: st-messages:frontend-development
command: ["npm", "run", "dev"]
volumes:
- ./src/frontend/:/home/frontend/
ports:
- "3000:3000"
frontend-tools:
user: "${DOCKER_USER:-1000}"
profiles:
- frontend-tools
build:
dockerfile: ./src/frontend/Dockerfile.dev
volumes:
- ./src/backend/core/api/openapi.json:/home/backend/core/api/openapi.json
- ./src/frontend/:/home/frontend/
# frontend:
# user: "${DOCKER_USER:-1000}"
# build:
# context: .
# dockerfile: ./src/frontend/Dockerfile
# target: frontend-production
# args:
# API_ORIGIN: "http://localhost:8071"
# S3_DOMAIN_REPLACE: "http://localhost:9000"
# image: st-messages:frontend-production
# ports:
# - "3001:3000"
crowdin:
image: crowdin/cli:3.16.0
volumes:
- ".:/app"
env_file:
- env.d/development/crowdin
user: "${DOCKER_USER:-1000}"
working_dir: /app
# node:
# image: node:22
# user: "${DOCKER_USER:-1000}"
# environment:
# HOME: /tmp
# volumes:
# - ".:/app"
mta-in:
image: mta-in:latest
build:
context: src/mta-in/postfix
dockerfile: Dockerfile
env_file:
- env.d/development/common
- env.d/development/mta-in
ports:
- "8025:25"
depends_on:
- app-dev
mta-out:
image: mta-out:latest
build:
context: src/mta-out/postfix
dockerfile: Dockerfile
env_file:
- env.d/development/mta-out
ports:
- "8587:587"
depends_on:
mailcatcher:
condition: service_started
kc_postgresql:
image: postgres:16.6
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 1s
timeout: 2s
retries: 300
ports:
- "6433:5432"
env_file:
- env.d/development/kc_postgresql
keycloak:
image: quay.io/keycloak/keycloak:20.0.1
volumes:
- ./docker/auth/realm.json:/opt/keycloak/data/import/realm.json
command:
- start-dev
- --features=preview
- --import-realm
- --proxy=edge
- --hostname-url=http://localhost:8083
- --hostname-admin-url=http://localhost:8083/
- --hostname-strict=false
- --hostname-strict-https=false
environment:
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
KC_DB: postgres
KC_DB_URL_HOST: kc_postgresql
KC_DB_URL_DATABASE: keycloak
KC_DB_PASSWORD: pass
KC_DB_USERNAME: user
KC_DB_SCHEMA: public
PROXY_ADDRESS_FORWARDING: "true"
ports:
- "8080:8080"
depends_on:
- kc_postgresql