diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..042ccd3 --- /dev/null +++ b/.env.example @@ -0,0 +1,36 @@ +# FinanceVault Environment Configuration + +# ============================================ +# Security (REQUIRED) +# ============================================ +# Generate a secure JWT secret with: openssl rand -hex 32 +JWT_SECRET=changeme_generate_secure_secret_with_openssl_rand_hex_32 + +# ============================================ +# Backend Configuration +# ============================================ +# Database connection string +DATABASE_URL=sqlite:/data/finance.db + +# Rust logging level (trace, debug, info, warn, error) +RUST_LOG=info + +# Frontend URL for CORS (must match the actual frontend URL) +FRONTEND_URL=http://localhost:3000 + +# ============================================ +# Frontend Configuration +# ============================================ +# Node environment +NODE_ENV=production + +# Frontend port +PORT=3000 + +# ============================================ +# Production Settings +# ============================================ +# For production deployment, update these: +# JWT_SECRET= +# FRONTEND_URL=https://yourdomain.com +# RUST_LOG=info diff --git a/.github/CICD.md b/.github/CICD.md new file mode 100644 index 0000000..9328923 --- /dev/null +++ b/.github/CICD.md @@ -0,0 +1,194 @@ +# CI/CD Workflow Documentation πŸš€ + +## Überblick + +Das FinanceVault Projekt nutzt einen **automatisierten Release- und Build-Prozess** mit semantic-release und GitHub Actions. + +## Workflow-Ablauf + +### 1. Release Pipeline (`release.yml`) + +**Trigger:** Push auf den `main` Branch + +**Ablauf:** +1. βœ… Commit-Analyzer prΓΌft Commit-Messages (Conventional Commits) +2. πŸ“Š Bestimmt die neue Version (major/minor/patch) +3. πŸ“ Generiert CHANGELOG.md +4. πŸ”„ Aktualisiert Versionen in: + - `package.json` (Root) + - `frontend/package.json` + - `backend/Cargo.toml` +5. 🏷️ Erstellt Git Tag (z.B. `v1.2.3`) +6. πŸ“¦ Erstellt GitHub Release +7. βš™οΈ Committed Γ„nderungen zurΓΌck (`[skip ci]`) + +**Ausgabe:** +- GitHub Release mit Changelog +- Versionierte Dateien im Repository +- Git Tag fΓΌr Docker Build + +### 2. Docker Build Pipeline (`docker-build-push.yml`) + +**Trigger:** +- Git Tag `v*` (wird vom Release-Workflow erstellt) +- Manueller Trigger (`workflow_dispatch`) + +**Ablauf:** +1. πŸ—οΈ Baut AMD64 Image +2. πŸ—οΈ Baut ARM64 Image +3. πŸ”— Erstellt Multi-Arch Manifest +4. πŸ“€ Pushed zu GitHub Container Registry + +**Tags:** +- `v1.2.3` (exakte Version vom Git Tag) +- `v1.2` (Major.Minor) +- `latest` (nur fΓΌr main branch) +- `main-sha123-amd64` / `main-sha123-arm64` (Arch-spezifisch) + +## Commit Message Format + +Wir verwenden [Conventional Commits](https://www.conventionalcommits.org/): + +``` +(): + + + +