34 lines
978 B
Django/Jinja
34 lines
978 B
Django/Jinja
[Unit]
|
|
Description=Homelab PostgreSQL {{ pg_instance }}{{ ' through Patroni' if pg_instance == 'prod' else '' }}
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
RequiresMountsFor={{ pg_parent_dir }}
|
|
[Service]
|
|
User={{ pg_profile.user }}
|
|
Group={{ pg_profile.user }}
|
|
UMask=0077
|
|
RuntimeDirectory=homelab-postgresql-{{ pg_instance }}
|
|
RuntimeDirectoryMode=0700
|
|
{% if pg_instance == 'prod' %}
|
|
Type=simple
|
|
ExecStart={{ pg_patroni_bin }} {{ pg_config_dir }}/patroni.yml
|
|
KillMode=process
|
|
{% else %}
|
|
Type=simple
|
|
ExecStart={{ pg_bin_dir }}/postgres -D {{ pg_data_dir }} -c config_file={{ pg_config_dir }}/postgresql.conf
|
|
KillSignal=SIGINT
|
|
{% endif %}
|
|
Restart=on-failure
|
|
RestartSec=5
|
|
TimeoutStopSec=120
|
|
MemoryHigh={{ pg_profile.memory_high }}
|
|
MemoryMax={{ pg_profile.memory_max }}
|
|
OOMPolicy=stop
|
|
NoNewPrivileges=true
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
PrivateTmp=true
|
|
ReadWritePaths={{ pg_parent_dir }} {{ pg_config_dir }} {{ pg_socket_dir }}
|
|
[Install]
|
|
WantedBy=multi-user.target
|