8.1 KiB
Deployment naar Dockge (Home Server)
Deze handleiding beschrijft hoe je de Activiteiten Inventaris applicatie deployt naar je home server met Dockge, Gitea en Nginx Proxy Manager.
Overzicht
- Gitea: Lokale Git server voor versiebeheer
- Dockge: Docker Compose stack manager
- Nginx Proxy Manager: Reverse proxy met SSL
- Domein: poll.hausmans.cloud
Stap 1: Repository aanmaken in Gitea
1.1 Lokale Git repository initialiseren
Voer deze commando's uit in de project directory op je ontwikkelmachine:
cd /Users/berthausmans/Documents/Development/questionnaire
# Git repository initialiseren
git init
# Alle bestanden toevoegen
git add .
# Eerste commit maken
git commit -m "Initial commit: Activiteiten Inventaris applicatie"
1.2 Repository aanmaken in Gitea
- Open Gitea in je browser (bijv.
http://gitea.local:3000) - Klik op "+" → "New Repository"
- Vul in:
- Repository Name:
questionnaire - Visibility: Private (aanbevolen)
- Initialize repository: ❌ Niet aanvinken (we pushen bestaande code)
- Repository Name:
- Klik op "Create Repository"
1.3 Code pushen naar Gitea
# Remote toevoegen (vervang met je Gitea URL)
git remote add origin http://gitea.local:3000/jouw-gebruiker/questionnaire.git
# Code pushen
git push -u origin main
Tip
: Als je branch
masterheet i.p.v.main:git branch -M main git push -u origin main
Stap 2: Repository clonen op de server
SSH naar je Proxmox server en clone de repository:
# Ga naar de Dockge stacks directory
cd /opt/stacks
# Clone de repository van Gitea
git clone http://gitea.local:3000/jouw-gebruiker/questionnaire.git
Authenticatie: Je wordt gevraagd om je Gitea gebruikersnaam en wachtwoord. Tip: Maak een Access Token aan in Gitea (Settings → Applications → Generate New Token)
Stap 3: Stack aanmaken in Dockge
- Open Dockge in je browser (bijv.
http://server-ip:5001) - Klik op "+ Compose" om een nieuwe stack aan te maken
- Geef de stack een naam:
questionnaire - Plak de volgende
docker-compose.yml:
version: '3.8'
services:
app:
build: .
container_name: questionnaire
ports:
- "4000:4000"
environment:
- NODE_ENV=production
- PORT=4000
- SESSION_SECRET=${SESSION_SECRET}
- DB_PATH=/app/data/questionnaire.db
- DEFAULT_ADMIN_USER=${DEFAULT_ADMIN_USER:-admin}
- DEFAULT_ADMIN_PASS=${DEFAULT_ADMIN_PASS}
volumes:
- ./data:/app/data
restart: unless-stopped
networks:
- proxy
networks:
proxy:
external: true
- Maak een
.envbestand aan (via Dockge's Environment tab) met:
SESSION_SECRET=jouw-super-geheime-sleutel-hier-minimaal-32-tekens
DEFAULT_ADMIN_USER=admin
DEFAULT_ADMIN_PASS=jouw-veilige-wachtwoord
⚠️ Belangrijk: Gebruik sterke, unieke waarden voor
SESSION_SECRETenDEFAULT_ADMIN_PASS!
Stap 3: Docker netwerk aanmaken (eenmalig)
Als je nog geen proxy netwerk hebt, maak deze aan via SSH op je server:
docker network create proxy
Dit netwerk wordt gebruikt om de applicatie te verbinden met Nginx Proxy Manager.
Stap 4: Stack deployen
- In Dockge, klik op "Deploy" of "Up"
- Wacht tot de image is gebouwd en de container draait
- Test of de applicatie werkt:
http://server-ip:4000
Stap 5: Nginx Proxy Manager configureren
- Open Nginx Proxy Manager (bijv.
http://server-ip:81) - Ga naar Proxy Hosts → Add Proxy Host
Details tab:
| Veld | Waarde |
|---|---|
| Domain Names | poll.hausmans.cloud |
| Scheme | http |
| Forward Hostname / IP | questionnaire (container naam) |
| Forward Port | 4000 |
| Block Common Exploits | ✅ |
| Websockets Support | ❌ (niet nodig) |
SSL tab:
| Veld | Waarde |
|---|---|
| SSL Certificate | Request a new SSL Certificate |
| Force SSL | ✅ |
| HTTP/2 Support | ✅ |
| HSTS Enabled | ✅ (optioneel) |
| Email Address | jouw@email.com |
| I Agree... | ✅ |
- Klik op Save
Stap 6: DNS configureren
Zorg dat je domein poll.hausmans.cloud naar je home IP-adres wijst:
| Type | Naam | Waarde |
|---|---|---|
| A | poll | jouw-publieke-ip |
Of als je een dynamisch IP hebt, gebruik CNAME met een DynDNS service.
Stap 7: Router port forwarding
Zorg dat je router poorten doorstuurt naar Nginx Proxy Manager:
| Externe poort | Interne poort | Protocol | Doel IP |
|---|---|---|---|
| 80 | 80 | TCP | NPM server IP |
| 443 | 443 | TCP | NPM server IP |
Verificatie
- Ga naar
https://poll.hausmans.cloud - Je zou de login pagina moeten zien
- Log in met je admin credentials
Troubleshooting
Container start niet
# Bekijk logs
docker logs questionnaire
# Of in Dockge, klik op de container en bekijk logs
Database permissies
# Zorg dat de data directory schrijfbaar is
chmod 755 /opt/stacks/questionnaire/data
Netwerk problemen
# Controleer of container in proxy netwerk zit
docker network inspect proxy
NPM kan container niet bereiken
Zorg dat beide containers (questionnaire en NPM) in hetzelfde Docker netwerk zitten (proxy).
Updates deployen
Vanaf je ontwikkelmachine
cd /Users/berthausmans/Documents/Development/questionnaire
# Wijzigingen toevoegen en committen
git add .
git commit -m "Beschrijving van je wijzigingen"
# Pushen naar Gitea
git push
Op de server (via SSH of Dockge terminal)
cd /opt/stacks/questionnaire
# Laatste wijzigingen ophalen
git pull
In Dockge
- Open de
questionnairestack - Klik op "Down" (stop de stack)
- Klik op "Rebuild" om de image opnieuw te bouwen
- Klik op "Up" om de stack te starten
Tip
: Je kunt stap 2-4 ook combineren met de "Recreate" optie als beschikbaar.
Backup
De database wordt opgeslagen in ./data/questionnaire.db. Maak regelmatig backups:
cp /opt/stacks/questionnaire/data/questionnaire.db ~/backups/questionnaire-$(date +%Y%m%d).db
Volledige workflow samenvatting
┌─────────────────┐ git push ┌─────────────────┐
│ Ontwikkelmachine │ ─────────────► │ Gitea │
│ (lokaal) │ │ (lokaal netwerk)│
└─────────────────┘ └────────┬────────┘
│ git pull
▼
┌─────────────────┐
│ Dockge/Server │
│ (Proxmox) │
└────────┬────────┘
│ docker build
▼
┌─────────────────┐
│ Docker Container│
│ (port 4000) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Nginx Proxy Mgr │
│ + Let's Encrypt │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Internet │
│ poll.hausmans.cloud
└─────────────────┘