Add initial implementations for forms and organization apps with serializers, factories, and admin configurations
Some checks failed
CI/CD Pipeline / Run Tests (push) Failing after 45s
CI/CD Pipeline / Code Quality Checks (push) Failing after 48s
CI/CD Pipeline / Build Docker Images (push) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (push) Has been skipped
CI/CD Pipeline / Deploy to Server (push) Has been skipped

This commit is contained in:
2026-03-28 18:23:06 +01:00
parent 8ed3e1175c
commit 345b1d0cc8
201 changed files with 15097 additions and 6691 deletions

View File

@@ -1,121 +1,74 @@
x-web-build: &web-build
context: .
dockerfile: docker/Dockerfile
target: runtime-web
args:
INSTALL_DEV: "false"
x-celery-build: &celery-build
context: .
dockerfile: docker/Dockerfile
target: runtime-celery
args:
INSTALL_DEV: "false"
services:
db:
image: postgres:15.10
container_name: state_corp_db
restart: unless-stopped
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- ./data/db:/var/lib/postgresql/data
ports:
- "5432:5432"
networks:
- state_corp_network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
interval: 30s
timeout: 10s
retries: 3
redis:
image: redis:7-alpine
container_name: state_corp_redis
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- ./data/redis:/data
networks:
- state_corp_network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 10s
retries: 3
web:
image: 10.10.0.10:3000/avm/state_corp-web:${IMAGE_TAG:-dev}
build: *web-build
image: ${WEB_IMAGE:-state_corp-web:latest}
container_name: state_corp_web
restart: unless-stopped
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
environment:
- DEBUG=False
- SECRET_KEY=${SECRET_KEY}
- POSTGRES_HOST=db
- POSTGRES_PORT=5432
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- REDIS_URL=redis://redis:6379/0
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
env_file:
- .env.prod
ports:
- "8000:8000"
volumes:
- ./logs:/app/logs
- ./media:/app/media
- ./staticfiles:/app/staticfiles
ports:
- "8000:8000"
command: >
sh -c "python src/manage.py migrate &&
python src/manage.py collectstatic --noinput &&
gunicorn config.wsgi:application --bind 0.0.0.0:8000 --workers 3"
- ./input:/app/input
command: ["web"]
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:${PORT:-8000}/health/ready/ || exit 1"]
interval: 10s
timeout: 5s
retries: 12
start_period: 20s
celery_worker:
image: 10.10.0.10:3000/avm/state_corp-celery:${IMAGE_TAG:-dev}
build: *celery-build
image: ${CELERY_IMAGE:-state_corp-celery:latest}
container_name: state_corp_celery_worker
restart: unless-stopped
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
environment:
- DEBUG=False
- POSTGRES_HOST=db
- POSTGRES_PORT=5432
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- REDIS_URL=redis://redis:6379/0
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
RUN_MIGRATIONS: "0"
CELERY_WORKER_CONCURRENCY: "1"
CELERY_WORKER_MAX_MEMORY_PER_CHILD_KB: "3145728"
env_file:
- .env.prod
depends_on:
web:
condition: service_healthy
mem_limit: 3g
memswap_limit: 3g
volumes:
- ./logs:/app/logs
networks:
- state_corp_network
command: celery -A config worker --loglevel=info
- ./input:/app/input
command: ["celery-worker"]
celery_beat:
image: 10.10.0.10:3000/avm/state_corp-celery:${IMAGE_TAG:-dev}
build: *celery-build
image: ${CELERY_IMAGE:-state_corp-celery:latest}
container_name: state_corp_celery_beat
restart: unless-stopped
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
environment:
- DEBUG=False
- POSTGRES_HOST=db
- POSTGRES_PORT=5432
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- REDIS_URL=redis://redis:6379/0
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
RUN_MIGRATIONS: "0"
env_file:
- .env.prod
depends_on:
web:
condition: service_healthy
volumes:
- ./logs:/app/logs
networks:
- state_corp_network
command: celery -A config beat --loglevel=info --scheduler django_celery_beat.schedulers:DatabaseScheduler
networks:
state_corp_network:
driver: bridge
- ./input:/app/input
command: ["celery-beat"]