文档
https://docs.gitea.com/zh-cn/category/installation
https://dl.gitea.com/gitea/1.23.7/
安装(二进制)
https://docs.gitea.com/zh-cn/installation/install-from-binary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| # 环境准备
sudo apt update
sudo apt install git wget sqlite3 -y
# gitea下载
wget -O gitea https://dl.gitea.com/gitea/1.23.7/gitea-1.23.7-linux-amd64 # -O write documents to FILE
wget gitea https://dl.gitea.com/gitea/1.23.7/gitea-1.23.7-linux-amd64.asc
chmod +x gitea
sudo cp gitea /usr/local/bin/gitea
# 验证GPG签名[可选]
gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
gpg --verify gitea-1.23.7-linux-amd64.asc gitea
# 创建工作路径
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
# 网页配置完成后执行
chmod 750 /etc/gitea
chmod 640 /etc/gitea/app.ini
# 创建 Gitea 用户
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
# 添加 Systemd 服务(开机自启)
sudo tee /etc/systemd/system/gitea.service > /dev/null << EOF
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
Requires=network.target
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
EOF
# 启动服务
sudo systemctl daemon-reload
sudo systemctl enable --now gitea
sudo systemctl status gitea # 检查服务状态
# 访问 Web 页面配置
打开浏览器访问:
📎 http://<你的服务器IP>:3000
/etc/gitea/app.ini # 配置文件默认路径
# 可选:开放防火墙端口
sudo ufw allow 3000 # 或放在 Nginx 后面使用 80/443
sudo ufw status
sudo systemctl restart gitea # 重启 Gitea
|
安装指导 gpt
下面是在 Ubuntu 上部署 Gitea(私有 Git 平台) 的超清晰步骤,轻量好用,适合个人和小团队,几十 MB 就能跑,几分钟搞定!💻🚀
🧩 Gitea 简介
🧰 环境准备
建议系统:Ubuntu 20.04+
你只需要安装以下:
1
2
| sudo apt update
sudo apt install git wget sqlite3 -y
|
默认用 SQLite 存数据库(轻量),也支持 MySQL / PostgreSQL。
🚀 安装 Gitea
🔧 第一步:创建 Gitea 用户
1
2
3
4
5
6
7
8
| sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
|
🔧 第二步:下载 Gitea
1
2
3
| wget -O gitea https://dl.gitea.io/gitea/latest/gitea-linux-amd64
chmod +x gitea
sudo mv gitea /usr/local/bin/gitea
|
🔧 第三步:创建所需目录
1
2
3
4
5
6
7
| sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
|
🔧 第四步:添加 Systemd 服务(开机自启)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| sudo tee /etc/systemd/system/gitea.service > /dev/null << EOF
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
Requires=network.target
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target
EOF
|
🔧 第五步:启动服务
1
2
| sudo systemctl daemon-reexec
sudo systemctl enable --now gitea
|
✅ 第六步:访问 Web 页面配置
打开浏览器访问:
📎 http://<你的服务器IP>:3000
首次进入安装界面,填写:
- 数据库:SQLite(默认)
- 仓库路径:
/var/lib/gitea/data/gitea-repositories
- 应用路径:
/usr/local/bin/gitea
- 配置文件:
/etc/gitea/app.ini
- 管理员账户:设置你自己的用户名和密码
🌐 可选:开放防火墙端口
或放在 Nginx 后面使用 80/443
🛡️ 后续建议
操作 | 命令 |
---|
重启 Gitea | sudo systemctl restart gitea |
查看日志 | journalctl -u gitea -f |
Gitea 配置文件 | /etc/gitea/app.ini |
仓库存储路径 | /var/lib/gitea/data/gitea-repositories |
验证 GPG 签名
因notion导出格式问题,待续…
FAQ
1. 默认配置文件位置
/etc/gitea/app.ini
2. 3000端口禁止访问
以下是限制 Gitea 3000 端口仅允许本地访问的解决方案:
方法一:修改 Gitea 监听地址
- 编辑配置文件
1
| sudo nano /etc/gitea/app.ini
|
- 修改服务器配置段
[server]
HTTP_ADDR = 127.0.0.1 # 原为 0.0.0.0
HTTP_PORT = 3000
- 重启服务生效
1
| sudo systemctl restart gitea
|
方法二:使用防火墙规则(推荐组合方案)
1. 清除原有3000端口规则
1
| sudo ufw delete allow 3000
|
2. 设置新规则(仅允许本机访问)
1
2
| sudo ufw allow from 127.0.0.1 to any port 3000
sudo ufw deny 3000 # 明确拒绝其他访问
|
3. 生效规则
方法三:Nginx 反向代理隔离(生产环境推荐)
- 修改 Nginx 配置
server {
listen 80;
server_name localhost; # 仅限本机访问
location / {
proxy_pass <http://127.0.0.1:3000>;
# 添加IP白名单(可选)
allow 192.168.1.100; # 允许指定IP
deny all;
}
}
- 禁用原3000端口外部访问
验证配置效果
- 本地访问测试
1
| curl 127.0.0.1:3000 # 应该正常响应
|
- 局域网访问测试(其他机器)
1
| curl 你的服务器内网IP:3000 # 应该返回连接拒绝
|
补充安全措施
- 检查监听状态
1
2
| ss -tulpn | grep 3000
# 正确应显示:tcp LISTEN 0 128 127.0.0.1:3000
|
- 永久关闭 IP 转发(增强隔离)
1
2
| sudo sysctl -w net.ipv4.ip_forward=0
echo "net.ipv4.ip_forward = 0" | sudo tee -a /etc/sysctl.conf
|
注意事项:
- 如果使用 SSH 端口转发访问,保持22端口开放
- 修改配置前建议备份
app.ini
文件 - 组合使用「方法一 + 方法二」能达到最佳隔离效果
以上方案可使 Gitea 服务仅限本机访问,同时可通过 Nginx 配置选择性开放外部访问权限。
3. frp反向代理
待续…
4. nginx反向代理
待续…
5. frp vs. nginx
核心区别对比表
特性 | Nginx 反向代理 | frp 反向代理 |
---|
主要定位 | Web 服务器专用代理 | 内网穿透/多协议通用代理 |
典型场景 | 公网服务器直接暴露服务 | 内网服务通过公网中转暴露 |
协议支持 | 专注 HTTP/HTTPS/WebSocket | 支持 TCP/UDP/HTTP/HTTPS 等多协议 |
SSL 终端 | 原生支持(Let’s Encrypt 集成) | 依赖客户端配置或外部证书 |
性能优化 | 连接池、缓存、Gzip 等高级优化 | 基础转发,无 Web 专用优化 |
配置复杂度 | 较高(需熟悉 Nginx 语法) | 较低(INI 格式简单配置) |
安全性 | WAF 能力、访问控制、速率限制 | 依赖传输层加密(如 TLS) |
部署成本 | 需公网服务器 | 需要公网服务器作为中转节点 |