本帖最后由 朱焱伟 于 2025-1-30 11:34 编辑
自建git仓库(forgejo)
前一段时间,GitLab区限制了中国区用户使用,下最后通牒说是六十天内要删除中国区用户的账户数据。
这下真是“华人与狗不得入内”了。虽然使用国外代理IP暂时可以苟一段时间,但警钟已经敲响。
除了使用GitHub,自己也可以自建Git托管。如果要求不高,自建GitLab实例的话,资源占用比较高,不太适合。
自建Gitea是常见选择,内存占用较少,适合个人简单使用。社区有基于Gitea的分支forgejo,也可以尝试下。
自建forgejo
前提条件是,已经安装好docker和docker compose;并且给docker设置了国内可用的mirror。然后运行命令:
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,可见forgejo/issues/1024的讨论。