feat(app_setup): Improves deployment reliability for app projects and adds support for mirrormatch deployment with Prisma/Next.js requirements. #5

Merged
ilia merged 1 commits from mirrormatch_pve into master 2026-01-04 16:59:48 -05:00
Owner

Summary

Improves deployment reliability for app projects and adds support for mirrormatch deployment with Prisma/Next.js requirements.

Changes

Core Improvements (affects all app projects)

  1. Deploy Script (deploy_app.sh.j2)

    • Fixed clone logic to handle non-git directories gracefully
    • Preserves .env.* files during repository clone
    • Uses temporary directory for initial clone to avoid permission issues
    • Added sudo to systemctl restart commands (appuser needs sudo for service management)
  2. Environment Template (env.j2)

    • Removed comment lines to prevent xargs errors when sourcing env files
    • Cleaner, more reliable env file format
  3. App Setup Role (app_setup/tasks/main.yml)

    • Added initial deploy task to run deploy script during first configure
    • Ensures app is fully deployed before systemd service starts
  4. Configure Playbook (configure_app.yml)

    • Fixed migrate command precedence: checks env_def.backend_migrate_cmd first
    • Allows per-environment override of migrate commands (e.g., db:push for dev/qa)

Mirrormatch-Specific Configuration

  • Added mirrormatch project definition with dev/qa/prod environments
  • Configured backend_migrate_cmd: "npm run db:push" for dev/qa (no shadow DB needed)
  • Added backend_seed_cmd support for dev/qa environments
  • Configured NextAuth v5 environment variables (AUTH_TRUST_HOST)

Documentation

  • Updated docs/guides/app_stack_proxmox.md with:
    • Project-specific configuration examples
    • Environment file naming notes
    • Command precedence documentation

Impact Analysis

Backward Compatible

  • pote: No impact (uses separate pote role)
  • punimTagFE/BE: Will benefit from improved deploy script, no breaking changes
  • mirrormatch: Uses new features, fully supported

Project-Specific Configs (isolated)

All mirrormatch-specific settings are in app_projects.mirrormatch and don't affect other projects:

  • backend_migrate_cmd: "npm run db:push" (per-environment)
  • backend_seed_cmd: "npm run db:seed" (per-environment)
  • AUTH_TRUST_HOST: "true" (in env_vars)

Testing

  • Mirrormatch dev environment successfully deployed
  • Service starts correctly after deployment
  • Environment variables loaded properly
  • Database schema pushed and seeded

Fixes deployment issues encountered during mirrormatch setup:

  • Non-git directory handling
  • Env file preservation during clone
  • Service restart permissions
  • Prisma migrate vs db:push workflow
## Summary Improves deployment reliability for app projects and adds support for mirrormatch deployment with Prisma/Next.js requirements. ## Changes ### Core Improvements (affects all app projects) 1. **Deploy Script (`deploy_app.sh.j2`)** - Fixed clone logic to handle non-git directories gracefully - Preserves `.env.*` files during repository clone - Uses temporary directory for initial clone to avoid permission issues - Added `sudo` to systemctl restart commands (appuser needs sudo for service management) 2. **Environment Template (`env.j2`)** - Removed comment lines to prevent `xargs` errors when sourcing env files - Cleaner, more reliable env file format 3. **App Setup Role (`app_setup/tasks/main.yml`)** - Added initial deploy task to run deploy script during first configure - Ensures app is fully deployed before systemd service starts 4. **Configure Playbook (`configure_app.yml`)** - Fixed migrate command precedence: checks `env_def.backend_migrate_cmd` first - Allows per-environment override of migrate commands (e.g., `db:push` for dev/qa) ### Mirrormatch-Specific Configuration - Added `mirrormatch` project definition with dev/qa/prod environments - Configured `backend_migrate_cmd: "npm run db:push"` for dev/qa (no shadow DB needed) - Added `backend_seed_cmd` support for dev/qa environments - Configured NextAuth v5 environment variables (`AUTH_TRUST_HOST`) ### Documentation - Updated `docs/guides/app_stack_proxmox.md` with: - Project-specific configuration examples - Environment file naming notes - Command precedence documentation ## Impact Analysis ### ✅ Backward Compatible - **pote**: No impact (uses separate `pote` role) - **punimTagFE/BE**: Will benefit from improved deploy script, no breaking changes - **mirrormatch**: Uses new features, fully supported ### Project-Specific Configs (isolated) All mirrormatch-specific settings are in `app_projects.mirrormatch` and don't affect other projects: - `backend_migrate_cmd: "npm run db:push"` (per-environment) - `backend_seed_cmd: "npm run db:seed"` (per-environment) - `AUTH_TRUST_HOST: "true"` (in env_vars) ## Testing - ✅ Mirrormatch dev environment successfully deployed - ✅ Service starts correctly after deployment - ✅ Environment variables loaded properly - ✅ Database schema pushed and seeded ## Related Fixes deployment issues encountered during mirrormatch setup: - Non-git directory handling - Env file preservation during clone - Service restart permissions - Prisma migrate vs db:push workflow
ilia added 1 commit 2026-01-04 16:51:18 -05:00
feat(app_setup): improve deployment reliability and add mirrormatch support
All checks were successful
CI / skip-ci-check (pull_request) Successful in 1m22s
CI / lint-and-test (pull_request) Successful in 1m27s
CI / ansible-validation (pull_request) Successful in 2m53s
CI / secret-scanning (pull_request) Successful in 1m24s
CI / dependency-scan (pull_request) Successful in 1m28s
CI / sast-scan (pull_request) Successful in 2m32s
CI / license-check (pull_request) Successful in 1m28s
CI / vault-check (pull_request) Successful in 2m30s
CI / playbook-test (pull_request) Successful in 2m32s
CI / container-scan (pull_request) Successful in 1m53s
CI / sonar-analysis (pull_request) Successful in 2m40s
CI / workflow-summary (pull_request) Successful in 1m22s
c2e797a027
- Fix deploy script to handle non-git directories by cloning to temp
  location and moving contents, preserving .env files during clone
- Remove comment lines from env.j2 template to prevent xargs errors
- Add initial deploy task to app_setup role to ensure app is deployed
  before service starts
- Fix migrate command precedence to check env-specific overrides first
- Add sudo to systemctl restart commands in deploy script
- Update documentation with project-specific configuration notes

These changes improve deployment reliability for all app projects while
adding support for mirrormatch-specific requirements (db:push, seeding).
All changes are backward-compatible with existing projects (pote, punimTag).
ilia changed title from feat(app_setup): improve deployment reliability and add mirrormatch support to feat(app_setup): Improves deployment reliability for app projects and adds support for mirrormatch deployment with Prisma/Next.js requirements. 2026-01-04 16:51:55 -05:00
ilia merged commit 0a937fd1b4 into master 2026-01-04 16:59:48 -05:00
ilia deleted branch mirrormatch_pve 2026-01-04 16:59:49 -05:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ilia/ansible#5
No description provided.