source bin/activate gunicorn --bind 0.0.0.0:5551 manage:app .................. 20jul23 had to stop traccar since port 5001 in use when oes is running on 5001. Changed oes to 5551 sudo systemctl stop traccar.service .................... clone cd ./openelevationservice/server/ops_settings.sample.yml and name it ops_settings.yml ......... --- attribution: "service by https://openrouteservice.org | data by http://srtm.csi.cgiar.org" coord_precision: 1e-6 maximum_nodes: 2000 srtm_parameters: user: ertert password: ertert provider_parameters: table_name: oes_cgiar db_name: oes user_name: ertert password: ertert host: localhost port: 5432 ............... python3.6 -m venv . source bin/activate echo "export FLASK_APP=manage" >> bin/activate to prevent gevent error: python3 -m pip install --upgrade pip pip install -r requirements.txt --default-timeout=1000 restart virtual env (Error: Could not start Flask application) source bin/activate create database in pgAdmin4 to tiles folder or as belo install postgis in database sudo -u postgres -i createdb -p 5434 -E UTF8 xxxx psql -p 5434 \c oes CREATE EXTENSION postgis; ALTER TABLE geometry_columns OWNER TO ertert; ALTER TABLE spatial_ref_sys OWNER TO ertert; To check: SELECT PostGIS_full_version(); POSTGIS="2.4.4 r16526" PGSQL="100" GEOS="3.8.0-CAPI-1.13.1 " PROJ="Rel. 4.9.3, 15 August 2016" GDAL="GDAL 2.4.2, released 2019/06/28" LIBXML="2.9.4" LIBJSON="0.12.1" LIBPROTOBUF="1.2.1" RASTER QGIS - reprojct to 4325 - transform SwissTopo form Float32 to Int16 - use plugin flask create download srtm geotiff to tiles folder http://srtm.csi.cgiar.org\q Menu -> SRTM data click on tiles -> Search -> download \q flas create copied raster2pgsql.exe from U4 to /usr/bin/raster2pgsql in U3 flask importdata had to copy stm tif to tests/tile since pring of filestream.py gave (WHY?) raster2pgsql -s 4326 -a -C -M -P -t 50x50 /home/ertert/oes/openelevationservice/tests/tile/*.tif oes_cgiar_test | psql -q -h localhost -p 5434 -U ertert -d oes flask run SSL use adhoc: pip install pyopenssl https://blog.miguelgrinberg.com/post/running-your-flask-application-over-https openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365 flask run --cert=adhoc flask run --cert=cert.pem --key=key.pem curl -XGET http://localhost:5000/elevation/point?geometry=6.0,46.0 gives "TypeError; the JSON object must by str ....." WORKS (use -k flag to allow insecure connections) curl -XPOST http://localhost:5000/elevation/point -H 'Content-Type: application/json' -d '{"format_in": "geojson","format_out": "geojson","geometry": {"coordinates": [6.0001, 46.0001],"type": "Point"}}' WORKS curl -XPOST http://0.0.0.0:5000/elevation/line -H 'Content-Type: application/json' -d '{"format_in": "polyline","format_out": "polyline","geometry": [[6.0001, 46.0001],[6.1001, 46.1001]]}' curl -XPOST https://certbot.peterboswell.net/elevation/line -H 'Content-Type: application/json' -d '{"format_in": "polyline","format_out": "polyline","geometry": [[6.0001, 46.0001],[6.1001, 46.1001]]}' http://127.0.0.1:5000/elevation/point?api=&geometry=6.000%2C46.000&format_out=point&dataset=srtm CERTBOT See https://blog.miguelgrinberg.com/post/running-your-flask-application-over-https WORKS in sites-available/000-default-conf ServerName certbot.peterboswell.net ServerAlias certbot.peterboswell.net DocumentRoot /var/www/le Satisfy Any Allow from all Require all granted sudo certbot certonly --webroot -w /var/www/le -d certbot.peterboswell.net Files can be seen: sudo ls /etc/letsencrypt/live/certbot.peterboswell.net flask run --cert=/etc/letsencrypt/live/certbot.peterboswell.net/cert.pem --key=/etc/letsencrypt/live/certbot.peterboswell.net/privkey.pem flask run --cert=/etc/letsencrypt/live/certbot.peterboswell.net/fullchain.pem --key=/etc/letsencrypt/live/certbot.peterboswell.net/privkey.pem sudo cp /etc/letsencrypt/live/certbot.peterboswell.net/fullchain.pem /home/ertert/oes/fullchain.pem sudo cp /etc/letsencrypt/live/certbot.peterboswell.net/privkey.pem /home/ertert/oes/privkey.pem sudo nano /etc/letsencrypt/live/certbot.peterboswell.net/cert.pem sudo cp /etc/letsencrypt/live/certbot.peterboswell.net/cert.pem /home/ertert/oes/cert.pem sudo cp /etc/letsencrypt/live/certbot.peterboswell.net/chain.pem /home/ertert/oes/chain.pem 6Nov22 sudo cp /etc/letsencrypt/live/edit.opennbs.net/fullchain.pem /home/ertert/oes/fullchain.pem sudo cp /etc/letsencrypt/live/edit.opennbs.net/privkey.pem /home/ertert/oes/privkey.pem sudo cp /etc/letsencrypt/live/edit.opennbs.net/cert.pem /home/ertert/oes/cert.pem sudo cp /etc/letsencrypt/live/edit.opennbs.net/chain.pem /home/ertert/oes/chain.pem sudo chown ertert:ertert privkey.pem sudo chown ertert:ertert cert.pem sudo chown ertert:ertert cert.pem sudo chown ertert:ertert fullchain.pem flask run --cert=./cert.pem --key=./privkey.pem gunicorn --bind 0.0.0.0:5001 manage:app sudo fuser -k 5001/tcp