refactor: unify docker deployment and restructure frontend architecture

This commit implements a unified Docker deployment strategy, moving from separate frontend and backend images to a single, multi-stage build image containing both services. It also introduces a major reorganization of the frontend directory structure and simplifies the environment configuration.

Key changes:
- **Deployment**: Added a multi-stage `Dockerfile` and `docker-entrypoint.sh` to package the Go backend and Nginx-served frontend into a single container.
- **CI/CD**: Updated GitHub Actions workflows (`ci-cd.yml`, `release.yml`) to build and push the new unified image instead of separate ones.
- **Frontend Refactor**: Reorganized `frontend/src/pages` into a domain-driven directory structure (e.g., `auth/`, `admin/`, `content/`, `communication/`, `productivity/`, `settings/`, `misc/`).
- **Configuration**: Simplified `.env.example` and updated `docker-compose.yml` to reflect the unified service model and single host port.
- **Cleanup**: Removed deprecated `docker-compose.demo.yml`, `docker-compose.prod.yml`, and various unused frontend components and services.
- **Backend**: Refactored configuration loading to use exported `GetDurationEnv` for better consistency.
This commit is contained in:
Tomas Dvorak
2026-05-10 10:48:41 +02:00
parent c6a99c7e21
commit 6c448b336a
71 changed files with 135367 additions and 4481 deletions
+6 -44
View File
@@ -1,54 +1,16 @@
# Server Configuration
FRONTEND_PORT=3000
FRONTEND_HOST_PORT=3900
BACKEND_PORT=8080
BACKEND_HOST_PORT=9000
GIN_MODE=debug
# Trackeep Configuration for Casa OS
# Only required variables - everything else is auto-configured
# Demo Mode Configuration
# Set to true for demo mode (read-only with demo data)
# Set to false for normal mode (full functionality)
VITE_DEMO_MODE=true
VITE_API_URL=http://localhost:9000
FRONTEND_URL=http://localhost:3900
PUBLIC_API_URL=http://localhost:9000
# Host port for the application (default: 8080)
HOST_PORT=8080
# Database Configuration
DB_TYPE=postgres
DB_HOST=localhost
DB_PORT=5432
DB_HOST_PORT=5433
DB_PASSWORD=your_secure_password_here
DB_USER=trackeep
DB_PASSWORD=your_password_here
DB_NAME=trackeep
DB_SSL_MODE=disable
# DragonflyDB Configuration
DRAGONFLY_ADDR=dragonfly:6379
DRAGONFLY_PORT=6379
DRAGONFLY_HOST_PORT=6380
DRAGONFLY_PASSWORD=your_dragonfly_password_here
# JWT Configuration (also used for encryption)
# Generate a secure 64-character hex string using: openssl rand -hex 32
# JWT Secret (generate with: openssl rand -hex 32)
JWT_SECRET=your_jwt_secret_here_64_hex_characters_long_exactly
# Token expiration time (e.g., 24h, 1h, 30m, 7d)
JWT_EXPIRES_IN=24h
# GitHub backup storage
# Self-hosted Trackeep instances use the unified control service for GitHub sign-in
# and GitHub App installation. No per-instance GitHub App credentials are required.
GITHUB_BACKUP_ROOT=./data/github-backups
GITHUB_BACKUP_TIMEOUT=10m
# File Upload Configuration
UPLOAD_DIR=./uploads
MAX_FILE_SIZE=10485760
# CORS Configuration
CORS_ALLOWED_ORIGINS=*
# Auto Update Configuration
AUTO_UPDATE_CHECK=false
UPDATE_CHECK_INTERVAL=24h
PRERELEASE_UPDATES=false