- Updated README.md with Telegram features section in 'Latest Features'
- Added Telegram environment variables to Environment Variables table
- Updated FEATURE_PLAN-telegram.md: marked Phases 1-5 as completed
- Updated status table with completion dates (Phase 1-4: done, Phase 5: docs complete)
OpenAPI Documentation:
- Added swagger tags to reorder route (Management Portal)
- Added swagger tags to consent routes (Consent Management)
- Regenerated openapi.json with correct tags (no more 'default' category)
Environment Configuration:
- Updated .env.backend.example with Telegram variables and session secret
- Created docker/dev/.env.example with Telegram configuration template
- Created docker/prod/.env.example with production environment template
- Moved secrets from docker-compose.yml to .env files (gitignored)
- Changed docker/dev/docker-compose.yml to use placeholders: ${TELEGRAM_BOT_TOKEN}
Security Enhancements:
- Disabled test message on server start by default (TELEGRAM_SEND_TEST_ON_START=false)
- Extended pre-commit hook to detect hardcoded Telegram secrets
- Hook prevents commit if TELEGRAM_BOT_TOKEN or TELEGRAM_CHAT_ID are hardcoded
- All secrets must use environment variable placeholders
Phase 5 fully completed and documented.
77 lines
2.0 KiB
YAML
77 lines
2.0 KiB
YAML
# Development Environment
|
|
# Usage: docker compose -f docker/dev/docker-compose.yml up -d
|
|
# Or use: ./dev.sh
|
|
|
|
services:
|
|
frontend-dev:
|
|
container_name: image-uploader-frontend-dev
|
|
user: root
|
|
build:
|
|
context: ../../
|
|
dockerfile: docker/dev/frontend/Dockerfile
|
|
working_dir: /app
|
|
ports:
|
|
- "3000:80"
|
|
volumes:
|
|
- ../../frontend:/app:cached
|
|
- dev_frontend_node_modules:/app/node_modules
|
|
- ./frontend/config/.env:/app/.env:ro
|
|
environment:
|
|
- CHOKIDAR_USEPOLLING=true
|
|
- API_URL=http://localhost:5001
|
|
- PUBLIC_HOST=public.test.local
|
|
- INTERNAL_HOST=internal.test.local
|
|
depends_on:
|
|
- backend-dev
|
|
networks:
|
|
- dev-internal
|
|
|
|
backend-dev:
|
|
container_name: image-uploader-backend-dev
|
|
user: "1000:1000"
|
|
build:
|
|
context: ../../
|
|
dockerfile: docker/dev/backend/Dockerfile
|
|
working_dir: /usr/src/app
|
|
ports:
|
|
- "5001:5000"
|
|
volumes:
|
|
- ../../backend:/usr/src/app:cached
|
|
- dev_backend_node_modules:/usr/src/app/node_modules
|
|
- ./backend/config/.env:/usr/src/app/.env:ro
|
|
environment:
|
|
- NODE_ENV=development
|
|
- PUBLIC_HOST=public.test.local
|
|
- INTERNAL_HOST=internal.test.local
|
|
- ENABLE_HOST_RESTRICTION=true
|
|
- TRUST_PROXY_HOPS=0
|
|
- PUBLIC_UPLOAD_RATE_LIMIT=20
|
|
- TELEGRAM_ENABLED=${TELEGRAM_ENABLED:-false}
|
|
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN}
|
|
- TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID}
|
|
- TELEGRAM_SEND_TEST_ON_START=${TELEGRAM_SEND_TEST_ON_START:-false}
|
|
networks:
|
|
- dev-internal
|
|
command: [ "npm", "run", "server" ]
|
|
|
|
sqliteweb:
|
|
image: tomdesinto/sqliteweb
|
|
ports:
|
|
- "8080:8080"
|
|
volumes:
|
|
- ../../backend/src/data:/usr/src/app/src/data:ro # identischer Host-Pfad wie im Backend
|
|
command: /usr/src/app/src/data/db/image_uploader.db
|
|
networks:
|
|
- dev-internal
|
|
depends_on:
|
|
- backend-dev
|
|
|
|
networks:
|
|
dev-internal:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
dev_frontend_node_modules:
|
|
driver: local
|
|
dev_backend_node_modules:
|
|
driver: local |