mirror of
https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
synced 2025-10-29 01:05:32 +00:00
+Docker
This commit is contained in:
128
DOCKER.md
Normal file
128
DOCKER.md
Normal file
@@ -0,0 +1,128 @@
|
||||
# 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
|
||||
```
|
||||
Reference in New Issue
Block a user