Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

gitea真的是太轻量好用啦!

1 安装gitea

1.1 准备工作

  • 拥有一台服务器,并且拥有公网ip

我这里是采用了腾讯云的轻量应用云服务器,使用的Ubuntu并安装好了docker。这里采用docker部署。

1.2 创建目录与权限

bash
1
2
mkdir -p /srv/gitea/{data,config,logs}
chown -R 1000:1000 /srv/gitea

1.3 编写docker-compose.yml

/srv/gitea/ 目录下创建 docker-compose.yml

bash
1
sudo vi docker-compose.yml

然后根据自己的配置需求更改。这里已经使用了镜像源。

docker-compose.yml
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
version: "3"

networks:
gitea:
external: false

services:
gitea:
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gitea/gitea:1.24.3
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__server__ROOT_URL=https://gitea.xinghenluyus.cn/ #修改成自己的
- GITEA__server__DOMAIN=gitea.xinghenluyus.cn #修改成自己的
- GITEA__server__SSH_DOMAIN=gitea.xinghenluyus.cn #修改成自己的
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000" # Web 有冲突就修改
- "222:22" # SSH 有冲突就修改

1.4 部署命令

bash
1
2
cd /srv/gitea
sudo docker compose up -d

1.5 解析域名到服务器

这一步主要是为了开启HTTPS,配合反向代理无端口食用。

在域名控制台添加A解析到服务器,在本地电脑打开终端,运行:

bash
1
ping gitea.example.com

如果返回的ip是解析的ip,说明解析成功。

1.6 安装 Nginx

登录你的服务器,执行:

Bash
1
2
3
4
5
6
7
8
9
#更新包列表
sudo apt update

#安装 Nginx
sudo apt install nginx -y

#启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

测试 Nginx 是否正常:

浏览器访问:gitea.example.com,看到Nginx欢迎页则说明安装成功。

1.7 创建 Nginx 配置文件(不启用 HPPTS)

  1. 创建文件
bash
1
sudo vim /etc/nginx/sites-available/gitea.xinghenluyus.cn.conf
nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
server {
listen 80;
server_name gitea.xinghenluyus.cn;

# Certbot 验证路径
location /.well-known/acme-challenge/ {
root /var/www/certbot;
try_files $uri =404;
}

# 其他请求代理到 Gitea
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

  1. 测试配置
bash
1
sudo nginx -t
  1. 应该输出
1
2
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
  1. 重载Nginx
bash
1
sudo systemctl reload nginx

1.8 申请 Let’s Encrypt 证书(Certbot 会自动配置 HTTPS)

  1. 安装 Certbot
bash
1
sudo apt install certbot python3-certbot-nginx -y
  1. 创建验证目录
bash
1
sudo mkdir -p /var/www/certbot
  1. 创建验证目录
bash
1
sudo certbot --nginx -d gitea.xinghenluyus.cn

按提示操作:

  • 输入邮箱(用于安全通知)

  • 同意服务条款(输入 Y)

  • 是否接收推广邮件?输入 N

  • 是否将 HTTP 重定向到 HTTPS?选择 2(强制重定向)

  • 浏览器打开 👉 https://gitea.xinghenluyus.cn ,如果安装过程没问题,就能正常打开gitea了

2 服务器安装 Gitea Runner

2.1 生成配置文件

bash
1
2
cd /srv/gitea-runner
sudo touch config.yaml
bash
1
2
3
docker run --entrypoint="" --rm -it \
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gitea/act_runner:0.2.11 \
act_runner generate-config > config.yaml

2.2 在 Gitea 管理后台获取注册 token

偷个懒~

2.3 用 Docker 运行并注册

bash
1
2
3
4
5
6
7
8
9
10
docker run \
-v /srv/gitea-runner/config.yaml:/config.yaml \
-v /var/run/docker.sock:/var/run/docker.sock \
-e CONFIG_FILE=/config.yaml \
-e GITEA_INSTANCE_URL="https://gitea.xinghenluyus.cn" \
-e GITEA_RUNNER_REGISTRATION_TOKEN="<your_token>" \
-e GITEA_RUNNER_NAME="runner-01" \
-e GITEA_RUNNER_LABELS="linux,docker" \
--name gitea_runner \
-d swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gitea/act_runner:0.2.11
  • 再次进入管理后台,runner应该已经在线啦!
到这里你已经成功部署gitea啦!

评论