2020-09-30 05:10:11 -04:00
---
2022-05-31 11:09:02 -04:00
stage: Data Stores
2020-09-30 05:10:11 -04:00
group: Database
2020-11-26 01:09:20 -05:00
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
2020-09-30 05:10:11 -04:00
---
2021-01-28 01:08:59 -05:00
# Standalone PostgreSQL using Omnibus GitLab **(FREE SELF)**
2020-06-11 05:08:16 -04:00
If you wish to have your database service hosted separately from your GitLab
2020-09-30 05:10:11 -04:00
application servers, you can do this using the PostgreSQL binaries packaged
2020-06-11 05:08:16 -04:00
together with Omnibus GitLab. This is recommended as part of our
[reference architecture for up to 2,000 users ](../reference_architectures/2k_users.md ).
## Setting it up
2020-09-30 05:10:11 -04:00
1. SSH in to the PostgreSQL server.
1. [Download and install ](https://about.gitlab.com/install/ ) the Omnibus GitLab
package you want using *steps 1 and 2* from the GitLab downloads page.
2020-06-11 05:08:16 -04:00
- Do not complete any other steps on the download page.
2021-06-03 20:10:03 -04:00
1. Generate a password hash for PostgreSQL. This assumes you are using the default
username of `gitlab` (recommended). The command requests a password
2020-06-11 05:08:16 -04:00
and confirmation. Use the value that is output by this command in the next
step as the value of `POSTGRESQL_PASSWORD_HASH` .
```shell
sudo gitlab-ctl pg-password-md5 gitlab
```
1. Edit `/etc/gitlab/gitlab.rb` and add the contents below, updating placeholder
values appropriately.
- `POSTGRESQL_PASSWORD_HASH` - The value output from the previous step
- `APPLICATION_SERVER_IP_BLOCKS` - A space delimited list of IP subnets or IP
2021-06-03 20:10:03 -04:00
addresses of the GitLab application servers that connect to the
2020-06-11 05:08:16 -04:00
database. Example: `%w(123.123.123.123/32 123.123.123.234/32)`
```ruby
# Disable all components except PostgreSQL
2021-06-16 02:10:18 -04:00
roles(['postgres_role'])
2020-06-11 05:08:16 -04:00
prometheus['enable'] = false
alertmanager['enable'] = false
pgbouncer_exporter['enable'] = false
redis_exporter['enable'] = false
gitlab_exporter['enable'] = false
postgresql['listen_address'] = '0.0.0.0'
postgresql['port'] = 5432
# Replace POSTGRESQL_PASSWORD_HASH with a generated md5 value
postgresql['sql_user_password'] = 'POSTGRESQL_PASSWORD_HASH'
# Replace XXX.XXX.XXX.XXX/YY with Network Address
# ????
postgresql['trust_auth_cidr_addresses'] = %w(APPLICATION_SERVER_IP_BLOCKS)
# Disable automatic database migrations
gitlab_rails['auto_migrate'] = false
```
1. [Reconfigure GitLab ](../restart_gitlab.md#omnibus-gitlab-reconfigure ) for the changes to take effect.
1. Note the PostgreSQL node's IP address or hostname, port, and
2021-06-03 20:10:03 -04:00
plain text password. These are necessary when configuring the GitLab
2020-06-11 05:08:16 -04:00
application servers later.
1. [Enable monitoring ](replication_and_failover.md#enable-monitoring )
Advanced configuration options are supported and can be added if
needed.