Skip to content

安装

shell
sudo apt install curl
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
sudo curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
apt-get install -y gitlab-ce=17.5.2-ce.0

配置

Gitlab 主要的配置文件是 /etc/gitlab/gitlab.rb,其他的配置都因为 gitlab-ctl reconfigure 生成的。

bash
vim /etc/gitlab/gitlab.rb
/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

找到一下位置

yaml
external_url 'http://192.168.100.100:9090'

修改对应IP。

修改代码仓库 dirs 地址

ruby
git_data_dirs({                                                                                      
  "default" => {
    "path" => "/home/data/git/git-data"
  }
})

修改为新的路径。

第三步 重启服务

重新生成配置,重启 gitlab 服务。

shell
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-ctl stop/start

备份 gitlab 数据库

shell
cat /var/opt/gitlab/gitlab-rails/etc/database.yml

psql 进入SQL 控制台:

shell
psql -h /var/opt/gitlab/postgresql -d gitlabhq_production   //连接到gitlabhq_production库

基本操作 SQL:

sql
psql (9.2.18)
Type "help" for help.
\h    //查看帮助命令
\l     //查看数据库
\c gitlabhq_production //进入gitlabhq_production库
\dt   //查看多表
\q    //退出psql

导出整个库:

shell
su - gitlab-psql 
pg_dump -h 127.0.0.1 -U testuser test >test.sql
pg_dump -h /var/opt/gitlab/postgresql -U gitlab gitlabhq_production > git.sql

pg_dump -h /var/opt/gitlab/postgresql gitlabhq_production > git.sql

psql -h /var/opt/gitlab/postgresql -d gitlabhq_production -f gitlab.sql

psql -h localhost -d gitlabhq_production -f /mnt/backup/gitlab-bak/gitlab.sql

外置 PG 数据库

安装 PG 数据库:略

从控制台连接并创建用户:

sql
sudo -u postgres psql
CREATE USER gitlab WITH SUPERUSER;
CREATE ROLE
postgres=# ALTER USER gitlab WITH PASSWORD '123456';
ALTER ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE postgres TO gitlab;
GRANT
postgres=# \q

创建数据库,并授权用户:

sql
CREATE DATABASE gitlabhq_production;
# 授权用户 gitlab 有数据库 gitlabhq_production 访问权限
GRANT CONNECT ON DATABASE gitlabhq_production TO gitlab;
-- 授权使用 schema
GRANT USAGE,CREATE ON SCHEMA public TO gitlab;
-- 授权在 schema 中 授权表操作权限
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO  gitlab;

-- 可选:授权未来表的权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO gitlab;

-- 退出
\q

配置远程连接

远程连接

shell
vim /etc/postgresql/<版本>/main/postgresql.conf
vim /etc/postgresql/17/main/postgresql.conf

找到 listen_addresses 行,修改为远程连接的 IP 或 '*':

yaml
listen_addresses = '*'  # 允许所有 IP 地址
# listen_addresses = '0.0.0.0,::'  # 允许 IPv4 和 IPv6

客户端访问

shell
vim /etc/postgresql/<版本>/main/pg_hba.conf
vim /etc/postgresql/17/main/pg_hba.conf

最后心的一行增加

log
# 格式:host 数据库 用户 IP范围 认证方法
host    all             all             192.168.1.1/24          scram-sha-256
host    all             all             192.168.1.1/24          md5

参考