f20bc770f5
- 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)
57 lines
1.5 KiB
Markdown
57 lines
1.5 KiB
Markdown
# 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
|
|
```
|