first commit

This commit is contained in:
Beyhan Oğur
2026-04-26 22:11:03 +03:00
commit 031582ea2c
98 changed files with 13281 additions and 0 deletions

60
DOCKER.md Normal file
View File

@@ -0,0 +1,60 @@
# Docker Deployment Guide
Bu proje Node.js v24.12.0 ve Yarn 1.22.22 ile Dockerize edilmiştir.
## Gereksinimler
- Docker
- Docker Compose
## Hızlı Başlangıç
1. `.env` dosyası oluşturun:
```bash
DATABASE_URL=postgresql://user:password@host:5432/dbname
BETTER_AUTH_SECRET=your-secret-key-here-min-32-characters-long
BETTER_AUTH_URL=http://localhost:3000
REGISTER_ENABLE=true
```
**Not:** `DATABASE_URL` mevcut PostgreSQL sunucunuzun bağlantı bilgilerini içermelidir. Eğer PostgreSQL Docker dışında çalışıyorsa, host IP adresini veya `host.docker.internal` (Mac/Windows) kullanabilirsiniz.
2. Docker Compose ile başlatın:
```bash
docker-compose up -d
```
3. Veritabanı migration'larını çalıştırın (ilk kurulumda):
```bash
docker-compose exec image-api yarn db:push
```
4. Uygulama `http://localhost:3000` adresinde çalışacaktır.
## Manuel Docker Build
Sadece uygulamayı build etmek için:
```bash
docker build -t image-api .
docker run -p 3000:3000 --env-file .env image-api
```
## Production Notları
- `.env` dosyasında `BETTER_AUTH_SECRET` mutlaka güçlü bir secret olmalıdır (en az 32 karakter)
- Production'da `BETTER_AUTH_URL` gerçek domain'inizi içermelidir
- PostgreSQL veritabanı dış bir sunucuda çalışmaktadır (docker-compose'da dahil değildir)
- `DATABASE_URL` mevcut PostgreSQL sunucunuzun erişilebilir adresini içermelidir (örn: `postgresql://user:pass@10.80.80.70:5432/dbname`)
- Upload klasörü volume olarak mount edilmiştir, böylece veriler kalıcı olur
- Container, host'un network'ündeki PostgreSQL sunucusuna erişebilir
## Güvenlik
- Tüm güvenlik header'ları yapılandırılmıştır
- File upload validasyonları eklenmiştir
- Debug bilgileri production'dan kaldırılmıştır
- Input validasyonları eklenmiştir