From 36023fc5e4945f49d37a9297982780c381af17b4 Mon Sep 17 00:00:00 2001 From: Jeff Moe Date: Sat, 14 Sep 2024 11:34:23 -0600 Subject: [PATCH] nominatim postgres, apache --- .../locale/en/LC_MESSAGES/maps-libre-is.po | 46 +++++++- docs/_source/maps-libre-is.rst | 100 ++++++++++++++++++ 2 files changed, 143 insertions(+), 3 deletions(-) diff --git a/docs/_source/locale/en/LC_MESSAGES/maps-libre-is.po b/docs/_source/locale/en/LC_MESSAGES/maps-libre-is.po index 647e325..2f3d441 100644 --- a/docs/_source/locale/en/LC_MESSAGES/maps-libre-is.po +++ b/docs/_source/locale/en/LC_MESSAGES/maps-libre-is.po @@ -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 \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 "``_" +msgstr "" diff --git a/docs/_source/maps-libre-is.rst b/docs/_source/maps-libre-is.rst index aba0905..c451e0f 100644 --- a/docs/_source/maps-libre-is.rst +++ b/docs/_source/maps-libre-is.rst @@ -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: + + ``_ + +