feat: add Docker image, production server and health check

- Multi-stage Dockerfile on node:24-slim, non-root, healthcheck, /app/data volume
- server.mjs wraps the Astro handler with brotli/gzip compression,
  security headers and graceful SIGTERM shutdown (npm start)
- GET /api/health/ reports server and view-counter DB status
- Move build-only packages to devDependencies (smaller runtime image)
- docker-compose.yml as an alternative for Dokploy Compose

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-16 02:58:45 +03:00
parent 7d8fcce2e1
commit 91cb337c03
10 changed files with 446 additions and 28 deletions
+8
View File
@@ -18,6 +18,14 @@ Suphi Çakır (TA1SPH) — amatör telsizcilik blog & portfolyo sitesi.
| `npm run format` | Prettier ile biçimlendirir |
| `npm run new:post -- "Başlık"` | `src/content/blog/<slug>/index.md` taslağı oluşturur |
## Yayın (Docker · Dokploy)
- `Dockerfile` (Node 24 LTS, çok aşamalı) → konteyner `node server.mjs`, port **4321**, kullanıcı `node`.
- Kalıcı veri: görüntülenme sayacı `/app/data/views.db` → Dokploy'da **Volume Mount** `/app/data`.
- Sağlık kontrolü: `GET /api/health/` (`{"status":"ok","db":true}`).
- Ortam değişkenleri: `HOST` (0.0.0.0), `PORT` (4321), `DATA_DIR` (/app/data) — imajda varsayılan.
- `docker-compose.yml`: Dokploy "Compose" türü için alternatif.
## Lisans
Kod [MIT](LICENSE), içerik [CC BY-SA 4.0](LICENSE-CONTENT).