feat: add gitea-deploy skill, tools, and sdlc foreground service rule
- skills/gitea-deploy/: new skill for Gitea deployment automation - tools/: shared utility scripts - skills/sdlc/SKILL.md: add Foreground Service Rule for long-running processes (background start + readiness polling pattern)
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# gitea-deploy
|
||||
|
||||
Automate deploying a self-hosted Gitea Git server on a VPS and pushing the current project to it.
|
||||
|
||||
## Architecture
|
||||
|
||||

|
||||
|
||||
## Workflow
|
||||
|
||||

|
||||
|
||||
## When to Use
|
||||
|
||||
- You want to self-host a private Git server on your own VPS
|
||||
- You need to push a project to a Gitea instance (new or existing)
|
||||
- You want to migrate away from GitHub/GitLab to a self-hosted solution
|
||||
|
||||
Trigger phrases: "deploy gitea", "self-host git", "setup git server", "push to my vps", "搭建git服务器", "部署gitea"
|
||||
|
||||
## How It Works
|
||||
|
||||
1. Collects VPS connection info and credentials from the user
|
||||
2. Validates local git repo and SSH connectivity
|
||||
3. Installs Docker on the VPS if not present
|
||||
4. Deploys Gitea via `docker compose up -d`
|
||||
5. Polls until Gitea is healthy, then initializes via REST API
|
||||
6. Creates the target repository and pushes all local branches
|
||||
7. Reports the web URL and SSH clone URL
|
||||
|
||||
## Requirements
|
||||
|
||||
- SSH access to a Linux VPS
|
||||
- Local project must be (or become) a git repository
|
||||
- Gitea web port (default `3000`) and SSH port (default `2222`) must be open on the VPS firewall
|
||||
|
||||
## File Structure
|
||||
|
||||
```
|
||||
skills/gitea-deploy/
|
||||
├── SKILL.md
|
||||
├── README.md
|
||||
├── assets/
|
||||
│ ├── architecture.puml
|
||||
│ ├── gitea-deploy-architecture.svg
|
||||
│ ├── workflow.puml
|
||||
│ └── gitea-deploy-workflow.svg
|
||||
└── evals/
|
||||
└── evals.json
|
||||
```
|
||||
|
||||
## Evals
|
||||
|
||||
```bash
|
||||
python scripts/run_evals.py gitea-deploy
|
||||
```
|
||||
Reference in New Issue
Block a user