First bit of documentation for PostgreSQL added.
This commit is contained in:
parent
da354f1efb
commit
387c358656
|
@ -3,8 +3,74 @@ gitea: none
|
||||||
include_toc: true
|
include_toc: true
|
||||||
---
|
---
|
||||||
|
|
||||||
# PostgreSQL database
|
# Installing PostgreSQL and creating database and user
|
||||||
|
|
||||||
|
Installing [PostgreSQL](https://www.postgresql.org/) on Debian is very easy:
|
||||||
|
|
||||||
|
```
|
||||||
|
apt install postgresql python3-psycopg
|
||||||
|
|
||||||
|
sudo -u postgres bash
|
||||||
|
|
||||||
|
createuser --pwprompt synapse
|
||||||
|
createdb --encoding=UTF8 --locale=C --template=template0 --owner=synapse synapse
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
After this, PostgreSQL is installed, the database `synapse` exists and so does
|
||||||
|
the database user `synapse`. Make sure you choose a strong password.
|
||||||
|
|
||||||
|
|
||||||
|
# Configuring access
|
||||||
|
|
||||||
|
After a clean installation, PostgreSQL will listen on localhost, both IPv4 and
|
||||||
|
IPv6 (if available). In many cases, this is exactly what you want.
|
||||||
|
|
||||||
|
## Network
|
||||||
|
|
||||||
|
PostgreSQL will listen on localhost, this is configured in
|
||||||
|
`/etc/postgresql/<version>/main/postgresql.conf`:
|
||||||
|
|
||||||
|
```
|
||||||
|
listen_addresses = 'localhost'
|
||||||
|
```
|
||||||
|
|
||||||
|
This line is usually commented out, but as it is the default, it's really
|
||||||
|
there.
|
||||||
|
|
||||||
|
|
||||||
|
## UNIX socket
|
||||||
|
|
||||||
|
If you want PostgreSQL to listen only to a local UNIX socket (more efficient
|
||||||
|
than network and -depending on the configuration of the rest of you system-
|
||||||
|
easier to protect), make the aforementioned option explicitly empty and
|
||||||
|
uncomment it:
|
||||||
|
|
||||||
|
```
|
||||||
|
listen_addresses =
|
||||||
|
```
|
||||||
|
|
||||||
|
Check these options to make sure the socket is placed in the right spot and
|
||||||
|
given the correct permissions:
|
||||||
|
|
||||||
|
```
|
||||||
|
unix_socket_directories = '/var/run/postgresql'
|
||||||
|
#unix_socket_group = ''
|
||||||
|
#unix_socket_permissions = 0777
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Permissions
|
||||||
|
|
||||||
|
Add permission for the user to connect to the database from localhost (if
|
||||||
|
PostgreSQL listens on localhost), or the socket (if you use that). This is
|
||||||
|
configured in `/etc/postgresql/<version>/main/pg_hba.conf`:
|
||||||
|
|
||||||
|
```
|
||||||
|
local synapse synapse password # for use with UNIX sockets
|
||||||
|
host synapse synapse localhost md5 # for use with localhost network
|
||||||
|
```
|
||||||
|
|
||||||
|
Make sure you add these lines under the one that gives access to the postgres
|
||||||
|
superuser, the first line.
|
||||||
|
|
||||||
|
|
Reference in a new issue