Reset to HoopScout v2 runtime foundation and simplified topology
This commit is contained in:
90
.env.example
90
.env.example
@ -1,87 +1,53 @@
|
||||
# Django
|
||||
# HoopScout v2 runtime profile
|
||||
DJANGO_SETTINGS_MODULE=config.settings.development
|
||||
DJANGO_ENV=development
|
||||
# Required to be a strong, unique value outside development.
|
||||
DJANGO_SECRET_KEY=change-me-in-production
|
||||
DJANGO_DEBUG=1
|
||||
DJANGO_SECRET_KEY=change-me-in-production
|
||||
DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1
|
||||
DJANGO_CSRF_TRUSTED_ORIGINS=http://localhost,http://127.0.0.1
|
||||
DJANGO_TIME_ZONE=UTC
|
||||
DJANGO_LOG_LEVEL=INFO
|
||||
DJANGO_LOG_SQL=0
|
||||
DJANGO_SUPERUSER_USERNAME=admin
|
||||
DJANGO_SUPERUSER_EMAIL=admin@example.com
|
||||
DJANGO_SUPERUSER_PASSWORD=adminpass
|
||||
|
||||
# Database (PostgreSQL only)
|
||||
# Container image tags
|
||||
APP_IMAGE_TAG=latest
|
||||
NGINX_IMAGE_TAG=latest
|
||||
# Reserved for future optional scheduler image:
|
||||
# SCHEDULER_IMAGE_TAG=latest
|
||||
|
||||
# Web runtime behavior
|
||||
GUNICORN_WORKERS=3
|
||||
AUTO_APPLY_MIGRATIONS=1
|
||||
AUTO_COLLECTSTATIC=1
|
||||
|
||||
# PostgreSQL (primary and only main database)
|
||||
POSTGRES_DB=hoopscout
|
||||
POSTGRES_USER=hoopscout
|
||||
POSTGRES_PASSWORD=hoopscout
|
||||
POSTGRES_HOST=postgres
|
||||
POSTGRES_PORT=5432
|
||||
|
||||
# Redis / Celery
|
||||
REDIS_HOST=redis
|
||||
REDIS_PORT=6379
|
||||
REDIS_DB=0
|
||||
CELERY_BROKER_URL=redis://redis:6379/0
|
||||
CELERY_RESULT_BACKEND=redis://redis:6379/0
|
||||
|
||||
# Runtime behavior
|
||||
AUTO_APPLY_MIGRATIONS=1
|
||||
AUTO_COLLECTSTATIC=1
|
||||
AUTO_BUILD_TAILWIND=1
|
||||
GUNICORN_WORKERS=3
|
||||
# Development container UID/GID for bind-mounted source write permissions.
|
||||
# Development UID/GID for bind-mounted source write permissions
|
||||
LOCAL_UID=1000
|
||||
LOCAL_GID=1000
|
||||
|
||||
# Production-minded security toggles
|
||||
DJANGO_SECURE_SSL_REDIRECT=1
|
||||
DJANGO_SECURE_HSTS_SECONDS=31536000
|
||||
DJANGO_SESSION_COOKIE_SAMESITE=Lax
|
||||
DJANGO_CSRF_COOKIE_SAMESITE=Lax
|
||||
# Snapshot storage (volume-backed directories)
|
||||
SNAPSHOT_INCOMING_DIR=/app/snapshots/incoming
|
||||
SNAPSHOT_ARCHIVE_DIR=/app/snapshots/archive
|
||||
SNAPSHOT_FAILED_DIR=/app/snapshots/failed
|
||||
|
||||
# Mandatory production variables (example values):
|
||||
# Future optional scheduler loop settings (not enabled in base v2 runtime)
|
||||
SCHEDULER_ENABLED=0
|
||||
SCHEDULER_INTERVAL_SECONDS=900
|
||||
|
||||
# API safeguards (read-only API is optional)
|
||||
API_THROTTLE_ANON=100/hour
|
||||
API_THROTTLE_USER=1000/hour
|
||||
|
||||
# Production profile reminders:
|
||||
# DJANGO_SETTINGS_MODULE=config.settings.production
|
||||
# DJANGO_ENV=production
|
||||
# DJANGO_DEBUG=0
|
||||
# DJANGO_SECRET_KEY=<strong-unique-secret-at-least-32-chars>
|
||||
# DJANGO_ALLOWED_HOSTS=app.example.com
|
||||
# DJANGO_CSRF_TRUSTED_ORIGINS=https://app.example.com
|
||||
|
||||
# Providers / ingestion
|
||||
PROVIDER_BACKEND=demo
|
||||
PROVIDER_NAMESPACE_DEMO=mvp_demo
|
||||
PROVIDER_NAMESPACE_BALLDONTLIE=balldontlie
|
||||
PROVIDER_DEFAULT_NAMESPACE=
|
||||
PROVIDER_MVP_DATA_FILE=/app/apps/providers/data/mvp_provider.json
|
||||
PROVIDER_REQUEST_RETRIES=3
|
||||
PROVIDER_REQUEST_RETRY_SLEEP=1
|
||||
PROVIDER_HTTP_TIMEOUT_SECONDS=10
|
||||
PROVIDER_BALLDONTLIE_BASE_URL=https://api.balldontlie.io
|
||||
PROVIDER_BALLDONTLIE_API_KEY=
|
||||
# NBA-centric MVP provider seasons to ingest (comma-separated years).
|
||||
PROVIDER_BALLDONTLIE_SEASONS=2024
|
||||
PROVIDER_BALLDONTLIE_PLAYERS_PAGE_LIMIT=5
|
||||
PROVIDER_BALLDONTLIE_PLAYERS_PER_PAGE=100
|
||||
PROVIDER_BALLDONTLIE_STATS_PAGE_LIMIT=10
|
||||
PROVIDER_BALLDONTLIE_STATS_PER_PAGE=100
|
||||
# When 0, a 401 on stats endpoint degrades to players/teams-only sync.
|
||||
PROVIDER_BALLDONTLIE_STATS_STRICT=0
|
||||
CELERY_TASK_TIME_LIMIT=1800
|
||||
CELERY_TASK_SOFT_TIME_LIMIT=1500
|
||||
INGESTION_SCHEDULE_ENABLED=0
|
||||
# 5-field cron: minute hour day_of_month month day_of_week
|
||||
# Example hourly: 0 * * * *
|
||||
INGESTION_SCHEDULE_CRON=*/30 * * * *
|
||||
INGESTION_SCHEDULE_PROVIDER_NAMESPACE=
|
||||
INGESTION_SCHEDULE_JOB_TYPE=incremental
|
||||
INGESTION_PREVENT_OVERLAP=1
|
||||
INGESTION_OVERLAP_WINDOW_MINUTES=180
|
||||
API_THROTTLE_ANON=100/hour
|
||||
API_THROTTLE_USER=1000/hour
|
||||
|
||||
# Testing (used with pytest-django)
|
||||
# Keep development settings for local tests unless explicitly validating production settings.
|
||||
PYTEST_ADDOPTS=-q
|
||||
|
||||
Reference in New Issue
Block a user