朱焱伟 发表于 2025-1-29 20:15:48

自建git仓库(forgejo)

本帖最后由 朱焱伟 于 2025-1-30 11:34 编辑

# 自建git仓库(forgejo)

前一段时间,GitLab区限制了中国区用户使用,下最后通牒说是六十天内要删除中国区用户的账户数据。
这下真是“华人与狗不得入内”了。虽然使用国外代理IP暂时可以苟一段时间,但警钟已经敲响。
除了使用GitHub,自己也可以自建Git托管。如果要求不高,自建GitLab实例的话,资源占用比较高,不太适合。
自建Gitea是常见选择,内存占用较少,适合个人简单使用。社区有基于Gitea的分支forgejo,也可以尝试下。

## 自建forgejo

前提条件是,已经安装好docker和docker compose;并且给docker设置了国内可用的mirror。然后运行命令:

```bash
set -x
docker pull code.forgejo.org/forgejo/forgejo:9

echo '请以root运行'
if [ `whoami` != "root" ]; then
    echo "Error: Current user is not root, please change to root..."
    exit 1
fi


if [[ -f /usr/local/selfhosted/conf/compose/yml.d/forgejo.yml ]]; then
    echo "File /usr/local/selfhosted/conf/compose/yml.d/forgejo.yml already exists. Exit."
else
    touch /etc/timezone
    echo 'Asia/Shanghai' > /etc/timezone
    touch /etc/localtime
    mkdir -p /usr/local/selfhosted/conf/compose/yml.d/
    mkdir -p /usr/local/selfhosted/file/forgejo/ # ./forgejo
    chmod -R 755 /usr/local/selfhosted/
    cat << EOF | cat > /usr/local/selfhosted/conf/compose/yml.d/forgejo.yml
version: '3.9'

networks:
forgejo:
    external: false

services:
forgejo:
    image: codeberg.org/forgejo/forgejo:9
    container_name: forgejo
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: always
    networks:
      - forgejo
    volumes:
      #- ./forgejo:/data
      #- ../../../file/forgejo mount path must be absolute
      - /usr/local/selfhosted/file/forgejo:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - '3000:3000'
      - '222:22'
EOF
    cd /usr/local/selfhosted/file/
    # docker-compose -f /usr/local/selfhosted/conf/compose/yml.d/forgejo.yml up -d
    if command -v docker-compose &> /dev/null
    then
      docker-compose -f /usr/local/selfhosted/conf/compose/yml.d/forgejo.yml up -d
    else
      docker compose -f /usr/local/selfhosted/conf/compose/yml.d/forgejo.yml up -d
    fi
fi

# docker-compose -f /usr/local/selfhosted/conf/compose/yml.d/forgejo.yml stop
```

启动之后,就可以访问`服务器IP:3000`来看网页界面,进行基础设置了。
使用时,可以从GitHub或GitLab迁移仓库过来。其他也基本够用了。不过截止目前(2025年1月),forgejo好像还不支持subgroups,可见(https://codeberg.org/forgejo/forgejo/issues/1024)的讨论。

李恒道 发表于 2025-1-29 21:11:08

好久没看到朱哥了!
页: [1]
查看完整版本: 自建git仓库(forgejo)