3.3 KiB
Haumdaucher Website 🦢🍻
D'Offizielle Website der Haumdaucher aus Regensburg.
🚀 Quick Start (Local)
npm install
npm run dev
Visit http://localhost:5173/ to see the site.
🛠 Documentation
For detailed information on the project structure, how to modify themes, update content, or deploy to Kubernetes, please see the Development Guide.
🎡 Deployment
Use the provided deployment script to push to your Kubernetes cluster:
./deploy.sh
Check k8s-manifests.yaml for resource definitions.
🚀 Bootstrap & Authentication (Infrastructure)
We use Terraform to manage Firebase Authentication and Firestore. To set this up for a new environment:
1. Manual Prerequisites (One-time)
- Create a Project: Go to Google Cloud Console and create a new project.
- Enable Billing: Link a Billing Account to this project (Required for Terraform to enable Identity Platform).
3. Local Auth:
bash gcloud auth login gcloud auth application-default login4. Configure OAuth (Crucial Step): * Go to APIs & Services > OAuth consent screen. * Select External -> Create. * Fill in: App Name ("Haumdaucher"), Support Email, and Developer Contact Email. Click Save and Continue (You can skip scopes/test users for now). * Go to Credentials. * Click + Create Credentials > OAuth client ID. * Type: Web application. * Name: "Haumdaucher Web". * Important: Addhttp://localhost:5173to Authorized JavaScript origins. * Click Create. 5. Configure Secrets: Run the helper script and paste the Client ID and Client Secret you just created:bash ./scripts/manage_secrets.py6. Verify: Log in to the application. You should see the member banner.
🛠 Local Development Requirements
This project uses Firebase for authentication. To run the app locally, you need the environment variables (API keys) that are normally injected during deployment.
1. Generate Local Environment Config
We typically manage infrastructure via Terraform. Use the included helper script to fetch the configuration from your active Terraform state and create a local .env file:
npm run setup:env
Prerequisites: You must have terraform and jq installed, and terraform apply must have been run at least once.
2. Start Dev Server
npm run dev
2. Infrastructure Deployment
Navigate to the terraform directory and apply the configuration:
cd terraform
terraform init
terraform apply -var="project_id=YOUR_PROJECT_ID" -var='allowed_users=["your_email@gmail.com"]'
This will:
- Enable Firebase, Firestore, and Identity APIs.
- Create the Firestore Database.
- Create the Allowlist in Firestore (
config/allowlist).
3. Adding Friends
To approve new users, simply update the allowed_users list in your terraform.tfvars (or CLI argument) and re-run terraform apply.