Compare commits
4 Commits
a43815d4a0
...
ff0929dc02
| Author | SHA1 | Date | |
|---|---|---|---|
| ff0929dc02 | |||
| 866c059ee4 | |||
| af7d49b685 | |||
| 83ca0632f6 |
@@ -17,3 +17,11 @@ GITEA__lfs__PATH=/data/git/lfs
|
||||
|
||||
# 禁用公开注册(仅管理员可创建账号)
|
||||
GITEA__service__DISABLE_REGISTRATION=true
|
||||
|
||||
# 域名配置
|
||||
DOMAIN=git.example.com
|
||||
|
||||
# ROOT_URL:决定 Gitea UI 中的链接生成
|
||||
# 不使用 Caddy(仅 HTTP):ROOT_URL=http://${DOMAIN}:${HTTP_PORT}/
|
||||
# 使用 Caddy(HTTP + HTTPS):ROOT_URL=https://${DOMAIN}/
|
||||
ROOT_URL=http://${DOMAIN}:${HTTP_PORT}/
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -4,5 +4,9 @@ data/
|
||||
# 环境变量(可能包含敏感信息)
|
||||
.env
|
||||
|
||||
# Caddy 数据
|
||||
caddy_data/
|
||||
caddy_config/
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
||||
|
||||
7
Caddyfile
Normal file
7
Caddyfile
Normal file
@@ -0,0 +1,7 @@
|
||||
http://{$DOMAIN} {
|
||||
reverse_proxy gitea:3000
|
||||
}
|
||||
|
||||
https://{$DOMAIN} {
|
||||
reverse_proxy gitea:3000
|
||||
}
|
||||
86
README.md
86
README.md
@@ -1,48 +1,95 @@
|
||||
# Gitea 局域网部署
|
||||
# Gitea Docker 部署
|
||||
|
||||
使用 Docker Compose 部署的 Gitea Git 服务。
|
||||
使用 Docker Compose 部署 Gitea,支持两种模式:
|
||||
|
||||
- **HTTP 模式**:Gitea 直接暴露端口,仅 HTTP
|
||||
- **Caddy 模式**:通过 Caddy 反向代理,同时支持 HTTP 和 HTTPS(自动证书)
|
||||
|
||||
## 架构
|
||||
|
||||
### HTTP 模式(默认)
|
||||
|
||||
```
|
||||
Client → Gitea (HTTP_PORT, e.g. 3000)
|
||||
Gitea SSH (22 → 宿主机 SSH_PORT)
|
||||
```
|
||||
|
||||
### Caddy 模式(--profile caddy)
|
||||
|
||||
```
|
||||
Client → Caddy (80/443, HTTP + HTTPS) → Gitea (3000, Docker 内部网络)
|
||||
Gitea SSH (22 → 宿主机 SSH_PORT)
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 配置环境变量
|
||||
### 前提条件
|
||||
|
||||
复制并编辑 `.env` 文件:
|
||||
- 服务器 `SSH_PORT`(默认 2222)端口可从外网访问
|
||||
- 如使用 Caddy 模式:域名已解析到服务器公网 IP,且 80、443 端口可从外网访问
|
||||
|
||||
### 1. 配置环境变量
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
修改端口等配置:
|
||||
编辑 `.env`,关键配置:
|
||||
|
||||
```env
|
||||
HTTP_PORT=3000 # Web 界面端口
|
||||
SSH_PORT=2222 # SSH 端口(宿主机端口,容器内仍为 22)
|
||||
DOMAIN=git.example.com # 你的域名
|
||||
SSH_PORT=2222 # SSH 端口(宿主机端口,容器内仍为 22)
|
||||
```
|
||||
|
||||
> `GITEA__server__SSH_PORT` 已通过 `.env` 传递给容器,告知 Gitea 对外 SSH 端口为 `2222`,
|
||||
> 使 Web 界面中的 SSH clone 地址正确显示端口号。
|
||||
#### HTTP 模式
|
||||
|
||||
```env
|
||||
ROOT_URL=http://git.example.com:3000/
|
||||
```
|
||||
|
||||
#### Caddy 模式
|
||||
|
||||
```env
|
||||
ROOT_URL=https://git.example.com/
|
||||
```
|
||||
|
||||
### 2. 启动服务
|
||||
|
||||
```bash
|
||||
# HTTP 模式(仅 Gitea,无 Caddy)
|
||||
docker compose up -d
|
||||
|
||||
# Caddy 模式(HTTP + HTTPS,Caddy 反向代理)
|
||||
docker compose --profile caddy up -d
|
||||
```
|
||||
|
||||
> Caddy 会自动为 `DOMAIN` 申请 Let's Encrypt 证书,稍等片刻后即可通过 HTTPS 访问。
|
||||
|
||||
### 3. 初始配置
|
||||
|
||||
首次访问 `http://<服务器IP>:3000` 会进入安装向导:
|
||||
首次访问会进入安装向导:
|
||||
|
||||
1. 设置管理员账户
|
||||
2. 配置服务器域名(可选)
|
||||
3. 数据库已默认使用 SQLite
|
||||
2. 数据库已默认使用 SQLite
|
||||
|
||||
## 访问方式
|
||||
|
||||
### HTTP 模式
|
||||
|
||||
| 方式 | 地址 |
|
||||
|-----|------|
|
||||
| Web 界面 | `http://<IP>:3000` |
|
||||
| HTTP 克隆 | `git clone http://<IP>:3000/<用户>/<仓库>.git` |
|
||||
| SSH 克隆 | `git clone ssh://git@<IP>:2222/<用户>/<仓库>.git` |
|
||||
| Web 界面 | `http://<DOMAIN>:<HTTP_PORT>` |
|
||||
| HTTP 克隆 | `git clone http://<DOMAIN>:<HTTP_PORT>/<用户>/<仓库>.git` |
|
||||
| SSH 克隆 | `git clone ssh://git@<DOMAIN>:<SSH_PORT>/<用户>/<仓库>.git` |
|
||||
|
||||
### Caddy 模式
|
||||
|
||||
| 方式 | 地址 |
|
||||
|-----|------|
|
||||
| Web 界面 | `https://<DOMAIN>` |
|
||||
| HTTP 克隆 | `git clone http://<DOMAIN>/<用户>/<仓库>.git` |
|
||||
| HTTPS 克隆 | `git clone https://<DOMAIN>/<用户>/<仓库>.git` |
|
||||
| SSH 克隆 | `git clone ssh://git@<DOMAIN>:<SSH_PORT>/<用户>/<仓库>.git` |
|
||||
|
||||
## Git LFS
|
||||
|
||||
@@ -69,6 +116,7 @@ tar -xzvf gitea-backup-20260320.tar.gz
|
||||
```
|
||||
|
||||
重要文件:
|
||||
|
||||
- `data/gitea/gitea.db` - 用户和配置数据
|
||||
- `data/git/repositories/` - 仓库数据
|
||||
- `data/git/lfs/` - LFS 文件
|
||||
@@ -76,15 +124,21 @@ tar -xzvf gitea-backup-20260320.tar.gz
|
||||
## 常用命令
|
||||
|
||||
```bash
|
||||
# 启动
|
||||
# 启动(HTTP 模式)
|
||||
docker compose up -d
|
||||
|
||||
# 启动(Caddy 模式)
|
||||
docker compose --profile caddy up -d
|
||||
|
||||
# 停止
|
||||
docker compose down
|
||||
|
||||
# 查看日志
|
||||
docker compose logs -f
|
||||
|
||||
# 查看 Caddy 日志
|
||||
docker compose logs -f caddy
|
||||
|
||||
# 重启
|
||||
docker compose restart
|
||||
|
||||
|
||||
@@ -8,6 +8,9 @@ services:
|
||||
- GITEA__lfs__PATH=${GITEA__lfs__PATH}
|
||||
- GITEA__service__DISABLE_REGISTRATION=${GITEA__service__DISABLE_REGISTRATION}
|
||||
- GITEA__server__SSH_PORT=${GITEA__server__SSH_PORT}
|
||||
- GITEA__server__ROOT_URL=${ROOT_URL}
|
||||
- GITEA__server__DOMAIN=${DOMAIN}
|
||||
- GITEA__server__SSH_DOMAIN=${DOMAIN}
|
||||
restart: always
|
||||
volumes:
|
||||
- ./data:/data
|
||||
@@ -15,6 +18,24 @@ services:
|
||||
- "${HTTP_PORT}:3000"
|
||||
- "${SSH_PORT}:22"
|
||||
|
||||
caddy:
|
||||
image: caddy:2
|
||||
container_name: caddy
|
||||
profiles:
|
||||
- caddy
|
||||
environment:
|
||||
- DOMAIN=${DOMAIN}
|
||||
restart: always
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
||||
- ./caddy_data:/data
|
||||
- ./caddy_config:/config
|
||||
depends_on:
|
||||
- gitea
|
||||
|
||||
networks:
|
||||
default:
|
||||
driver: bridge
|
||||
|
||||
Reference in New Issue
Block a user