Gitea 重安装 + Snap 数据迁移完整流程总结

下面是你这次实际验证成功的:

复制代码
Ubuntu / 阿里云 / Snap → 官方二进制版

完整迁移方案。


一、恢复 Snap 数据(非常关键)

你之前:

复制代码
sudo snap remove gitea

后:

复制代码
/var/snap/gitea

没了。

但 Snap 自动快照还在。

查看:

复制代码
snap saved

看到:

复制代码
Set 1 gitea ...

恢复:

复制代码
sudo snap restore 1

恢复后:

复制代码
/var/snap/gitea/common

重新出现。


二、最重要的数据位置


1. Git 仓库(真正核心)

复制代码
/var/snap/gitea/common/data/gitea-repositories

例如:

复制代码
/var/snap/gitea/common/data/gitea-repositories/admin/HG_pc.git

这里才是真正代码。


2. 数据库

复制代码
/var/snap/gitea/common/data/gitea.db

保存:

  • 用户

  • 仓库信息

  • Issue

  • Token

  • Release

  • Wiki

  • 设置


3. 配置文件

复制代码
/var/snap/gitea/common/conf/app.ini

包含:

  • SECRET_KEY

  • JWT_SECRET

  • INTERNAL_TOKEN

建议保留。


三、先备份(强烈推荐)


仓库备份

复制代码
sudo tar czvf ~/gitea_repositories_backup.tar.gz \
/var/snap/gitea/common/data/gitea-repositories

完整备份

复制代码
sudo tar czvf ~/gitea_full_backup.tar.gz \
/var/snap/gitea/common/data/gitea-repositories \
/var/snap/gitea/common/data/gitea.db \
/var/snap/gitea/common/conf

四、安装官方二进制版

下载:https://github.com/go-gitea/gitea/releases?utm_source=chatgpt.comhttps://github.com/go-gitea/gitea/releases?utm_source=chatgpt.com

复制代码
gitea-1.26.1-linux-amd64.xz

解压

复制代码
xz -d gitea-1.26.1-linux-amd64.xz
mv gitea-1.26.1-linux-amd64 gitea
chmod +x gitea

安装

复制代码
sudo mv gitea /usr/local/bin/

验证:

复制代码
gitea --version

五、创建 git 用户

复制代码
sudo adduser \
  --system \
  --shell /bin/bash \
  --group \
  --disabled-password \
  --home /home/git \
  git

六、创建目录

复制代码
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo mkdir -p /var/lib/gitea/data/git/repositories
sudo mkdir -p /etc/gitea

七、迁移数据


1. 复制仓库

复制代码
sudo cp -r \
/var/snap/gitea/common/data/gitea-repositories/* \
/var/lib/gitea/data/git/repositories/

2. 复制数据库

复制代码
sudo cp \
/var/snap/gitea/common/data/gitea.db \
/var/lib/gitea/data/

3. 复制 app.ini

复制代码
sudo cp \
/var/snap/gitea/common/conf/app.ini \
/etc/gitea/

八、修改 app.ini(关键)

编辑:

复制代码
sudo nano /etc/gitea/app.ini

重点修改:


改运行用户

复制代码
RUN_USER = git

不要 root。


改工作目录

复制代码
WORK_PATH = /var/lib/gitea

改仓库目录

原来:

复制代码
ROOT = /var/snap/gitea/common/data/gitea-repositories

改:

复制代码
ROOT = /var/lib/gitea/data/git/repositories

改 APP_DATA_PATH

原来:

复制代码
APP_DATA_PATH = /var/snap/gitea/common/data

改:

复制代码
APP_DATA_PATH = /var/lib/gitea/data

改 LFS

复制代码
PATH = /var/lib/gitea/data/lfs

改日志目录

复制代码
ROOT_PATH = /var/lib/gitea/log

保留以下不要变

复制代码
INTERNAL_TOKEN
JWT_SECRET
LFS_JWT_SECRET

九、修复权限(非常重要)

复制代码
sudo chown -R git:git /var/lib/gitea
sudo chown -R git:git /etc/gitea

十、创建 systemd 服务

创建:

复制代码
sudo nano /etc/systemd/system/gitea.service

内容:

复制代码
[Unit]
Description=Gitea
After=network.target

[Service]
Type=simple
User=git
Group=git

WorkingDirectory=/var/lib/gitea/

ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini

Restart=always
RestartSec=2s

Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea

CapabilityBoundingSet=
PrivateTmp=true
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

十一、启动 Gitea

刷新:

复制代码
sudo systemctl daemon-reload

开机启动:

复制代码
sudo systemctl enable gitea

启动:

复制代码
sudo systemctl start gitea

十二、查看状态

复制代码
sudo systemctl status gitea --no-pager -l

日志:

复制代码
journalctl -u gitea -f

十三、浏览器访问

复制代码
http://你的IP:3000

十四、Git Push 认证失败解决

因为迁移后:

复制代码
Windows 还缓存旧密码

删除 Windows 凭据:

复制代码
控制面板
→ 凭据管理器
→ Windows 凭据

删除:原来域名对应的凭据


推荐使用 Token

Gitea:

复制代码
头像
→ Settings
→ Applications
→ Generate Token

权限:

复制代码
repository → 读写

十五、Gitea 密码位置

保存在:

复制代码
gitea.db

的:

复制代码
user

表中。

是:

复制代码
PBKDF2 哈希

不是明文。


重置密码

复制代码
sudo -u git gitea admin user change-password \
  --config /etc/gitea/app.ini \
  --username admin \
  --password 新密码

十六、最终推荐

以后:

复制代码
不要再用 Snap 版 Gitea

推荐:

复制代码
官方二进制 + systemd

优点:

  • 更稳定

  • 路径清晰

  • 数据容易备份

  • 不会被 Snap 自动机制干扰

  • 更适合生产环境。

相关推荐
匆匆那年9672 小时前
远程 Linux 校园网认证操作手册(本地浏览器法)
linux·运维·服务器
newnazi3 小时前
RedHat10 安装MS SQL Server2025
linux·服务器·数据库
zkkkkkkkkkkkkk3 小时前
Linux进行管理工具Supervisor配置与使用
linux·python·supervisor
开发者联盟league4 小时前
linux普通用户使用pip安装模块
linux·python·pip
QuestLab4 小时前
③-进阶篇:vLLM实战——多卡部署、压测与排障
linux·服务器·网络
Languorous.4 小时前
Windows 安装 Linux 虚拟机 / WSL 完整教程(新手零失败)
linux·运维·windows
颂love5 小时前
Linux命令的简单学习
linux·运维·学习
satadriver5 小时前
ip-guard网络通信加解密
linux·网络·tcp/ip
meilindehuzi_a5 小时前
【Linux 进程基础】一文读懂命令行参数与环境变量
linux·服务器