feat: add Docker setup for documentation site

- Dockerfile.docs for building docs container
- nginx.conf for serving static Starlight site
- docker-compose.yml updated with docs service (--profile docs)
- Updated docs installation/deployment pages
This commit is contained in:
lotherk
2026-03-27 02:29:27 +00:00
parent 0bdd71a4ed
commit 5c8ebc9a03
5 changed files with 84 additions and 0 deletions

28
docs/nginx.conf Normal file
View File

@@ -0,0 +1,28 @@
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
# Starlight static site
location / {
try_files $uri $uri/ $uri.html =404;
}
# SPA fallback for client-side routing
location ~ ^/[^.]+$ {
try_files $uri $uri.html =404;
}
# Cache static assets
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
}

View File

@@ -91,3 +91,20 @@ DATABASE_URL="postgresql://user:pass@host:5432/deardiary"
### Backup
Regularly backup `./data/` directory.
## Documentation Site
Run the documentation site with Docker:
```bash
# Start just the docs site
docker compose --profile docs up -d
# Access at http://localhost:4000
```
Build the docs Docker image separately:
```bash
docker build -f Dockerfile.docs -t deardiary-docs .
```

View File

@@ -47,6 +47,17 @@ Change these credentials immediately after first login!
|---------|------|-------------|
| App | 8080 | Main application (nginx) |
| API | 3000 | Backend API (internal) |
| Docs | 4000 | Documentation site (optional, run with `--profile docs`) |
## Documentation Site
Run the documentation site separately:
```bash
docker compose --profile docs up -d
```
Access at `http://localhost:4000`
## Data Storage