Stan, thanks for the reply.
I have pasted below only the UNCOMMENTED sections of my gitlab.rb file.
I havenât needed anything fancy for my GitLab instance, as I use this particular instance to store my âlocal labâ repositories. We have a larger corporate Git server that I use with âgit bundleâ to move repos from this GitLab instance.
The gitaly configuration is at the bottom. I saw that the certificate path was an issue, because that certificate is not there in that directory.
However, I couldnât find in the docs how to add this certificate in properly. The GitLab configuration is extensive, so I have only made adjustments that were outlined in the installation procedures and left the rest of the options alone.
external_url '``https://jme-gitlab.xxx.xxxxx.com``'
gitlab_rails[âgitlab_repository_downloads_pathâ] = âtmp/repositoriesâ
gitlab_rails[âgitlab_shell_ssh_portâ] = 22
gitlab_rails[âgitlab_shell_git_timeoutâ] = 800
gitlab_rails['rack_attack_git_basic_auth'] = {
'enabled' => false,
'ip_whitelist' => ["127.0.0.1"],
'maxretry' => 10,
'findtime' => 60,
'bantime' => 3600
}
gitlab_rails['dir'] = "/var/opt/gitlab/gitlab-rails"
gitlab_rails['log_directory'] = "/var/log/gitlab/gitlab-rails"
gitlab_rails['log_group'] = nil
gitlab_rails['initial_root_password'] = "xxxxxxxxxxxxxxxxxx"
gitlab_rails['initial_shared_runners_registration_token'] = "token"
#### Toggle if root password should be printed to STDOUT during initialization
gitlab_rails['display_initial_root_password'] = true
#### Toggle if initial root password should be written to /etc/gitlab/initial_root_password
gitlab_rails['store_initial_root_password'] = true
gitlab_rails['auto_migrate'] = true
user['username'] = "git"
user['group'] = "git"
# user['uid'] = nil
# user['gid'] = nil
##! The shell for the git user
user['shell'] = "/bin/sh"
##! The home directory for the git user
user['home'] = "/home/git"
user['git_user_name'] = "GitLab"
user['git_user_email'] = "gitlab@#{node['fqdn']}"
prometheus['listen_address'] = '0.0.0.0:19090'
The gitaly configuration belowâŚ
gitlab_rails[âinternal_api_urlâ] = âhttps://jme-gitlab.xxx.xxxxx.com/â
gitlab_rails[âtrusted_cert_dirâ] = â/etc/gitlab/trusted-certsâ
gitaly[âopen_files_ulimitâ] = 15000 # Maximum number of open files allowed for the gitaly process
##! Service name used to register Gitaly as a Consul service
gitaly[âconsul_service_nameâ] = âgitalyâ
##! Semantic metadata used when registering Gitaly as a Consul service
gitaly[âconsul_service_metaâ] = {}
gitaly[âconfigurationâ] = {
storage: [
{
name: âdefaultâ,
path: â/home/jmarcedwards/data-disk-1/git-data/repositoriesâ
},
],
socket_path: â/var/opt/gitlab/gitaly/gitaly.socketâ,
runtime_dir: â/var/opt/gitlab/gitaly/runâ,
listen_addr: âlocalhost:8075â,
prometheus_listen_addr: âlocalhost:9236â,
tls_listen_addr: âlocalhost:9075â,
tls: {
certificate_path: â/var/opt/gitlab/gitaly/certificate.pemâ,
key_path: â/var/opt/gitlab/gitaly/key.pemâ,
},
graceful_restart_timeout: â1mâ, # Grace time for a gitaly process to finish ongoing requests
logging: {
dir: â/var/log/gitlab/gitalyâ,
level: âwarnâ,
format: âjsonâ,
sentry_dsn: âhttps://<key>:<secret>@sentry.io/â,
sentry_environment: âproductionâ,
},
prometheus: {
grpc_latency_buckets: [0.001, 0.005, 0.025, 0.1, 0.5, 1.0, 10.0, 30.0, 60.0, 300.0, 1500.0],
},
auth: {
token: ââ,
transitioning: false, # When true, auth is logged to Prometheus but NOT enforced
},
git: {
catfile_cache_size: 100, # Number of âgit cat-fileâ processes kept around for re-use
bin_path: â/opt/gitlab/embedded/bin/gitâ, # A custom path for the âgitâ executable
use_bundled_binaries: true, # Whether to use bundled Git.
signing_key: â/var/opt/gitlab/gitaly/signing_key.gpgâ,
## Gitaly knows to set up the required default configuration for spawned Git
## commands automatically. It should thus not be required to configure anything
## here, except in very special situations where you must e.g. tweak specific
## performance-related settings or enable debugging facilities. It is not safe in
## general to set Git configuration that may change Git output in ways that are
## unexpected by Gitaly.
config: [
{ key: âpack.threadsâ, value: â4â },
{ key: âhttp.http://example.com.proxyâ, value: âhttp://example.proxy.comâ },
],
},
hooks: {
custom_hooks_dir: â/var/opt/gitlab/gitaly/custom_hooksâ,
},
daily_maintenance: {
disabled: false,
start_hour: 22,
start_minute: 30,
duration: â30mâ,
storages: [âdefaultâ],
},
cgroups: {
mountpoint: â/sys/fs/cgroupâ,
hierarchy_root: âgitalyâ,
## memory_bytes: 1048576,
memory_bytes: 40000000000,
cpu_shares: 512,
cpu_quota_us: 400000,
repositories: {
count: 100,
memory_bytes: 12884901888,
## memory_bytes: 0,
cpu_shares: 128,
cpu_quota_us: 200000
},
},
concurrency: [
{
rpc: â/gitaly.SmartHTTPService/PostReceivePackâ,
max_per_repo: 20,
},
{
rpc: â/gitaly.SSHService/SSHUploadPackâ,
max_per_repo: 5,
},
],
rate_limiting: [
{
rpc: â/gitaly.SmartHTTPService/PostReceivePackâ,
interval: â1mâ,
burst: 10,
},
{
rpc: â/gitaly.SSHService/SSHUploadPackâ,
interval: â1mâ,
burst: 5,
},
],
pack_objects_cache: {
enabled: true,
dir: â/var/opt/gitlab/git-data/repositories/+gitaly/PackObjectsCacheâ,
max_age: â5mâ,
},
}
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = 0
letsencrypt['auto_renew_minute'] = nil # Should be a number or cron expression, if specified.
letsencrypt['auto_renew_day_of_month'] = "*/4"
letsencrypt['auto_renew_log_directory'] = '/var/log/gitlab/lets-encrypt'