Compare commits
2 Commits
3ae0a2c1a4
...
0.1.4
| Author | SHA1 | Date | |
|---|---|---|---|
| 4e064d86d2 | |||
| 7fa6d250e5 |
14
BEHEER.md
14
BEHEER.md
@@ -71,6 +71,20 @@ docker exec -i vibefinance_postgres psql -U vibefinance -d vibefinance < backup-
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Architectuur — nginx proxy
|
||||||
|
|
||||||
|
De frontend-container (nginx) serveert de React-app en proxyt `/api/`-verzoeken intern door naar de backend-container op poort 3001. Dit is geconfigureerd in `frontend/nginx-spa.conf`:
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
location /api/ {
|
||||||
|
proxy_pass http://backend:3001;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
> Ontbreekt dit blok, dan krijgen gebruikers "Kan geen verbinding maken met de server" bij het inloggen — ook al draaien alle containers.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Logs en diagnose
|
## Logs en diagnose
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -10,6 +10,9 @@
|
|||||||
- PostgreSQL productie geüpgraded van versie 16 naar 18 (volume mount aangepast naar `/var/lib/postgresql`)
|
- PostgreSQL productie geüpgraded van versie 16 naar 18 (volume mount aangepast naar `/var/lib/postgresql`)
|
||||||
- Witte rand rondom de app verwijderd (globale CSS reset toegevoegd, `App.css` gekoppeld aan `App.jsx`)
|
- Witte rand rondom de app verwijderd (globale CSS reset toegevoegd, `App.css` gekoppeld aan `App.jsx`)
|
||||||
|
|
||||||
|
### Opgelost
|
||||||
|
- Login gaf "Kan geen verbinding maken met de server": `nginx-spa.conf` miste een `/api/` proxy-blok naar de backend-container — alle API-calls kwamen niet aan
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## [0.0.4] - 2026-04-08
|
## [0.0.4] - 2026-04-08
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ Eigen vermogen · Schulden · Voortgang · Gebruikersbeheer
|
|||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -83,7 +83,7 @@ vibefinance/
|
|||||||
│
|
│
|
||||||
├── frontend/ # React / Vite SPA
|
├── frontend/ # React / Vite SPA
|
||||||
│ ├── Dockerfile # Multi-stage: dev → build → nginx
|
│ ├── Dockerfile # Multi-stage: dev → build → nginx
|
||||||
│ ├── nginx-spa.conf # SPA fallback binnen de container
|
│ ├── nginx-spa.conf # SPA fallback + /api proxy naar backend
|
||||||
│ ├── vite.config.js
|
│ ├── vite.config.js
|
||||||
│ └── src/
|
│ └── src/
|
||||||
│ ├── App.jsx # Root – wiring + idle-logout
|
│ ├── App.jsx # Root – wiring + idle-logout
|
||||||
@@ -170,7 +170,7 @@ Beveiligde endpoints vereisen `Authorization: Bearer <token>`. Rate limiting: 20
|
|||||||
|
|
||||||
- Wachtwoorden gehasht met bcrypt (cost factor 12)
|
- Wachtwoorden gehasht met bcrypt (cost factor 12)
|
||||||
- JWT authenticatie met instelbare vervaltijd
|
- JWT authenticatie met instelbare vervaltijd
|
||||||
- Backend uitsluitend bereikbaar via nginx proxy
|
- Backend uitsluitend bereikbaar via nginx proxy (`/api/` in `nginx-spa.conf`)
|
||||||
- Database bereikbaar alleen binnen het interne Docker netwerk
|
- Database bereikbaar alleen binnen het interne Docker netwerk
|
||||||
- Containers draaien als non-root
|
- Containers draaien als non-root
|
||||||
- Helmet security headers
|
- Helmet security headers
|
||||||
|
|||||||
@@ -14,6 +14,16 @@ server {
|
|||||||
try_files $uri =404;
|
try_files $uri =404;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Proxy API-calls naar de backend
|
||||||
|
location /api/ {
|
||||||
|
proxy_pass http://backend:3001;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
# SPA fallback – stuur alle routes naar index.html
|
# SPA fallback – stuur alle routes naar index.html
|
||||||
location / {
|
location / {
|
||||||
try_files $uri $uri/ /index.html;
|
try_files $uri $uri/ /index.html;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "vibefinance-frontend",
|
"name": "vibefinance-frontend",
|
||||||
"version": "0.1.3-dev",
|
"version": "0.1.4",
|
||||||
"updateCheckUrl": "https://vibehoogie.duckdns.org/api/v1/repos/vibe/VibeFinance/releases/latest",
|
"updateCheckUrl": "https://vibehoogie.duckdns.org/api/v1/repos/vibe/VibeFinance/releases/latest",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "vibefinance",
|
"name": "vibefinance",
|
||||||
"version": "0.1.3",
|
"version": "0.1.4",
|
||||||
"description": "VibeFinance — persoonlijk vermogensbeheer",
|
"description": "VibeFinance — persoonlijk vermogensbeheer",
|
||||||
"private": true,
|
"private": true,
|
||||||
"repository": "https://vibehoogie.duckdns.org/vibe/VibeFinance",
|
"repository": "https://vibehoogie.duckdns.org/vibe/VibeFinance",
|
||||||
"updateCheckUrl": "https://vibehoogie.duckdns.org/api/v1/repos/vibe/VibeFinance/releases/latest"
|
"updateCheckUrl": "https://vibehoogie.duckdns.org/api/v1/repos/vibe/VibeFinance/releases/latest"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user