feat: add WannPassts booking app with Go backend and Vue frontend

Initial project setup for a privacy-focused, self-hosted scheduling app:

- Go backend with JWT auth, SQLite storage, and chi router
- Calendar integrations via Google OAuth (FreeBusy), CalDAV, and ICS links
- Public booking pages with configurable slots and booking requests
- AES-256-GCM encryption for stored provider tokens
- Vue 3 + TypeScript frontend with Vite, Pinia, and Vue Router
- Docs, .gitignore, and .env.example for local development
This commit is contained in:
Tronax 2026-08-25 18:50:28 +02:00
commit cb30223fd4
Signed by: Tronax
SSH key fingerprint: SHA256:2pKKXDZucWvaF/GzXNz0FY53EAO1YDLN80bqS+TTz/o
47 changed files with 6599 additions and 0 deletions

View file

@ -0,0 +1,30 @@
package main
import (
"log"
"net/http"
"wannpassts/internal/calendar"
"wannpassts/internal/config"
"wannpassts/internal/db"
"wannpassts/internal/httpapi"
)
func main() {
cfg := config.Load()
database, err := db.Open(cfg.DBPath)
if err != nil {
log.Fatalf("Datenbank konnte nicht geöffnet werden: %v", err)
}
defer database.Close()
syncer := &calendar.Syncer{DB: database, Cfg: &cfg}
srv := httpapi.New(database, &cfg, syncer)
addr := ":" + cfg.Port
log.Printf("WannPassts Backend läuft auf http://localhost%s", addr)
if err := http.ListenAndServe(addr, srv.Router()); err != nil {
log.Fatal(err)
}
}