Commit Graph

304 Commits

Author SHA1 Message Date
4cec6dd8a0 fix: improve Redis connection error messages and add staging troubleshooting playbooks
- Improve Redis connection error message to include password info
- Add Ansible playbooks for staging 502 error troubleshooting
  - check-staging-status.yml: Check nginx logs and upstream config
  - fix-staging-502-verify.yml: Fix and verify nginx upstream configuration
2025-11-02 02:16:12 +01:00
70875be4b9 fix(redis): include host in connection error message 2025-11-02 02:06:29 +01:00
0d16417888 fix(redis): include database in connection error message 2025-11-02 02:04:28 +01:00
efbdbcb468 chore: Handler-Name zum Log-Output in DefaultLogger hinzufügen 2025-11-02 01:46:59 +01:00
cf0ad6e905 refactor: improve logging system and add deployment fixes
- Enhance logging handlers (Console, DockerJson, File, JsonFile, MultiFile)
- Improve exception and line formatters
- Update logger initialization and processor management
- Add Ansible playbooks for staging 502 error troubleshooting
- Update deployment documentation
- Fix serializer and queue components
- Update error kernel and queued log handler
2025-11-02 01:37:49 +01:00
2defdf2baf chore: update staging branch with current changes 2025-11-02 00:05:26 +01:00
1f2ab358f9 ci: simplify stack path resolution in build-image workflow 2025-11-01 23:13:24 +01:00
25f05c6a17 ci: improve stack path handling in staging deployment
- Simplify local stack path normalization
- Enhance remote shell path resolution to handle user-specific paths (e.g. ~username/path)
- Better handling of escaped tilde paths in SSH heredoc
2025-11-01 23:06:54 +01:00
988e14f3c2 fix(ci): normalize stack path for staging deployment
Normalize stack path locally to avoid ~ confusion when passing to remote shell
2025-11-01 22:54:56 +01:00
ad0598d301 fix: improve stack path handling in staging deployment
- Fix user home directory detection for stack path expansion
- Handle tilde expansion and relative paths correctly
- Add fallback logic for path resolution
2025-11-01 22:47:07 +01:00
ff4b8dd848 fix(ci): expand tilde in staging deployment stack path 2025-11-01 22:32:01 +01:00
888b9cce7f ci: improve build job conditional execution in workflow
- Replace job-level if condition with env variable for better control
- Add conditional checks to all build steps
- Add skip step when build not required
- Simplify deploy-staging conditions
2025-11-01 22:23:18 +01:00
5ec5c41a0a fix(ci): improve image selection and registry handling in deployment workflow
- Add better image selection logic with fallback handling
- Support multiple registry logins for different image sources
- Improve error handling and image URL parsing
- Add proper argument escaping for SSH deployment script
2025-11-01 22:16:23 +01:00
fa28e3580a fix(ci): add image tag fallback logic and code style fixes
- Add fallback to 'latest' tag when build fails
- Add fallback mechanism when pulling specific image tag fails
- Fix code style: move opening brace in ObjectInfo
- Remove unused comment in ObjectStorage
2025-11-01 22:06:12 +01:00
477522bc1e feat: add ObjectStorage and ObjectInfo framework components
- Add ObjectStorage and ObjectInfo classes for framework storage
- Update build-image.yml workflow configuration
2025-11-01 21:53:23 +01:00
9ecc88a0eb ci: improve image tag handling and add staging to security scan 2025-11-01 21:34:40 +01:00
c51e09c6b6 fix(ci): Add runtime-base back to build job needs
- build job accesses needs.runtime-base.outputs.image_ref, so runtime-base must be in needs
- Added always() condition to ensure build runs even if runtime-base is skipped
- Outputs will be empty if runtime-base was skipped, which is handled gracefully
2025-11-01 21:23:08 +01:00
e17469084d fix(ci): Improve runtime-base image reference handling in build job
- Better handling of optional runtime-base outputs
- Added null check for runtime-base image_ref
- Improved logging when using freshly built runtime image
2025-11-01 21:22:26 +01:00
0c7b96e887 fix(ci): Fix workflow job dependencies and execution flow
- Removed runtime-base from build job dependencies (build now only depends on changes)
- runtime-base now only runs when needed (if needs_runtime_build or needs_build is true)
- build job now handles missing runtime-base outputs gracefully
- deploy-staging and deploy-production now only depend on build (not runtime-base)
- Added always() conditions to ensure jobs run even if previous jobs are skipped
- Fixes issue where workflow stopped after runtime-base job when build was skipped
2025-11-01 21:21:58 +01:00
13e12487d7 fix(ci): Fix RUNTIME_IMAGE_NAME variable substitution in runtime-base job
- Added RUNTIME_IMAGE_NAME to env section of Build and push runtime base image step
- Added RUNTIME_IMAGE_NAME to env section of Set runtime base outputs step
- Fixes 'bad substitution' error when variable is used in shell scripts
2025-11-01 21:17:44 +01:00
a52142f304 chore: Update Dockerfiles, Makefile and documentation
- Updated Dockerfile.production
- Updated Makefile
- Updated deployment documentation
- Updated docker/ci/Dockerfile, docker/php/Dockerfile, docker/worker/Dockerfile
- Updated dependency scanning documentation
- Added git-hooks documentation
2025-11-01 21:16:03 +01:00
e68d1917b0 refactor(ci): Consolidate workflows and fix Git sync
- Added explicit Git pull in staging deployment after container restart
- Added production auto-deploy job to build-image.yml (for main branch)
- Removed redundant workflows: deploy-staging.yml, deploy-production.yml, production-deploy.yml
- All deployments now handled by build-image.yml:
  - staging branch → auto-deploy to staging
  - main branch → auto-deploy to production
- Fixed build job dependency (removed test dependency)
- Git sync now explicitly pulls code after deployment to ensure containers are up-to-date
2025-11-01 21:15:00 +01:00
d14d768acd fix(ci): Remove test dependency from build job to fix workflow execution
- Removed 'test' from build job needs array
- Build job now depends only on [changes, runtime-base]
- Fixes issue where build was waiting for skipped test job
- deploy-staging now correctly waits for build completion
2025-11-01 21:07:02 +01:00
9e34c0b474 fix: Verbessere Staging Deployment - Code-Synchronisation
- Aktualisiere docker-compose.yml immer aus Repository
- Starte staging-app Container neu für Git-Pull
- Unterstütze mehrere Image-URL-Formate in sed-Replacements
- Füge Wartezeiten für Git-Sync hinzu
- Behebt Problem, dass Code nicht synchronisiert wurde
2025-11-01 20:57:33 +01:00
8381651876 fix: Korrigiere Nginx PHP-FPM Upstream-Konfiguration für Staging
- Fix upstream configuration in staging-nginx container
- Verbessere sed-Befehle zur automatischen Korrektur der PHP-FPM Upstream-Definition
- Behebt 502 Bad Gateway Fehler durch korrekte Verbindung zu staging-app:9000
2025-11-01 20:43:42 +01:00
2d99a23286 feat: add system maintenance automation 2025-11-01 19:56:42 +01:00
b76064d94a fix: stabilise staging sync 2025-11-01 19:42:27 +01:00
5a79646daf chore: sync staging workspace 2025-11-01 19:02:09 +01:00
478754ab02 chore: clean up and rename workflows 2025-11-01 17:24:20 +01:00
225c7c43f9 fix: declare runtime image arg in dockerfile 2025-11-01 17:08:21 +01:00
6bf6bf4cbe ci: optimise docker workflows 2025-11-01 17:04:03 +01:00
46f17c5164 fix: staging-app should only run PHP-FPM (not nginx) + fix git ownership warnings 2025-11-01 16:03:22 +01:00
210e0aa74d feat: add auto-deploy to staging after successful build 2025-11-01 15:50:52 +01:00
a441da37f6 feat: implement exception handling system with error context and policies 2025-11-01 15:46:43 +01:00
f3440dff0d Merge staging: Fix security-scan workflow and ErrorAggregationInitializer 2025-11-01 00:31:11 +01:00
9591ecc906 fix: Update security-scan.yml (additional fixes) 2025-11-01 00:31:09 +01:00
2e8797ce1d fix: Correct branch detection in security-scan.yml
- Handle pull_request events correctly (use head_ref)
- Support staging branch in security scans
- Add workflow_dispatch input for branch selection
- Fix REF_NAME extraction for all event types
2025-11-01 00:29:34 +01:00
e105afb23c fix: Update DefaultContainer if needed 2025-11-01 00:28:33 +01:00
d2b7fc96fc fix: Update ErrorAggregationInitializer
Fix DI binding issues for ErrorAggregatorInterface
2025-11-01 00:25:13 +01:00
8c7bbec8b7 fix: Correct staging-internal network configuration
Remove external: false and name specification to let Docker Compose
create the network automatically
2025-10-31 23:58:14 +01:00
87aa6f067e Merge staging: Add staging environment setup 2025-10-31 23:52:43 +01:00
77b2dc5dd7 feat: Add staging environment setup
- Create staging stack with separate containers and volumes
- Configure staging.michaelschiemer.de subdomain routing
- Add deploy-staging.yml workflow for auto-deployment
- Extend build-image.yml to support staging branch
- Separate Redis instance and network for staging
- Staging uses staging branch by default

Features:
- Auto-deploy: Push to staging branch → build → deploy to staging
- Separate from production: Different containers, volumes, networks
- Shared Traefik: Uses same SSL certificates (*.michaelschiemer.de)
- Testing environment before production deployment
2025-10-31 23:52:30 +01:00
bb0caa4e7c chore: Trigger build workflow test
Testing the new separated build-image.yml workflow
2025-10-31 23:44:48 +01:00
194bd71257 feat: Split CI/CD pipeline into separate build and deploy workflows
- Add build-image.yml: Automatic image builds on push (5-8 min)
- Add deploy-production.yml: Manual deployment workflow (2-5 min)
- Mark production-deploy.yml as deprecated

Benefits:
- Faster feedback: Images ready in ~5-8 min (vs 10-15 min before)
- Flexible deployment: Deploy when ready, not forced after every build
- Parallel execution: Multiple builds can run simultaneously
- Better separation: Build failures don't block deployments of existing images
2025-10-31 23:43:49 +01:00
d84c5dbacb refactor: Framework code cleanup and improvements
- DI dependency graph improvements
- Database connection updates
- HTTP middleware chain optimizations
- Routing middleware cleanup
2025-10-31 23:38:23 +01:00
dd5c1687e3 fix: Update nginx upstream name from php-fpm to php-upstream
Ensure consistency with nginx base image configuration
2025-10-31 23:38:13 +01:00
01fcd690e2 feat: Shared code volume for nginx and app containers
- Add app-code volume to both nginx and app containers
- App container clones code once into shared volume
- Nginx container uses shared volume (read-only) and waits for code
- Update entrypoint.sh to handle storage-preserving git clone
- Fix nginx configuration to use app:9000 for PHP-FPM

This eliminates duplicate code cloning and ensures both containers
always use the same code version from the shared volume.
2025-10-31 23:37:29 +01:00
9e39a7b14e chore: Make RapidMail Credentials non required. 2025-10-31 23:34:36 +01:00
6c7f27dae4 fix: add fallback for empty image_tag in deployment
- Add validation and fallback logic for IMAGE_TAG
- If build job output is empty, generate tag from commit SHA
- Use 'latest' tag as last resort fallback
- Add debug output to show what tag is being used
- Fixes 'invalid reference format' error when IMAGE_TAG is empty
2025-10-31 22:16:50 +01:00
2373060d3f refactor: replace Ansible deployment with direct SSH commands
- Remove Ansible dependency from deployment workflow
- Use direct SSH commands for Docker operations
- Simplify deployment process:
  * SSH to production server
  * Docker registry login
  * Pull new image
  * Update docker-compose.yml with sed
  * Restart services with docker compose
- Remove Ansible verification step
- Simplify rollback step (only shows manual instructions)
- Works with ubuntu-latest runner (no special image needed)
- Fixes 'ansible: command not found' errors
- Works with act for local testing
2025-10-31 22:08:00 +01:00