Environment requirements: at least 4G of memory, GitLab is very memory-consuming
1. Install and Configure necessary dependencies
On CentOS systems, the following command will open HTTP and SSH access in the system firewall.
$ sudo yum install -y curl policycoreutils-python openssh-server $ sudo systemctl enable sshd $ sudo systemctl start sshd $ sudo firewall-cmd --permanent --add-service=http $ sudo systemctl reload firewalld
Install Postfix, which is used to send emails. Select 'Internet Site' during the installation of Postfix.
$ sudo yum install postfix $ sudo systemctl enable postfix $ sudo systemctl start postfix
You can also configure a custom SMTP server.
2. Add the GitLab mirror repository and install it
gitlab-ce is the community version, free
gitlab-ee is the enterprise version, paid
2.1 Use the official mirror to install
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash $ sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce # 安装 GitLab
2.2 Use domestic mirror installation (recommended)
If you are prompted that the connection has timed out, you can use Tsinghua University Open Source Software Mirror Station: https://mirror.tuna.tsinghua .....
After entering the website, there are detailed installation steps, just follow the installation.
Here is an introduction to using Tsinghua University open source software mirror station in CentOSInstallation:
Restore the yum source first, delete the gitlab-ce source:
$ ls -l /etc/yum.repos.d/ # 查看源配置项 $ mv /etc/yum.repos.d/gitlab_gitlab-ce.repo /etc/yum.repos.d/gitlab_gitlab-ce.repo.bak # 备份源配置项(也可以直接删除 rm)
New /etc/yum.repos.d/gitlab-ce.repo, the content is
[gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1
Execute again
$ sudo yum makecache $ sudo yum install gitlab-ce
After installation, the /opt/gitlab/ directory structure
/opt/gitlab/ ├── backups ├── git-data │ └── repositories │ └── root ├── gitlab-ci │ └── builds ├── gitlab-rails │ ├── etc │ ├── shared │ │ ├── artifacts │ │ ├── lfs-objects │ │ └── pages │ ├── sockets │ ├── tmp │ ├── upgrade-status │ ├── uploads │ └── working ├── gitlab-shell ├── gitlab-workhorse ├── logrotate │ └── logrotate.d ├── nginx │ ├── client_body_temp │ ├── conf │ ├── fastcgi_temp │ ├── logs -> /var/log/gitlab/nginx │ ├── proxy_cache │ ├── proxy_temp │ ├── scgi_temp │ └── uwsgi_temp ├── postgresql │ └── data │ ├── base │ │ ├── 1 │ │ ├── 12918 │ │ ├── 12923 │ │ └── 16385 │ ├── global │ ├── pg_clog │ ├── pg_multixact │ │ ├── members │ │ └── offsets │ ├── pg_notify │ ├── pg_serial │ ├── pg_snapshots │ ├── pg_stat_tmp │ ├── pg_subtrans │ ├── pg_tblspc │ ├── pg_twophase │ └── pg_xlog │ └── archive_status └── redis
3. Configure and start GitLab
Startup command
$ sudo gitlab-ctl reconfigure # 首次启动也要用此命令。重新加载配置并启动 $ sudo gitlab-ctl start # 启动 $ sudo gitlab-ctl stop # 停止
/etc/gitlab/ Directory structure:
/etc/gitlab/ ├── gitlab.rb ├── gitlab-secrets.json └── ssl └── trusted-certs
The basic configuration of gitLab is concentrated in the /etc/gitlab/gitlab.rb file , for the function and configuration of each parameter, please refer to the configuration instructions on the official website.
Configuration parameters:
### Advanced settings # unicorn['listen'] = 'localhost' # unicorn['port'] = 8090 #默认是8080端口 nginx['listen_port'] = 8081 # gitlab nginx 端口。默认端口为:80 external_url 'http://192.168.137.129' # clone时显示的地址,gitlab 的域名
Configuration:
$ sudo gitlab-ctl stop # 先停止 GitLab 服务 $ vim /etc/gitlab/gitlab.rb # 修改配置文件
After making any changes, save and exit, enter one by one on the command line The following command makes the configuration effective
Start the database, otherwise reconfigure will report an error
$ sudo gitlab-ctl restart postgresql $ sudo gitlab-ctl reconfigure $ sudo gitlab-ctl start
4. Access
The default administrator account of the system is root. When accessing GitLab for the first time, you will be asked Initialize the password of the administrator account.
5. Port conflict problem
After installation, you will find a problem; gitlab is actually a web; it comes with nginx; if you are also a server, the above Apache or nginx will be installed; then the port will conflict;
Just change the default port of nginx that comes with gitlab
6. Uninstall GitLab
$ sudo gitlab-ctl stop # 停止 $ sudo rpm -e gitlab-ce # 卸载 $ ps aux | grep gitlab # 查看守护进程 $ kill -9 18777 # 杀掉守护进程 $ find / -name gitlab | xargs rm -rf # 删除所有包含gitlab的文件