之前放gitea的服务器快要到期了,打算转移到新的服务器上,还好之前用的是docker,还是比较方便。

迁移数据

直接用scp命令把数据卷复制到新服务器。包括一个data的文件夹以及docker-compose.yml文件。

启动docker

重新看回之前的教程,使用 Docker 安装 | Gitea Documentation

目前的docker-compose.yml文件如下。

version: "3"

services:
  server:
    image: gitea/gitea:latest
    container_name: gitea
    environment:
      - USER_UID=1002
      - USER_GID=1002
    restart: always
    volumes:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "3001:22"

直接运行docker-compose up -d即可,如果没有安装docker-compse就用apt安装。

然后就启动启动起来了。但是不知道为什么启动之后,好几个其他的docker容器,比如nginx和halo都掉了。重新启动就好了。

再参考之前的方式添加反向代理,用子域名访问。

其他设置

gitea

然后其实还有一些问题需要处理,进入gitea之后发现,每一个仓库的地址仍然是旧服务器的ip地址+端口(之前直接用的默认的,应该没有设置)。显然现在用这个地址是访问不到的,需要修改一下。问了下kimi。

首先打开gitea/conf/app.ini(在数据卷里面)这个配置文件,可以看到其[server]下有几个相关的内容,全部改为新服务器的。原来是DOMAIN和SSH_DOMAIN都是IP,然后ROOT_URL是ip加上端口,但是我用了nginx反向代理了这个域名到对应的3000端口了,所以全部都只写这个域名就行(后续如果换了服务器,不换域名应该也不用改了)。

DOMAIN           = git.lxblxb.top
SSH_DOMAIN       = git.lxblxb.top
HTTP_PORT        = 3000
ROOT_URL         = http://git.lxblxb.top/

之后保存,重启一下docker容器即可,再进入仓库就可以看到地址变了。

本地仓库

另外,那些已经clone了旧服务器的仓库,其远程仓库地址也需要更改,在仓库地址执行git remote -v 查看当前的远程仓库地址。

git remote set-url origin <新仓库地址>来修改,修改完之后正常用就可以。