Files
lmnp-organizer/compose.yml
T
nessar 878da155bd chore: add husky pre-commit hook and lint-staged configuration
- Created a pre-commit hook in .husky to run lint-staged.
- Added .lintstagedrc.mjs to format frontend files with Prettier and apply Spotless to backend Java files.
- Introduced .prettierignore to exclude specific directories from formatting.
2026-08-17 14:18:16 +02:00

72 lines
2.5 KiB
YAML

name: lmnp-prod
services:
mongodb:
image: mongo:8.0
restart: unless-stopped
entrypoint:
- /bin/bash
- -c
- |
if [ ! -s /data/configdb/keyfile ]; then
umask 077
openssl rand -base64 756 > /data/configdb/keyfile
fi
chmod 400 /data/configdb/keyfile
exec docker-entrypoint.sh mongod --replSet rs0 --keyFile /data/configdb/keyfile --bind_ip_all
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_ROOT_USERNAME:-lmnp}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_ROOT_PASSWORD:?Set MONGO_ROOT_PASSWORD to a URL-safe value}
volumes:
- mongodb_data:/data/db
- mongodb_config:/data/configdb
healthcheck:
test:
- CMD-SHELL
- >-
mongosh --quiet --host localhost
--username "$${MONGO_INITDB_ROOT_USERNAME}"
--password "$${MONGO_INITDB_ROOT_PASSWORD}"
--authenticationDatabase admin
--eval 'try { rs.status() } catch (error) { rs.initiate({_id: "rs0", members: [{_id: 0, host: "mongodb:27017"}]}) }; db.hello().isWritablePrimary'
| grep -q true
interval: 5s
timeout: 10s
retries: 10
start_period: 20s
backend:
build:
context: ./backend
dockerfile: Dockerfile
restart: unless-stopped
mem_limit: 1g
cpus: 2.0
environment:
SPRING_DATA_MONGODB_URI: mongodb://${MONGO_ROOT_USERNAME:-lmnp}:${MONGO_ROOT_PASSWORD:?Set MONGO_ROOT_PASSWORD to a URL-safe value}@mongodb:27017/lmnp?authSource=admin&replicaSet=rs0&directConnection=true
OIDC_ISSUER_URI: ${OIDC_ISSUER_URI:?Set OIDC_ISSUER_URI}
OIDC_CLIENT_ID: ${OIDC_CLIENT_ID:?Set OIDC_CLIENT_ID}
OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET:?Set OIDC_CLIENT_SECRET}
LMNP_ATTACHMENT_STORAGE_PATH: /data/attachments
JAVA_TOOL_OPTIONS: -XX:MaxRAMPercentage=55
volumes:
- attachment_data:/data/attachments
depends_on:
mongodb:
condition: service_healthy
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
restart: unless-stopped
ports:
- '80:80'
depends_on:
- backend
volumes:
mongodb_data:
mongodb_config:
attachment_data: