# Ortam Değişkenleri Proje kök dizinindeki `.env` dosyasından veya sistem ortam değişkenlerinden okunur. `.env` yoksa sistem değişkenleri kullanılır (ör. Docker, CI ortamları). --- ## Veritabanı | Değişken | Varsayılan | Açıklama | |---|---|---| | `DB_HOST` | `localhost` | MySQL sunucu adresi | | `DB_PORT` | `3306` | MySQL port | | `DB_USER` | `root` | Veritabanı kullanıcı adı | | `DB_PASSWORD` | _(boş)_ | Veritabanı şifresi | | `DB_NAME` | `goaresv3` | Veritabanı adı | --- ## JWT | Değişken | Açıklama | |---|---| | `JWT_SECRET` | Access token imzalama anahtarı (min 32 karakter önerilir) | | `JWT_REFRESH_SECRET` | Refresh token imzalama anahtarı (min 32 karakter önerilir) | > **Uyarı:** Her iki secret production ortamda farklı, uzun ve rastgele olmalıdır. > Örnek üretim komutu: > ```bash > openssl rand -hex 32 > ``` --- ## Uygulama | Değişken | Varsayılan | Açıklama | |---|---|---| | `PORT` | `8080` | HTTP sunucu portu | | `APP_BASE_URL` | `http://localhost:8080` | Email doğrulama linki oluşturmak için temel adres | --- ## Google OAuth | Değişken | Varsayılan | Açıklama | |---|---|---| | `SOCIAL_AUTH_GOOGLE_OAUTH2_KEY` | - | Google OAuth istemci ID | | `SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET` | - | Google OAuth istemci secret | | `SOCIAL_AUTH_GOOGLE_REDIRECT_URL` | - | Google callback URL (ör: `http://localhost:8080/api/v1/auth/google/callback`) | | `SOCIAL_AUTH_GOOGLE_SCOPES` | `openid,email,profile` | İsteğe bağlı scope listesi (virgülle ayrılmış) | --- ## GitHub OAuth | Değişken | Varsayılan | Açıklama | |---|---|---| | `SOCIAL_AUTH_GITHUB_KEY` | - | GitHub OAuth istemci ID | | `SOCIAL_AUTH_GITHUB_SECRET` | - | GitHub OAuth istemci secret | | `SOCIAL_AUTH_GITHUB_REDIRECT_URL` | - | GitHub callback URL (ör: `http://localhost:8080/api/v1/auth/github/callback`) | | `SOCIAL_AUTH_GITHUB_SCOPES` | `read:user,user:email` | İsteğe bağlı scope listesi (virgülle ayrılmış) | --- ## CORS Bootstrap > Bu değerler sadece **ilk açılış seed** için kullanılır. > DB'de kayıt varsa üzerine yazılmaz. | Değişken | Varsayılan | Açıklama | |---|---|---| | `CORS_BOOTSTRAP_WHITELIST_ORIGINS` | _(boş)_ | Virgülle ayrılmış origin listesi (ör: `http://localhost:3000,https://admin.ornek.com`) | | `CORS_BOOTSTRAP_BLACKLIST_ORIGINS` | _(boş)_ | Virgülle ayrılmış engelli origin listesi | --- ## Rate Limit Bootstrap > Bu değerler sadece **ilk açılış seed** için kullanılır. > `rate_limit_settings` tablosunda aynı `name` varsa değiştirilmez. | Değişken | Varsayılan | Açıklama | |---|---|---| | `RL_BOOTSTRAP_LOGIN_MAX_REQUESTS` | `10` | `api/v1/auth/login` için maksimum istek | | `RL_BOOTSTRAP_LOGIN_WINDOW_SECONDS` | `60` | Login penceresi (sn) | | `RL_BOOTSTRAP_REGISTER_MAX_REQUESTS` | `5` | `api/v1/auth/register` için maksimum istek | | `RL_BOOTSTRAP_REGISTER_WINDOW_SECONDS` | `60` | Register penceresi (sn) | | `RL_BOOTSTRAP_API_MAX_REQUESTS` | `120` | Diğer endpointler için fallback `api` limiti | | `RL_BOOTSTRAP_API_WINDOW_SECONDS` | `60` | Genel fallback pencere (sn) | --- ## Email | Değişken | Varsayılan | Açıklama | |---|---|---| | `EMAIL_HOST` | - | SMTP sunucu adresi | | `EMAIL_PORT` | - | SMTP port | | `EMAIL_HOST_USER` | _(boş olabilir)_ | SMTP kullanıcı adı | | `EMAIL_HOST_PASSWORD` | _(boş olabilir)_ | SMTP şifresi | | `EMAIL_USE_TLS` | `false` | STARTTLS kullanılsın mı | | `EMAIL_USE_SSL` | `false` | SMTPS (SSL/TLS) doğrudan bağlantı kullanılsın mı | | `EMAIL_FROM` | - | Gönderici email adresi | --- ## Örnek `.env` ```dotenv DB_HOST=localhost DB_PORT=3307 DB_USER=root DB_PASSWORD=sifrem DB_NAME=goaresv3 JWT_SECRET=uretilen-guclu-secret-1 JWT_REFRESH_SECRET=uretilen-guclu-secret-2 PORT=8080 APP_BASE_URL=http://localhost:8080 EMAIL_HOST=10.80.80.70 EMAIL_PORT=1025 EMAIL_HOST_USER= EMAIL_HOST_PASSWORD= EMAIL_USE_TLS=false EMAIL_USE_SSL=false EMAIL_FROM=noreply@gauth.local CORS_BOOTSTRAP_WHITELIST_ORIGINS=http://localhost:3000,http://localhost:5173 CORS_BOOTSTRAP_BLACKLIST_ORIGINS= RL_BOOTSTRAP_LOGIN_MAX_REQUESTS=10 RL_BOOTSTRAP_LOGIN_WINDOW_SECONDS=60 RL_BOOTSTRAP_REGISTER_MAX_REQUESTS=5 RL_BOOTSTRAP_REGISTER_WINDOW_SECONDS=60 RL_BOOTSTRAP_API_MAX_REQUESTS=120 RL_BOOTSTRAP_API_WINDOW_SECONDS=60 ``` --- ## Güvenlik - `.env` dosyasını **asla** Git'e commit etmeyin. - `.gitignore` dosyanıza ekleyin: ``` .env ``` - Staging/production ortamlarda değişkenleri CI/CD secret yöneticisi (GitHub Secrets, Vault) ile iletin.