Migrate: PocketBase → SvelteKit + better-sqlite3 + JWT
Vollständige Migration weg von PocketBase. Neuer Stack: - better-sqlite3 (WAL-Mode, direkte SQLite-Abfragen) - jose (JWT HS256, 30 Tage Laufzeit) - bcryptjs (Passwort-Hashing, cost 12) Neue Dateien: - src/lib/server/db.ts → SQLite-Singleton + Schema + Helpers - src/lib/server/auth.ts → JWT sign/verify, bcrypt, Bearer-Token - src/lib/user.ts → Svelte-Store (ersetzt pb.authStore) - src/lib/api.ts → fetch()-Wrapper (ersetzt pb.collection()) - src/app.d.ts → App.Locals TypeScript-Deklaration - 30 neue API-Routes unter src/routes/api/ Entfernt: - Abhängigkeit von pocketbase npm-Paket (bleibt im package.json bis alle Referenzen bereinigt sind) - PocketBase-Container aus docker-compose.yml - Migrations und Hooks aus Deploy-Pipeline Docker: Ein einziger Container, SQLite-Volume unter /data/ Makefile: PocketBase-spezifische Targets entfernt seed.js: Komplett neu für neue REST-API
This commit is contained in:
parent
61c430f2e6
commit
39981c0d17
58 changed files with 2313 additions and 651 deletions
|
|
@ -1,42 +1,27 @@
|
|||
version: "3.8"
|
||||
|
||||
services:
|
||||
pocketbase:
|
||||
image: ghcr.io/muchobien/pocketbase:latest
|
||||
container_name: vereinshaus-pocketbase
|
||||
restart: unless-stopped
|
||||
command: ["--migrationsDir=/pb_data/migrations"]
|
||||
volumes:
|
||||
- /volume1/docker/vereinshaus/pocketbase/data:/pb_data
|
||||
- /volume1/docker/vereinshaus/pocketbase/storage:/pb_public
|
||||
- /volume1/docker/vereinshaus/pocketbase/data/pb_hooks:/pb_hooks
|
||||
- /volume1/docker/vereinshaus/pocketbase/migrations:/pb_data/migrations
|
||||
environment:
|
||||
- TZ=Europe/Berlin
|
||||
- BREVO_KEY=${BREVO_KEY}
|
||||
- BREVO_SENDER=${BREVO_SENDER:-noreply@vereins.haus}
|
||||
networks:
|
||||
default: {}
|
||||
npm_bridge:
|
||||
ipv4_address: 172.25.0.12
|
||||
|
||||
app:
|
||||
build:
|
||||
context: ./app
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
VITE_PB_URL: https://api.vereins.haus
|
||||
image: vereinshaus-app
|
||||
container_name: vereinshaus-app
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- /volume1/docker/vereinshaus/data:/data
|
||||
environment:
|
||||
- TZ=Europe/Berlin
|
||||
- HOST=0.0.0.0
|
||||
- PORT=3000
|
||||
- DB_PATH=/data/vereinshaus.db
|
||||
- UPLOAD_DIR=/data/uploads
|
||||
- JWT_SECRET=${JWT_SECRET}
|
||||
- PUBLIC_VAPID_KEY=${PUBLIC_VAPID_KEY}
|
||||
- VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY}
|
||||
- VAPID_SUBJECT=${VAPID_SUBJECT:-mailto:info@vereins.haus}
|
||||
- PB_URL=http://pocketbase:8090
|
||||
- BREVO_KEY=${BREVO_KEY}
|
||||
- BREVO_SENDER=${BREVO_SENDER:-noreply@vereins.haus}
|
||||
networks:
|
||||
default: {}
|
||||
npm_bridge:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue