mirror of
https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
synced 2025-10-29 01:05:32 +00:00
128 lines
2.6 KiB
Markdown
128 lines
2.6 KiB
Markdown
# Docker Deployment for HaWeb
|
|
|
|
## Quick Start
|
|
|
|
### 1. Create the external volume
|
|
```bash
|
|
docker volume create hamann_data
|
|
```
|
|
|
|
### 2. Set webhook secret (optional)
|
|
```bash
|
|
export WEBHOOK_SECRET="your-secret-here"
|
|
```
|
|
|
|
### 3. Build and run
|
|
```bash
|
|
docker-compose up -d --build
|
|
```
|
|
|
|
### 4. View logs
|
|
```bash
|
|
docker-compose logs -f
|
|
```
|
|
|
|
## Configuration
|
|
|
|
The application runs with the following defaults:
|
|
- **HTTP Port**: 5000
|
|
- **HTTPS Port**: 5001 (self-signed cert)
|
|
- **Data Path**: `/app/data` (mounted to `hamann_data` volume)
|
|
- **Repository**: https://github.com/Theodor-Springmann-Stiftung/hamann-xml
|
|
- **Branch**: main
|
|
|
|
### Environment Variables
|
|
|
|
Override in `docker-compose.yml` or set before running:
|
|
|
|
- `DOTNET_ENVIRONMENT`: `Production`, `Staging`, or `Development`
|
|
- `FileStoragePath`: Base path for data storage (default: `/app/data`)
|
|
- `RepositoryBranch`: Git branch to track
|
|
- `RepositoryURL`: Git repository URL
|
|
- `WebhookSecret`: GitHub webhook secret for signature validation
|
|
|
|
## Data Structure
|
|
|
|
Inside the `hamann_data` volume:
|
|
```
|
|
/app/data/
|
|
├── GIT/ # Git repository with XML sources
|
|
└── HAMANN/ # Compiled Hamann.xml files
|
|
```
|
|
|
|
## Webhook Setup
|
|
|
|
Configure GitHub webhook to POST to:
|
|
```
|
|
http://your-server:5000/api/webhook/git
|
|
```
|
|
|
|
Or with reverse proxy:
|
|
```
|
|
https://your-domain.com/api/webhook/git
|
|
```
|
|
|
|
Set Content-Type to `application/json` and add your webhook secret.
|
|
|
|
## Production Deployment
|
|
|
|
### With Reverse Proxy (Recommended)
|
|
|
|
Add to your nginx/traefik config:
|
|
```nginx
|
|
location / {
|
|
proxy_pass http://localhost:5000;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
}
|
|
```
|
|
|
|
### Update docker-compose.yml
|
|
|
|
Remove port exposure if using reverse proxy:
|
|
```yaml
|
|
services:
|
|
web:
|
|
build: .
|
|
volumes:
|
|
- hamann_data:/app/data
|
|
# ports: # Comment out for reverse proxy
|
|
# - "5000:5000"
|
|
environment:
|
|
- ASPNETCORE_URLS=http://+:5000
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### View application logs
|
|
```bash
|
|
docker-compose logs -f web
|
|
```
|
|
|
|
### Access container shell
|
|
```bash
|
|
docker-compose exec web /bin/bash
|
|
```
|
|
|
|
### Check data volume
|
|
```bash
|
|
docker volume inspect hamann_data
|
|
```
|
|
|
|
### Rebuild from scratch
|
|
```bash
|
|
docker-compose down
|
|
docker-compose up -d --build --force-recreate
|
|
```
|
|
|
|
### Manual Git operations
|
|
```bash
|
|
docker-compose exec web /bin/bash
|
|
cd /app/data/GIT
|
|
git status
|
|
``` |