# CI/CD ## Overview The goal of SilverLinux is to become the central deployment platform for Silver Solutions applications. Source code is managed through Gitea and future deployments should be automated through CI/CD pipelines. --- ## Current Situation Application deployments are currently performed manually. Typical process: 1. Developer commits code. 2. Developer publishes application. 3. Files are deployed manually. 4. IIS application is restarted if necessary. Status: ```text Manual ``` --- ## Future Goal Automate deployments from Gitea repositories to target servers. Examples: * Windows IIS servers * Application servers * Test environments * Future Linux deployments --- ## Planned Architecture ```text Developer ↓ Git Commit ↓ Gitea ↓ Gitea Actions ↓ Build ↓ Test ↓ Deploy ↓ Target Server ``` --- ## Deployment Targets ### Windows IIS Purpose: Deploy: * ASP.NET Core * Blazor Server * Blazor Web App Method: ```text Publish → Copy Files → Restart IIS Site ``` Status: Planned --- ### Linux Containers Purpose: Future Docker deployments. Method: ```text Build Docker Image → Push Image → Deploy Stack ``` Status: Future --- ## Planned Tooling ### Gitea Actions Purpose: * Build automation * Testing * Deployment automation Status: Planned --- ### Self-Hosted Runner Purpose: Execute build pipelines. Potential Location: ```text SilverLinux ``` Status: Planned --- ## Pipeline Stages ### Build Examples: * Restore NuGet packages * Build solution * Publish application --- ### Test Examples: * Unit tests * Integration tests * Build validation --- ### Deploy Examples: * IIS deployment * Docker deployment * Environment updates --- ## Notifications Future CI/CD notifications should use: ```text noreply@silveressence.net ``` Examples: * Build succeeded * Build failed * Deployment completed * Deployment failed --- ## Security Deployment credentials should never be stored in repositories. Store credentials in: ```text / srv/secrets/company.env ``` or platform-specific secret stores. --- ## Initial Target First automated deployment target: ```text Gitea → Windows Server IIS → Blazor Applications ``` This provides the highest immediate value. --- ## Future Enhancements * Automatic testing * Automatic deployment * Release pipelines * Docker image registry * BaGet integration * Multi-environment deployments --- ## Related Services * Gitea * Portainer * Nginx Proxy Manager --- ## Related Documentation * gitea/README.md * docs/server.md * docs/security.md