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.
🎯 Simplified Version System:
- Update frontend/backend to v1.2.5 in package.json and go.mod
- Frontend reads version from package.json directly
- Backend reads version from go.mod directly
- No environment variables needed for versioning
🔄 Automated Release Workflow:
- GitHub Actions automatically updates all version files
- Extracts version from Git tag (v1.2.5)
- Updates package.json, go.mod, docker-compose files
- Builds and pushes Docker images with proper tags
- Creates GitHub release automatically
🚀 User Experience:
- Just: docker compose up
- System auto-detects version from code
- Updates work with no manual setup
- Proper semantic versioning (MAJOR.MINOR.PATCH)
Ready for automated release!