61 lines
1.8 KiB
Markdown
61 lines
1.8 KiB
Markdown
# 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
|