在Linux上部署GitLab涉及多个步骤,包括安装必要的软件包、配置Web服务器、设置数据库、配置GitLab以及启动服务。以下是一个基本的步骤指南:
首先,确保你的系统包是最新的:
sudo apt update
sudo apt upgrade
安装一些必要的依赖包:
sudo apt install -y curl openssh-server ca-certificates tzdata perl
GitLab需要Ruby和OpenSSL。你可以使用以下命令安装它们:
sudo apt install -y ruby2.7 libssl-dev zlib1g-dev
你可以通过以下命令安装GitLab的RubyGems包:
sudo gem install bundler
然后,克隆GitLab的仓库并进入目录:
cd /opt
sudo git clone https://gitlab.com/gitlab-org/gitlab-ce.git
cd gitlab-ce
复制默认的配置文件:
sudo cp config/gitlab.rb /etc/gitlab/gitlab.rb
解压默认的包并配置外部URL(如果你有域名):
sudo tar -xzf gitlab-ce-x.x.x.tar.gz --strip-components=1
sudo gitlab-ctl reconfigure
将x.x.x
替换为你下载的GitLab版本号。
如果你使用的是Apache,安装并配置mod_rails(Passenger):
sudo apt install -y libapache2-mod-passenger
sudo a2enmod passenger
sudo systemctl restart apache2
如果你使用的是Nginx,安装并配置Passenger:
sudo apt install -y nginx libnginx-mod-http-passenger
sudo systemctl restart nginx
GitLab默认使用PostgreSQL数据库。安装PostgreSQL并创建数据库和用户:
sudo apt install -y postgresql postgresql-contrib
sudo -u postgres psql -c "CREATE DATABASE gitlab;"
sudo -u postgres psql -c "CREATE USER gitlab WITH PASSWORD 'your_password';"
sudo -u postgres psql -c "ALTER ROLE gitlab SET client_encoding TO 'utf8';"
sudo -u postgres psql -c "ALTER ROLE gitlab SET default_transaction_isolation TO 'read committed';"
sudo -u postgres psql -c "ALTER ROLE gitlab SET timezone TO 'UTC';"
配置GitLab使用PostgreSQL:
sudo gitlab-ctl reconfigure
最后,启动GitLab服务:
sudo gitlab-ctl start
打开浏览器,访问http://your_server_ip
,按照提示完成初始设置。
如果你使用的是UFW防火墙,允许HTTP和HTTPS流量:
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'
sudo ufw enable
如果你希望GitLab在系统启动时自动运行,可以使用systemd:
sudo systemctl enable gitlab-ce
sudo systemctl start gitlab-ce
这样,你就完成了在Linux上部署GitLab的基本步骤。根据你的具体需求,你可能还需要进行更多的配置和优化。