1. 安装Gitea镜像

qnap Container Station - 创建 - 创建应用程序(yaml文件, 与docker compose文件建立docker container完全相同)

version: '3.3'
services: 
  gitea_db:
    image: mysql:5.7
    container_name: gitea_db
    restart: always
    environment:
      MYSQL_DATABASE: gitea
      MYSQL_ROOT_PASSWORD: [mysql root password]
      MYSQL_USER: gitea
      MYSQL_PASSWORD: [mysql root password]
    volumes:
      - db_data:/var/lib/mysql_gitea
    ports:
      - "[host sql port for sql container]:3306"
    networks:
      - gitea-network

  gitea_app:
    depends_on:
      - gitea_db
    image: gitea/gitea
    container_name: gitea_app
    restart: always
    ports:
      - "[host ssh port for gitea container]:22"
      - "[host http port for gitea container]:3000"
    volumes:
      - [gitea config and data path in nas]:/data
    networks:
      - gitea-network

volumes:
  db_data:
  app_data:
networks:
  gitea-network:
    driver: "bridge"

1.1. gitea install配置参考

如果sql服务器中没有保存以前的gitea配置, 首次打开gitea页面会显示安装配置

  • 数据库主机可以配置nas服务器的内网地址和sql docker出口端口, 数据库密码

Untitled

Untitled

1.2. gitea 配置样例

gitea/app.example.ini at main · go-gitea/gitea

  • 不要复制conf/app.ini到custom文件夹下, 直接修改conf/app.ini. 不然配置会无法生效.

  • REPO_INDEXER_ENABLED 开启代码搜索, 但是会占用空间约6倍与源仓库需注意.

  • 挑选部分建议修改的配置

    [repository]
    ROOT = /data/git/repositories
    
    [service]
    DISABLE_REGISTRATION              = true
    REQUIRE_SIGNIN_VIEW               = true
    REGISTER_EMAIL_CONFIRM            = false
    ENABLE_NOTIFY_MAIL                = false
    ALLOW_ONLY_EXTERNAL_REGISTRATION  = false
    ENABLE_CAPTCHA                    = false
    DEFAULT_KEEP_EMAIL_PRIVATE        = false
    DEFAULT_ALLOW_CREATE_ORGANIZATION = false
    DEFAULT_ENABLE_TIMETRACKING       = true
    NO_REPLY_ADDRESS                  = noreply.localhost
    
    ; close openid signin/signup
    [openid]
    ENABLE_OPENID_SIGNIN = false
    ENABLE_OPENID_SIGNUP = false
    

2. Github或其他平台代码迁移到Gitea

gitlab代码迁移的同时, 保留之前的提交记录信息.

  1. 在Gitea中新建一个项目的仓库,用来存放后面需要拷贝的代码信息

  2. 将对应的镜像push到新的仓库地址

    git push --mirror 新仓库地址
    git push --mirror http://[ip address]:[http port]/xxx/xxx.git
    git push --mirror ssh://git@[ip address]:[ssh port]/xxx/xxx.git
    
  3. 将本地仓库的远程地址替换为当前的仓库地址.

    git remote set-url origin 新仓库地址  //将本地远程仓库地址改为新地址