-
-
Notifications
You must be signed in to change notification settings - Fork 77
Expand file tree
/
Copy path.env.example
More file actions
164 lines (145 loc) · 7.1 KB
/
Copy path.env.example
File metadata and controls
164 lines (145 loc) · 7.1 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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# ============================================================================
# Wardrobe Environment Configuration
# ============================================================================
# Copy this file to .env and update the values for your environment
# For production, generate secure secrets: openssl rand -hex 32
# ============================================================================
# Database Configuration
# ============================================================================
POSTGRES_USER=wardrobe
POSTGRES_PASSWORD=change-me-use-secure-password
POSTGRES_DB=wardrobe
POSTGRES_PORT=5432
# Redis Configuration
# ============================================================================
REDIS_PORT=6379
# Container User Configuration
# ============================================================================
# Run the app processes as a specific uid/gid so bind-mounted directories keep
# sane ownership on the host. When unset, defaults preserve the previous
# behavior (backend/worker: 1000, frontend: 1001). When set, all app
# containers run as the same PUID/PGID.
# PUID=1000
# PGID=1000
# Backend Configuration
# ============================================================================
BACKEND_PORT=8000
# SECRET_KEY: leave the value below unchanged for local development.
# Dev login (DEBUG=true) only activates when SECRET_KEY is exactly "change-me-in-production".
# For PRODUCTION, replace with a secure secret generated by: openssl rand -hex 32
SECRET_KEY=change-me-in-production
# Uncomment to enable dev credential login (no OIDC required). Requires the
# SECRET_KEY above to remain "change-me-in-production".
# DEBUG=true
# Frontend Configuration
# ============================================================================
FRONTEND_PORT=3000
# If you rename the "backend" service in docker-compose.yml, set this to
# http://<your-service-name>:8000 so the frontend can still reach it.
# Replaces NEXT_PUBLIC_API_URL, which is still read as a fallback.
# BACKEND_URL=http://backend:8000
#
# When using docker-compose.prod.yml, nginx needs the renamed service too.
# BACKEND_HOST must match the service name; BACKEND_INTERNAL_PORT is the port
# inside the container (not BACKEND_PORT above, which is the published host port).
# BACKEND_HOST=backend
# BACKEND_INTERNAL_PORT=8000
NEXTAUTH_URL=http://localhost:3000
# IMPORTANT: Generate a secure secret for production
NEXTAUTH_SECRET=change-me-in-production-use-openssl-rand-hex-32
# Approximate location from IP when browser geolocation is denied/unavailable.
# Off by default: enabling it sends the user's IP to a third-party provider.
# Build-time frontend variables (set before building the frontend image).
# NEXT_PUBLIC_ENABLE_IP_LOCATION_FALLBACK=true
# NEXT_PUBLIC_NETWORK_LOCATION_URL=https://ipapi.co/json/
# Authentication (OIDC Provider)
# ============================================================================
# Leave all empty to use development credential-based login (default)
# Choose ONE of the following authentication methods:
# Option 1: OIDC
# OIDC_ISSUER_URL=https://auth.example.com
# OIDC_CLIENT_ID=wardrobe
# OIDC_CLIENT_SECRET=your-client-secret
# OIDC_END_SESSION_URL=https://auth.example.com/api/oidc/end-session
# If your OIDC provider uses a private/internal CA, mount the CA cert into the
# container and set this to its path. TLS verification stays on; only the trust
# anchor changes. Do NOT disable TLS verification entirely.
# OIDC_CA_BUNDLE=/certs/internal-ca.pem
# Option 2: Forward Auth (TinyAuth, Authelia, etc.)
# AUTH_TRUST_PROXY=true
# DNS Configuration
# ============================================================================
# If your OIDC provider or other services use a local DNS hostname that
# Docker containers can't resolve, set this to your local DNS server IP:
# LOCAL_DNS=10.0.0.1
# AI Service Configuration
# ============================================================================
# Capability switches (optional). Defaults keep internal AI ON, so existing
# setups are unaffected. Set AI_INTERNAL_ENABLED=false to run with no internal
# AI at all — the app boots and serves without AI_BASE_URL/AI_API_KEY/models set,
# and tagging/suggestions/pairings are deferred to an external agent. The
# per-capability switches inherit the master when unset; an explicit value wins.
# Check effective state at GET /api/v1/capabilities.
# AI_INTERNAL_ENABLED=true # master switch
# AI_VISION_ENABLED=true # internal auto-tagging (inherits master if unset)
# AI_TEXT_ENABLED=true # internal suggestions/pairings (inherits master if unset)
#
# The provider settings below are only REQUIRED when internal AI is enabled.
# ============================================================================
# Choose ONE of the following AI providers
# The app needs a vision model (for analyzing clothing images) and a text model (for recommendations)
# ============================================================================
# Option 1: Ollama (Recommended - FREE, runs locally, no API key needed)
# ============================================================================
# 1. Install Ollama from https://ollama.ai
# 2. Pull required models:
# ollama pull llava:7b # Vision model for image analysis
# ollama pull gemma3 # Text model for recommendations
# (Alternative text models: llama3, qwen2.5, mistral)
# 3. Use this configuration:
AI_BASE_URL=http://host.docker.internal:11434/v1
AI_API_KEY=not-needed
AI_VISION_MODEL=llava:7b
AI_TEXT_MODEL=gemma3:latest
# Timeout and retry settings
# ============================================================================
# AI_TIMEOUT: how long (seconds) the backend waits for a single LLM response.
# Slow local models often need 300-600s. Worst-case request time = AI_TIMEOUT * AI_MAX_RETRIES.
# AI_TIMEOUT=120
# AI_MAX_RETRIES=3
#
# NGINX_AI_TIMEOUT: how long nginx waits for a backend response on AI endpoints.
# Must be >= AI_TIMEOUT * AI_MAX_RETRIES. Only relevant when using docker-compose.prod.yml.
# NGINX_AI_TIMEOUT=600
# Option 2: OpenAI (Paid API - requires API key)
# ============================================================================
# Uncomment these lines and comment out the Ollama config above:
# AI_BASE_URL=https://api.openai.com/v1
# AI_API_KEY=sk-your-api-key-here
# AI_VISION_MODEL=gpt-4o
# AI_TEXT_MODEL=gpt-4o
# Option 3: LocalAI (Self-hosted OpenAI alternative)
# ============================================================================
# AI_BASE_URL=http://localai:8080/v1
# AI_API_KEY=not-needed
# AI_VISION_MODEL=gpt-4-vision-preview
# AI_TEXT_MODEL=gpt-3.5-turbo
# Option 4: Azure OpenAI
# ============================================================================
# AI_BASE_URL=https://your-resource.openai.azure.com/openai/deployments/your-deployment/
# AI_API_KEY=your-azure-api-key
# AI_VISION_MODEL=gpt-4o
# AI_TEXT_MODEL=gpt-4o
# Notification Providers (all optional)
# ============================================================================
# ntfy.sh push notifications
NTFY_SERVER=https://ntfy.sh
NTFY_TOPIC=
NTFY_TOKEN=
# Mattermost webhook
MATTERMOST_WEBHOOK_URL=
# Email notifications
SMTP_HOST=
SMTP_PORT=587
SMTP_USER=
SMTP_PASSWORD=