2021-01-03 14:25:43 +05:30
---
2022-07-23 23:45:48 +05:30
stage: Data Stores
2021-01-03 14:25:43 +05:30
group: Database
2022-11-25 23:54:43 +05:30
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
2021-01-03 14:25:43 +05:30
---
2021-03-11 19:13:27 +05:30
# Standalone PostgreSQL using Omnibus GitLab **(FREE SELF)**
2020-06-23 00:09:42 +05:30
If you wish to have your database service hosted separately from your GitLab
2021-01-03 14:25:43 +05:30
application servers, you can do this using the PostgreSQL binaries packaged
2020-06-23 00:09:42 +05:30
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
2021-01-03 14:25:43 +05:30
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-23 00:09:42 +05:30
- Do not complete any other steps on the download page.
2021-09-04 01:27:46 +05:30
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-23 00:09:42 +05:30
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-09-04 01:27:46 +05:30
addresses of the GitLab application servers that connect to the
2020-06-23 00:09:42 +05:30
database. Example: `%w(123.123.123.123/32 123.123.123.234/32)`
```ruby
# Disable all components except PostgreSQL
2021-09-04 01:27:46 +05:30
roles(['postgres_role'])
2020-06-23 00:09:42 +05:30
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-09-04 01:27:46 +05:30
plain text password. These are necessary when configuring the GitLab
2020-06-23 00:09:42 +05:30
application servers later.
1. [Enable monitoring ](replication_and_failover.md#enable-monitoring )
Advanced configuration options are supported and can be added if
needed.