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

  • 更适合生产环境。

相关推荐
jcbut1 天前
离线安装dify 1.7
linux·运维·dify
云计算磊哥@1 天前
运维开发宝典024-Linux云计算运维入门阶段总结
linux·运维·运维开发
江华森1 天前
《Linux内核技术实战:从Page Cache到CPU调度的深度解构》博客大纲(26讲精编版)
linux
知无不研1 天前
对套接字的深入理解
linux·服务器·网络·c++·socket·网络套接字
wuminyu1 天前
Java锁机制之Java对象重量级锁源码剖析
java·linux·c语言·jvm·c++
deadbird1 天前
Xbox 无线适配器 Linux 设置指南
linux
wait a minutes1 天前
Ubuntu 升级后 NVIDIA 驱动修复指南
linux·运维·ubuntu
bush41 天前
嵌入式linux学习记录十二,mmap
java·linux·学习
似水এ᭄往昔1 天前
【Linux系统编程】--进程概念
linux·运维·服务器
Dxy12393102161 天前
Linux 如何关闭关不掉的进程
linux·运维·chrome