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 自动机制干扰

  • 更适合生产环境。

相关推荐
zuiyuewentian18 分钟前
借助 AI 在 Win11 上搭建 Rocky Linux:用 Visual Studio 直接调试 Linux 服务
linux·运维·visual studio
牢姐与蒯22 分钟前
WSL2 迁移教程:把Ubuntu+WSL2从C盘挪到别的盘
linux·运维·服务器·网络·ubuntu·1024程序员节
垆边人似月.24 分钟前
RDMA 文件传输踩坑(二):为什么 `sleep()` 不能保证接收端准备好了?
linux·服务器·网络·rdma
DYWorker0011 小时前
第 1-10 课: 横切设施:锁、RCU、安全与观测怎么选?
linux
臻一1 小时前
rk3568---ftp无法连接
linux·ftp·3568
Elastic 中国社区官方博客1 小时前
Elastic 在《Forrester Wave™:2026 年第四季度智能运维平台》报告中被评为强劲表现者
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索
自由彩虹1 小时前
靶场通关16--victim1
linux·服务器·网络·安全·web安全·网络安全
叼烟扛炮1 小时前
Linux 学习笔记(三十九):网络基石——TCP/IP 模型与 UDP 实战
linux·运维·网络·笔记·学习·tcp/ip
闲云野鹤在人间1 小时前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd
wuminyu1 小时前
JVM规范学习总结:class执行性能差异
java·linux·c语言·jvm·c++