Contents

Gitea搭建

文档

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 简介

  • 类似 GitHub,支持私有仓库、Web 界面、SSH/HTTP 访问、权限控制
  • 极轻量(一个二进制文件),超适合自用
  • 官网:https://gitea.io

🧰 环境准备

建议系统: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
  • 管理员账户:设置你自己的用户名和密码

🌐 可选:开放防火墙端口

1
sudo ufw allow 3000

或放在 Nginx 后面使用 80/443


🛡️ 后续建议

操作命令
重启 Giteasudo 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. 编辑配置文件
1
sudo nano /etc/gitea/app.ini
  1. 修改服务器配置段
[server]
HTTP_ADDR = 127.0.0.1  # 原为 0.0.0.0
HTTP_PORT = 3000
  1. 重启服务生效
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. 生效规则

1
sudo ufw reload

方法三:Nginx 反向代理隔离(生产环境推荐)

  1. 修改 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;
    }
}
  1. 禁用原3000端口外部访问
1
sudo ufw deny 3000

验证配置效果

  1. 本地访问测试
1
curl 127.0.0.1:3000  # 应该正常响应
  1. 局域网访问测试(其他机器)
1
curl 你的服务器内网IP:3000  # 应该返回连接拒绝

补充安全措施

  1. 检查监听状态
1
2
ss -tulpn | grep 3000
# 正确应显示:tcp LISTEN 0 128 127.0.0.1:3000
  1. 永久关闭 IP 转发(增强隔离)
1
2
sudo sysctl -w net.ipv4.ip_forward=0
echo "net.ipv4.ip_forward = 0" | sudo tee -a /etc/sysctl.conf

注意事项

  1. 如果使用 SSH 端口转发访问,保持22端口开放
  2. 修改配置前建议备份 app.ini 文件
  3. 组合使用「方法一 + 方法二」能达到最佳隔离效果

以上方案可使 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)
部署成本需公网服务器需要公网服务器作为中转节点