nominatim postgres, apache

This commit is contained in:
Jeff Moe 2024-09-14 11:34:23 -06:00
parent a4e346fc2d
commit 36023fc5e4
2 changed files with 143 additions and 3 deletions

View file

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Libre Developers Documentation 0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-14 11:04-0600\n"
"POT-Creation-Date: 2024-09-14 11:33-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@ -124,10 +124,50 @@ msgstr ""
msgid "Postgres is needed by Nominatim."
msgstr ""
#: ../../../_source/maps-libre-is.rst:139
#: ../../../_source/maps-libre-is.rst:137
msgid "Edit /etc/postgresql/15/main/postgresql.conf thusly:"
msgstr ""
#: ../../../_source/maps-libre-is.rst:155
msgid "Nominatim Install"
msgstr ""
#: ../../../_source/maps-libre-is.rst:140
#: ../../../_source/maps-libre-is.rst:156
msgid "As user nominatim."
msgstr ""
#: ../../../_source/maps-libre-is.rst:169
msgid "Create systemd files:"
msgstr ""
#: ../../../_source/maps-libre-is.rst:185
msgid "Another systemd file:"
msgstr ""
#: ../../../_source/maps-libre-is.rst:212
msgid "Start Nominatim systemd:"
msgstr ""
#: ../../../_source/maps-libre-is.rst:222
msgid "Nominatim Apache"
msgstr ""
#: ../../../_source/maps-libre-is.rst:223
msgid "Thusly."
msgstr ""
#: ../../../_source/maps-libre-is.rst:225
msgid "As user nominatim:"
msgstr ""
#: ../../../_source/maps-libre-is.rst:231
msgid "As sudo user:"
msgstr ""
#: ../../../_source/maps-libre-is.rst:245
msgid "Then connect to this to test:"
msgstr ""
#: ../../../_source/maps-libre-is.rst:247
msgid "`<https://maps.libre.is/status>`_"
msgstr ""

View file

@ -134,6 +134,22 @@ Postgres is needed by Nominatim.
sudo -u postgres createuser -s $USERNAME
sudo -u postgres createuser www-data
Edit /etc/postgresql/15/main/postgresql.conf thusly:
.. code-block:: postgres
shared_buffers = 2GB
maintenance_work_mem = (10GB)
autovacuum_work_mem = 2GB
work_mem = (50MB)
synchronous_commit = off
max_wal_size = 1GB
checkpoint_timeout = 60min
checkpoint_completion_target = 0.9
random_page_cost = 1.0
wal_level = minimal
max_wal_senders = 0
Nominatim Install
=================
@ -147,3 +163,87 @@ As user nominatim.
virtualenv $USERHOME/nominatim-venv
$USERHOME/nominatim-venv/bin/pip install nominatim-db
. $USERHOME/nominatim-venv/bin/activate
$USERHOME/nominatim-venv/bin/pip install psycopg[binary] falcon uvicorn gunicorn
$USERHOME/nominatim-venv/bin/pip install nominatim-api
Create systemd files:
.. code-block::
sudo tee /etc/systemd/system/nominatim.socket << EOFSOCKETSYSTEMD
[Unit]
Description=Gunicorn socket for Nominatim
[Socket]
ListenStream=/run/nominatim.sock
SocketUser=www-data
[Install]
WantedBy=multi-user.target
EOFSOCKETSYSTEMD
Another systemd file:
.. code-block::
sudo tee /etc/systemd/system/nominatim.service << EOFNOMINATIMSYSTEMD
[Unit]
Description=Nominatim running as a gunicorn application
After=network.target
Requires=nominatim.socket
[Service]
Type=simple
User=www-data
Group=www-data
WorkingDirectory=$USERHOME/nominatim-project
ExecStart=$USERHOME/nominatim-venv/bin/gunicorn -b unix:/run/nominatim.sock -w 4 -k uvicorn.workers.UvicornWorker nominatim_api.server.falcon.server:run_wsgi
ExecReload=/bin/kill -s HUP \$MAINPID
StandardOutput=append:/var/log/gunicorn-nominatim.log
StandardError=inherit
PrivateTmp=true
TimeoutStopSec=5
KillMode=mixed
[Install]
WantedBy=multi-user.target
EOFNOMINATIMSYSTEMD
Start Nominatim systemd:
.. code-block::
sudo systemctl daemon-reload
sudo systemctl enable nominatim.socket
sudo systemctl start nominatim.socket
sudo systemctl enable nominatim.service
Nominatim Apache
================
Thusly.
As user nominatim:
.. code-block::
mkdir $USERHOME/nominatim-project
As sudo user:
.. code-block::
sudo a2enmod proxy_http
sudo tee /etc/apache2/conf-available/nominatim.conf << EOFAPACHECONF
#ProxyPass /nominatim "unix:/run/nominatim.sock|http://localhost/"
ProxyPass / "unix:/run/nominatim.sock|http://localhost/"
EOFAPACHECONF
sudo a2enconf nominatim
sudo systemctl restart apache2
Then connect to this to test:
`<https://maps.libre.is/status>`_