Add gitea-deploy skill
This commit is contained in:
177
skill.md
Normal file
177
skill.md
Normal file
@@ -0,0 +1,177 @@
|
||||
---
|
||||
name: gitea-deploy
|
||||
description: Deploy Gitea (self-hosted Git service) with PostgreSQL using Docker Compose. Use when user wants to set up Gitea for Git repository hosting.
|
||||
tools: Read, Glob, Grep, Bash
|
||||
---
|
||||
|
||||
# Gitea Docker 部署
|
||||
|
||||
使用 Docker Compose 部署 Gitea 自託管 Git 服務(含 PostgreSQL 資料庫)。
|
||||
|
||||
## 前置需求
|
||||
|
||||
- **目標**: 已安裝 Docker 的伺服器
|
||||
- **存取**: SSH root 權限
|
||||
- **目錄**: 服務部署於 `/opt/docker/gitea/`
|
||||
|
||||
## 部署步驟
|
||||
|
||||
### Step 1: 建立目錄與配置
|
||||
|
||||
```bash
|
||||
ssh root@<SERVER_IP> bash -c '
|
||||
mkdir -p /opt/docker/gitea
|
||||
cat > /opt/docker/gitea/docker-compose.yml << "EOF"
|
||||
networks:
|
||||
gitea:
|
||||
external: false
|
||||
|
||||
volumes:
|
||||
gitea:
|
||||
driver: local
|
||||
postgres:
|
||||
driver: local
|
||||
|
||||
services:
|
||||
server:
|
||||
image: docker.gitea.com/gitea:1.22.3
|
||||
container_name: gitea
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
- GITEA__database__DB_TYPE=postgres
|
||||
- GITEA__database__HOST=db:5432
|
||||
- GITEA__database__NAME=gitea
|
||||
- GITEA__database__USER=gitea
|
||||
- GITEA__database__PASSWD=gitea
|
||||
restart: always
|
||||
networks:
|
||||
- gitea
|
||||
volumes:
|
||||
- gitea:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
ports:
|
||||
- "3000:3000"
|
||||
- "222:22"
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
db:
|
||||
image: docker.io/library/postgres:14
|
||||
container_name: gitea-db
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_USER=gitea
|
||||
- POSTGRES_PASSWORD=gitea
|
||||
- POSTGRES_DB=gitea
|
||||
networks:
|
||||
- gitea
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql/data
|
||||
EOF
|
||||
'
|
||||
```
|
||||
|
||||
### Step 2: 啟動服務
|
||||
|
||||
```bash
|
||||
ssh root@<SERVER_IP> "cd /opt/docker/gitea && docker compose up -d"
|
||||
```
|
||||
|
||||
### Step 3: 驗證部署
|
||||
|
||||
```bash
|
||||
ssh root@<SERVER_IP> "docker ps | grep gitea"
|
||||
```
|
||||
|
||||
**預期輸出**:
|
||||
```
|
||||
gitea Up 0.0.0.0:3000->3000/tcp, 0.0.0.0:222->22/tcp
|
||||
gitea-db Up 5432/tcp
|
||||
```
|
||||
|
||||
## 存取資訊
|
||||
|
||||
- **Web 介面**: `http://<SERVER_IP>:3000`
|
||||
- **SSH**: `ssh git@<SERVER_IP>:222`
|
||||
|
||||
## 初始設定
|
||||
|
||||
首次訪問 `http://<SERVER_IP>:3000` 時,需填寫:
|
||||
|
||||
**資料庫設定**:
|
||||
- **資料庫類型**: PostgreSQL
|
||||
- **資料庫主機**: `db:5432`
|
||||
- **資料庫使用者**: `gitea`
|
||||
- **資料庫密碼**: `gitea`
|
||||
- **資料庫名稱**: `gitea`
|
||||
|
||||
**其他設定可保持預設值。**
|
||||
|
||||
## 常用指令
|
||||
|
||||
```bash
|
||||
# 查看狀態
|
||||
ssh root@<SERVER_IP> "cd /opt/docker/gitea && docker compose ps"
|
||||
|
||||
# 查看日誌
|
||||
ssh root@<SERVER_IP> "cd /opt/docker/gitea && docker compose logs"
|
||||
|
||||
# 停止服務
|
||||
ssh root@<SERVER_IP> "cd /opt/docker/gitea && docker compose down"
|
||||
|
||||
# 重啟服務
|
||||
ssh root@<SERVER_IP> "cd /opt/docker/gitea && docker compose restart"
|
||||
|
||||
# 更新映像
|
||||
ssh root@<SERVER_IP> "cd /opt/docker/gitea && docker compose pull && docker compose up -d"
|
||||
|
||||
# 進入容器
|
||||
ssh root@<SERVER_IP> "docker exec -it gitea bash"
|
||||
```
|
||||
|
||||
## 連接埠說明
|
||||
|
||||
| 連接埠 | 用途 |
|
||||
|--------|------|
|
||||
| 3000 | Web 介面 |
|
||||
| 222 | SSH Git 操作 |
|
||||
|
||||
## 備份
|
||||
|
||||
```bash
|
||||
# 備份資料庫
|
||||
ssh root@<SERVER_IP> "docker exec gitea-db pg_dump -U gitea gitea > gitea_backup.sql"
|
||||
|
||||
# 備份資料卷
|
||||
ssh root@<SERVER_IP> "docker run --rm -v gitea_gitea:/data -v \$(pwd):/backup ubuntu tar czf /backup/gitea_data.tar.gz /data"
|
||||
```
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 容器名稱有 -1 後綴
|
||||
|
||||
確保 `docker-compose.yml` 中每個服務都有 `container_name` 設定。
|
||||
|
||||
### 無法連接資料庫
|
||||
|
||||
確認網路設定正確,容器應在 `gitea` 網路中:
|
||||
|
||||
```bash
|
||||
docker network inspect gitea_gitea
|
||||
```
|
||||
|
||||
### SSH 連接失敗
|
||||
|
||||
確認 222 連接埠已開放,且 SSH 金鑰已正確添加到 Gitea 用戶設定。
|
||||
|
||||
## 升級
|
||||
|
||||
編輯 `docker-compose.yml` 更新映像版本後:
|
||||
|
||||
```bash
|
||||
cd /opt/docker/gitea
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
Reference in New Issue
Block a user