535 字
3 分钟
GitLab(极狐)的部署和配置
安装
IMPORTANT建议参考英文教程:https://about.gitlab.com/
Enable SSH and open firewall ports
sudo systemctl enable --now sshsudo ufw allow 22/tcpsudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw enableAdd the GitLab package repository
sudo apt updatesudo apt install -y curlcurl "https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh" | sudo bash推荐镜像源:MirrorZ Help
Install the package
sudo apt updatesudo EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ce# orsudo GITLAB_ROOT_EMAIL="admin@example.com" GITLAB_ROOT_PASSWORD="strongpassword" EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ce升级
常见问题
从 jh 迁移到 ce 或 ee
创建备份,备份结果在 /var/opt/gitlab/backups/:
sudo gitlab-rake gitlab:backup:create查询 gitlab-jh 版本,例如 17.6.0-jh:
cat /opt/gitlab/embedded/service/gitlab-rails/VERSIO安装指定版本的 gitlab-ce/ee:
- 方法1:参考之前的安装过程增加软件源,并安装指定版本的 gitlab-ce:
sudo apt install gitlab-ce=17.6.0 - 方法2:从
https://packages.gitlab.com/gitlab/gitlab-ce获取并安装指定版本的 deb 安装包
安装完成后,先修改 gitlab-ce 的版本标识符:
vim /opt/gitlab/embedded/service/gitlab-rails/VERSIO# 将版本从 17.6.0 改为 17.6.0-jh,不然备份还原不了修改完成后,使用以下指令还原:
sudo gitlab-rake gitlab:backup:restore BACKUP=1767071890_2025_12_30_17.6.0-jh还原完成后,重启即可使用:
sudo gitlab-ctl reconfiguresudo gitlab-ctl restart内存占用过高
服务器突然崩溃,参考 在内存受限的环境中运行,从6GB降低至4GB,降低了 2GB
sudo vim /etc/gitlab/gitlab.rbsudo gitlab-ctl reconfigurenginx['worker_processes'] = 2puma['worker_processes'] = 0sidekiq['concurrency'] = 5postgresql['max_worker_processes'] = 2prometheus_monitoring['enable'] = falsegitlab_rails['env'] = { 'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000'}gitaly['configuration'] = { concurrency: [ { 'rpc' => "/gitaly.SmartHTTPService/PostReceivePack", 'max_per_repo' => 3, }, { 'rpc' => "/gitaly.SSHService/SSHUploadPack", 'max_per_repo' => 3, }, ], cgroups: { repositories: { count: 2, }, mountpoint: '/sys/fs/cgroup', hierarchy_root: 'gitaly', memory_bytes: 500000, cpu_shares: 512, },}gitaly['env'] = { 'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000', 'GITALY_COMMAND_SPAWN_MAX_PARALLEL' => '2'}同时增加的定时重启:
crontab -e每天0点重启服务器:
# m h dom mon dow command00 00 * * * /sbin/shutdown -r now添加密钥
ssh-keygencat ~/.ssh/id_rsa.pub手动配置 HTTPS
官方方法
- 编辑
/etc/gitlab/gitlab.rb:
external_url "https://gitlab.example.com" # 域名letsencrypt['enable'] = false # 禁用 Let's Encrypt 集成nginx['enable'] = truenginx['redirect_http_to_https'] = truenginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"nginx['listen_port'] = 18080 # 换成其他空闲端口- 创建
/etc/gitlab/ssl目录并将密钥和证书复制到那里:
sudo mkdir -p /etc/gitlab/sslsudo chmod 755 /etc/gitlab/sslsudo cp gitlab.example.com.key gitlab.example.com.crt /etc/gitlab/ssl/sudo chmod 600 /etc/gitlab/ssl/gitlab.example.com.*- 重新加载配置
sudo gitlab-ctl reconfigure使用系统的 nginx 反向代理
sudo vim /etc/nginx/sites-available/gitlabsudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enable/gitlabsudo nginx -tsudo service nginx reloadserver { listen 443 ssl; listen [::]:443 ssl;
server_name gitlab.sample.com;
ssl_certificate /etc/nginx/gitlab.sample.com.pem; ssl_certificate_key /etc/nginx/gitlab.sample.com.key;
location / { proxy_pass http://127.0.0.1:18080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }} GitLab(极狐)的部署和配置
https://fuwari.vercel.app/posts/建站/gitlab/极狐gitlab的部署和配置/