The GITEA__* environment variables were conflicting with the
wizard-generated app.ini, causing crash loop on startup.
Simplified to only USER_UID/GID - let the wizard configure
everything else cleanly.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Changed INSTALL_LOCK from true to false to allow first-time setup wizard.
After initial setup is complete, this can be changed back to true
to prevent unauthorized re-configuration.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Separate infrastructure services from application stack for operational
resilience. Following Gemini's architectural guidance.
Infrastructure Services:
- Gitea (git.corrosionmgmt.com) - Source control, CI/CD, releases
* SQLite database (self-contained)
* Port 8090: Web UI
* Port 2222: SSH
- SeaweedFS (cdn.corrosionmgmt.com) - S3-compatible object storage
* Port 8091: Filer UI (primary CDN interface)
* Port 8092: S3 API (programmatic access)
* Port 9333: Master UI (internal admin)
* Port 8080: Volume server (internal)
Benefits:
- Restarting Corrosion app doesn't affect Git/CDN services
- No shared database dependencies (Gitea uses SQLite)
- Clear separation between infrastructure and application concerns
- Foundation for plugin ecosystem and map hosting
Deployment:
cd infra && docker compose up -d
See infra/README.md for full setup instructions and NPM configuration.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>