updated with Action Runner

This commit is contained in:
2026-06-21 17:03:02 +03:30
parent ab461a5c08
commit 4c2da84795
14 changed files with 525 additions and 221 deletions
+98 -185
View File
@@ -2,246 +2,159 @@
## 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.
SilverLinux provides CI/CD through globally enabled Gitea Actions and a self-hosted runner. Package publishing is operational; application deployment to Windows IIS and Linux targets remains future work.
---
## Current Situation
## Gitea Actions
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.
Gitea Actions is enabled in Gitea's `app.ini` and is available globally.
Status:
```text
Manual
Operational
```
---
## Future Goal
## Self-Hosted Runner
Automate deployments from Gitea repositories to target servers.
| Property | Value |
| --- | --- |
| Location | `/srv/docker/gitea-runner` |
| Image | `gitea/act_runner:latest` |
| Runner name | `silverlinux-runner` |
| Runner type | Global Runner |
| Status | Operational |
Examples:
Runner labels:
* Windows IIS servers
* Application servers
* Test environments
* Future Linux deployments
* `ubuntu-latest`
* `ubuntu-24.04`
* `ubuntu-22.04`
The global runner can execute Actions workflows for repositories hosted by the SilverLinux Gitea instance.
---
## Planned Architecture
## Silver 2.0 Package Publishing
Workflow:
```text
Developer
Git Commit
Gitea
Gitea Actions
Build
Test
Deploy
Target Server
.gitea/workflows/package.yml
```
The workflow runs when both conditions are satisfied:
1. Code is pushed to the `net-8-version` branch.
2. The commit message contains `[Package]`.
Example commit message:
```text
Package Silver 2.0 libraries [Package]
```
Pipeline steps:
1. Check out the repository.
2. Install the .NET 8 SDK.
3. Restore the solution.
4. Build the solution using the `Deploy` configuration.
5. Pack the NuGet packages.
6. Push the packages to BaGet.
NuGet feed:
```text
https://nuget.silveressence.net/v3/index.json
```
---
## Deployment Targets
## Operational Flow
```text
Git push
-> Gitea Actions
-> silverlinux-runner
-> dotnet restore
-> dotnet build
-> dotnet pack
-> BaGet package publish
```
The complete workflow has been tested successfully and is operational.
---
## Secrets
Runner registration token:
```text
/srv/secrets/company.env
GITEA_RUNNER_REGISTRATION_TOKEN
```
BaGet publishing credential:
```text
Repository Settings -> Actions -> Secrets
BAGET_API_KEY
```
No credentials are stored in repositories. Infrastructure-level secrets belong in `company.env`; repository workflow secrets belong in Gitea Actions Secrets.
---
## Future Deployment Targets
### Windows IIS
Purpose:
Deploy:
* ASP.NET Core
* Blazor Server
* Blazor Web App
Method:
Planned targets include ASP.NET Core, Blazor Server and Blazor Web App deployments.
```text
Publish
→ Copy Files
→ Restart IIS Site
Publish -> Copy files -> Restart IIS site
```
Status:
Planned
---
Status: Planned
### Linux Containers
Purpose:
Future Docker deployments.
Method:
```text
Build Docker Image
→ Push Image
→ Deploy Stack
Build 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.
Status: Future
---
## Future Enhancements
* Automatic testing
* Automatic deployment
* Automated tests
* Automated Windows IIS deployment
* Linux container deployment
* Release pipelines
* Docker image registry
* BaGet integration
* Multi-environment deployments
* Package publishing for additional repositories
---
## Related Services
* Gitea
* Gitea Actions Runner
* BaGet
* Portainer
* Nginx Proxy Manager
---
## Related Documentation
* gitea/README.md
* baget/README.md
* docs/server.md
* docs/security.md
* docs/secrets.md