# Gitlab

## Docker Install

```bash
# Change the server's SSH port in /etc/ssh/sshd_config
Port = 2424

# Then tell selinux about it
semanage port -a -t ssh_port_t -p tcp 2424
# And add the firewall rule
firewall-cmd --add-port=2424/tcp --permanent
firewall-cmd --reload
# Reload SSH
systemctl restart sshd

# Make a Gitlab directory
mkdir -p /srv/gitlab

# Add the following to .bashrc (used in the compose file)
export GITLAB_HOME=/srv/gitlab
```

Create your `gitlab-compose.yaml`. See the file in this repo for an example.

Also create the file `secrets/gitlab.rb` with your configuration. Should look something like this:

```ruby
# Add any other gitlab.rb configuration here, each on its own line
external_url 'https://gitlab.reeseapps.com'
nginx['listen_port'] = 80
nginx['listen_https'] = false
nginx['proxy_set_headers'] = {
    "X-Forwarded-Proto" => "https",
    "X-Forwarded-Ssl" => "on",
    "Host" => "gitlab.mydomain.de",
    "X-Real-IP" => "$$remote_addr",
    "X-Forwarded-For" => "$$proxy_add_x_forwarded_for",
    "Upgrade" => "$$http_upgrade",
    "Connection" => "$$connection_upgrade"
}
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "email-smtp.us-east-1.amazonaws.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = ""
gitlab_rails['smtp_password'] = ""
gitlab_rails['smtp_domain'] = ""
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_ssl'] = true
gitlab_rails['smtp_force_ssl'] = true
```

Copy `gitlab.rb` and `gitlab-compose.yaml` to your server:

```bash
scp active/container_gitlab/gitlab-compose.yaml gitlab:
scp active/container_gitlab/secrets/gitlab.rb gitlab:/srv/gitlab
```

Then docker compose up:

```bash
docker compose -f gitlab-compose.yaml up -d
```

The initial username is root and the password will be at `/srv/gitlab/config/initial_root_password`.
