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:
commit
cb30223fd4
47 changed files with 6599 additions and 0 deletions
30
backend/cmd/server/main.go
Normal file
30
backend/cmd/server/main.go
Normal 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)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue