-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
134 lines (122 loc) · 4.17 KB
/
.env.example
File metadata and controls
134 lines (122 loc) · 4.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# Django
DJANGO_SECRET_KEY=dev-secret-change-me
DJANGO_DEBUG=1
DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1,0.0.0.0
DJANGO_CSRF_TRUSTED_ORIGINS=http://localhost,http://127.0.0.1
DJANGO_USE_X_FORWARDED_HOST=1
DJANGO_TRUST_X_FORWARDED_FOR=0
DJANGO_SECURE_SSL_REDIRECT=0
DJANGO_SESSION_COOKIE_SECURE=0
DJANGO_CSRF_COOKIE_SECURE=0
# Only set this for isolated local/test harnesses. Shared Redis cache is the
# supported non-debug runtime.
DJANGO_ALLOW_LOCAL_MEMORY_CACHE=0
# Public entrypoint
APP_SITE_ADDRESS=:80
APP_TLS_DIRECTIVE=
INGEST_PROXY_MAX_BODY_BYTES=34603008
# Gunicorn
GUNICORN_BIND=0.0.0.0:8000
GUNICORN_WORKERS=2
GUNICORN_TIMEOUT=120
# Node identity
NODE_NAME=Room Memory Node
NODE_LOCATION_HINT=Localhost
OPS_SHARED_SECRET=change-me-ops-secret
OPS_SESSION_TTL_SECONDS=43200
OPS_ALLOWED_NETWORKS=
OPS_SESSION_BINDING_MODE=user_agent
OPS_LOGIN_LOCKOUT_SCOPE=ip_user_agent
OPS_LOGIN_MAX_ATTEMPTS=6
OPS_LOGIN_LOCKOUT_SECONDS=900
OPS_WORKER_HEARTBEAT_MAX_AGE_SECONDS=180
OPS_BEAT_HEARTBEAT_MAX_AGE_SECONDS=180
OPS_THROTTLE_EVENT_WINDOW_SECONDS=3600
OPS_QUEUE_DEPTH_WARNING=12
OPS_QUEUE_DEPTH_CRITICAL=40
OPS_TASK_FAILURE_WINDOW_SECONDS=1800
OPS_LOCAL_HEALTH_HARNESS=0
PRESENCE_SENSING_ENABLED=0
OPS_PRESENCE_HEARTBEAT_MAX_AGE_SECONDS=20
# Compose device mapping path. Keep this as a host device path such as /dev/video0.
PRESENCE_CAMERA_DEVICE=/dev/video0
# OpenCV capture source used inside the sensor process. Can be a device path or index (for example 0).
PRESENCE_CAMERA_SOURCE=/dev/video0
PRESENCE_FRAME_WIDTH=640
PRESENCE_FRAME_HEIGHT=360
PRESENCE_FRAME_INTERVAL_MS=500
PRESENCE_MOTION_PIXEL_RATIO_THRESHOLD=0.008
PRESENCE_MOTION_MIN_CONTOUR_AREA=1200
MEDIA_ACCESS_TOKEN_TTL_SECONDS=900
SURFACE_ACCESS_TOKEN_TTL_SECONDS=86400
INGEST_MAX_UPLOAD_BYTES=33554432
INGEST_MAX_DURATION_SECONDS=300
PUBLIC_INGEST_RATE=180/hour
PUBLIC_INGEST_IP_RATE=600/hour
PUBLIC_REVOKE_RATE=30/hour
PUBLIC_REVOKE_IP_RATE=120/hour
# Behavior preset for common installs. Explicit env vars below still override
# any value a profile provides.
INSTALLATION_PROFILE=custom
# Available profiles: custom, quiet_gallery, shared_lab, active_exhibit
# Deployment kind for artifact framing. Keep `memory` unless you are actively
# prototyping another sibling deployment on this same engine.
ENGINE_DEPLOYMENT=memory
# Planned modes: memory, question, prompt, repair, witness, oracle
# If unset, settings default to memory.
# Postgres
POSTGRES_IMAGE=postgres:16.4
POSTGRES_DB=memory_engine
POSTGRES_USER=memory_engine
POSTGRES_PASSWORD=memory_engine
POSTGRES_HOST=db
POSTGRES_PORT=5432
# Redis
REDIS_IMAGE=redis:7.4.1
REDIS_URL=redis://redis:6379/0
# Optional explicit Django cache endpoint. Defaults to REDIS_URL when unset.
CACHE_URL=
CELERY_TASK_DEFAULT_QUEUE=celery
# Proxy
CADDY_IMAGE=caddy:2.8.4
# MinIO (S3-compatible)
# In the default repo path, the app credentials below match the MinIO root
# credentials above. If you manually create a separate MinIO service user,
# point MINIO_ACCESS_KEY / MINIO_SECRET_KEY at that identity instead.
# Compose now pins MinIO images to fixed release tags by default. Override these
# only when you are intentionally bumping MinIO and have tested the stack.
MINIO_SERVER_IMAGE=minio/minio:RELEASE.2025-04-22T22-12-26Z
MINIO_MC_IMAGE=minio/mc:RELEASE.2025-04-16T18-13-26Z
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadmin123
# Keep this internal compose hostname unless MinIO lives outside this stack.
MINIO_ENDPOINT=http://minio:9000
MINIO_BUCKET=memory
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin123
# Decay tuning (v0)
WEAR_EPSILON_PER_PLAY=0.003
POOL_PLAY_COOLDOWN_SECONDS=90
POOL_CANDIDATE_LIMIT=40
POOL_FRESH_MAX_AGE_HOURS=8
POOL_FRESH_MAX_WEAR=0.18
POOL_FRESH_MAX_PLAY_COUNT=2
POOL_WORN_MIN_AGE_HOURS=18
POOL_WORN_MIN_WEAR=0.38
POOL_WORN_MIN_PLAY_COUNT=5
RAW_TTL_HOURS_ROOM=48
RAW_TTL_HOURS_FOSSIL=48
DERIVATIVE_TTL_DAYS_FOSSIL=365
# Kiosk + room defaults
KIOSK_DEFAULT_LANGUAGE_CODE=en
KIOSK_DEFAULT_MAX_RECORDING_SECONDS=120
ROOM_INTENSITY_PROFILE=balanced
ROOM_MOVEMENT_PRESET=balanced
ROOM_DAYPART_ENABLED=1
ROOM_QUIET_HOURS_ENABLED=0
ROOM_TONE_PROFILE=soft_air
# Dev-only admin bootstrap
DEV_CREATE_SUPERUSER=1
DEV_SUPERUSER_USERNAME=admin
DEV_SUPERUSER_PASSWORD=admin
DEV_SUPERUSER_EMAIL=admin@example.com