Gitea是一个轻量级的开源代码托管平台软件,易于部署和维护,可以实现github大部分功能。由于具有版本控制功能,也非常适合于安装到VPS上作为文件备份平台使用,例如作为Obsidian笔记的同步仓库就是非常好的选择。对比于github传输更稳定,不必担心封号风险;而对比于国内的gitee则不存在审核问题,更加安全可靠。本教程以远程debian/ubuntu系统与本地windows系统为例,对Gitea的布署与使用进行说明。

安装docker与docker-compose

curl -sSL https://get.docker.com/ | shsudo apt-get install docker-compose-pluginsudo chmod +x /usr/local/bin/docker-compose

安装Gitea
创建gitea文件夹

创建配置文件docker-compose.yml,设置http端口30000,ssh端口2222,可以自定义更改。

#version: "3"networks:  gitea:    external: falseservices:  server:    image: docker.gitea.com/gitea:latest    container_name: gitea    environment:      - USER_UID=1000      - USER_GID=1000    restart: always    networks:      - gitea    volumes:      - ./gitea:/data      - /etc/timezone:/etc/timezone:ro      - /etc/localtime:/etc/localtime:ro    ports:      - "30000:3000"      - "2222:22"

重启docker-compose

docker compose downdocker compose up -d

打开“ip:30000”,添加管理员账户,其他设置可保持默认,然后执行安装

设置反向代理

安装Nginx

sudo apt update && sudo apt install -y nginx

修改反代配置文件:/etc/nginx/sites-available/default

map $http_upgrade $connection_upgrade {    default upgrade;    ''      close;}server {    listen 80;    server_name 域名;    client_max_body_size 512M;    location / {        proxy_pass http://127.0.0.1:30000;        proxy_http_version 1.1;        proxy_set_header Upgrade $http_upgrade;        proxy_set_header Connection $connection_upgrade;        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;    }}

安装申请证书插件并申请证书:

sudo apt install certbot python3-certbot-nginx -ysudo certbot --nginx -d 域名

重启Nginx

sudo nginx -t && sudo systemctl reload nginx

修改配置文件docker-compose.yml禁止IP访问

#version: "3"networks:  gitea:    external: falseservices:  server:    image: docker.gitea.com/gitea:latest    container_name: gitea    environment:      - USER_UID=1000      - USER_GID=1000    restart: always    networks:      - gitea    volumes:      - ./gitea:/data      - /etc/timezone:/etc/timezone:ro      - /etc/localtime:/etc/localtime:ro    ports:      - "127.0.0.1:30000:3000"      - "2222:22"

HTTPS推送

安装git命令

进入本地文件夹,右键启动PowerShell。

初始化本地仓库

git init

添加远程仓库地址

git remote add origin 远程仓库https地址

推送命令

git add .git commit -m "自定义标记"git push origin main

远程拉取的命令

git pull origin main

SSH推送
生成密钥对

ssh-keygen -t ed25519 -C "邮箱" -f 密钥文件名称

复制.pub公钥文件内容,添加到Gitea平台中。

修改C:\Users\Yang.ssh\config文件

Host 自定义名称    HostName 域名或IP    User git    Port 2222    PreferredAuthentications publickey    IdentityFile 密钥文件位置

测试连接

ssh -T 自定义名称

查看现有远程仓库

git remote -v

删除已有远程仓库关连地址

git remote remove origin

添加远程仓库地址

git remote add origin git@远程仓库ssh地址

执行推送与拉取命令即可。