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
33 lines
1.5 KiB
Text
33 lines
1.5 KiB
Text
# ─── WannPassts Backend Konfiguration ────────────────────────────────────────
|
||
# Diese Datei nach backend/.env kopieren und anpassen.
|
||
|
||
# HTTP-Port des Backends
|
||
PORT=8080
|
||
|
||
# SQLite-Datenbankdatei (relativ zum backend-Verzeichnis)
|
||
DB_PATH=wannpassts.db
|
||
|
||
# Öffentliche URL des Backends (wichtig für den Google-OAuth-Redirect!)
|
||
APP_URL=http://localhost:8080
|
||
|
||
# URL des Frontends (dev: Vite, prod: gleiche Origin wie StaticDir)
|
||
FRONTEND_URL=http://localhost:5173
|
||
|
||
# Statische Secrets – in Produktion zwingend setzen (z. B. `openssl rand -hex 32`)
|
||
# JWT_SECRET sichert Logins, ENCRYPTION_KEY verschlüsselt gespeicherte Kalender-Tokens.
|
||
JWT_SECRET=
|
||
ENCRYPTION_KEY=
|
||
|
||
# ─── Google Kalender (OAuth) ─────────────────────────────────────────────────
|
||
# 1. https://console.cloud.google.com → Projekt anlegen
|
||
# 2. APIs & Services → „Google Calendar API“ aktivieren
|
||
# 3. OAuth-Zustimmungsbildschirm: External, Scope calendar.readonly
|
||
# 4. Credentials → OAuth-Client-ID (Webanwendung)
|
||
# Autorisierte Redirect-URI: {APP_URL}/api/calendars/google/callback
|
||
# (lokal also http://localhost:8080/api/calendars/google/callback)
|
||
GOOGLE_CLIENT_ID=
|
||
GOOGLE_CLIENT_SECRET=
|
||
|
||
# ─── Optional: Frontend-Build direkt ausliefern (Produktion) ────────────────
|
||
# cd frontend && npm run build → STATIC_DIR=../frontend/dist
|
||
STATIC_DIR=
|