# Database (PostgreSQL required) DATABASE_URL=postgres://postgres:password@localhost:5432/thoughts # Authentication JWT_SECRET=change-me # Public base URL — used for ActivityPub actor URLs and canonical links BASE_URL=http://localhost:3000 # Optional HOST=0.0.0.0 PORT=3000 # CORS — comma-separated allowed origins, or * for permissive (default: *) CORS_ORIGINS=* # CORS_ORIGINS=https://your-nextjs-app.example.com # Rate limiting — max requests per minute per IP (disabled by default) # RATE_LIMIT=60 ALLOW_REGISTRATION=true # set to false to disable new sign-ups RUST_ENV=development # set to "production" to disable AP debug mode # NATS event bus (optional — federation and notifications still work without it, # but events will not be delivered to the worker) # NATS_URL=nats://localhost:4222 # Media storage — local filesystem (default) or S3/MinIO STORAGE_BACKEND=local STORAGE_PATH=./media # required when STORAGE_BACKEND=local # STORAGE_PREFIX= # optional key prefix # S3/MinIO (set STORAGE_BACKEND=s3 to use) # S3_ENDPOINT=http://localhost:9000 # S3_ACCESS_KEY_ID=minioadmin # S3_SECRET_ACCESS_KEY=minioadmin # S3_BUCKET=thoughts # S3_REGION=us-east-1 # Upload limits (optional, defaults shown) # UPLOAD_MAX_BYTES=5242880 # UPLOAD_ALLOWED_TYPES=image/jpeg,image/png,image/gif,image/webp,image/avif # Logging RUST_LOG=info