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
30 lines
629 B
Go
30 lines
629 B
Go
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)
|
|
}
|
|
}
|