My story so far...I have hit a wall with ORS configuration

So, I am developing a new type of grocery delivery service which heavily uses mapbox on flutter and geoJSON routes.

I started off with getting a token from api.openrouteservice.org but quickly ran into rate limits and quotas, so I started exploring hosting it on a cloud provider. The provider of my choice is render.com which provides cheap docker hosting natively.

Now, the wall I have hit is configuration related. Since I got used to the api.openrouteservice.org, my code and everything is wired to those configurations and I am unable to achieve the same in the self-hosted environment.

I am running into all sorts of errors, 20XX series of errors. Sometimes, GET method is not allowed. Sometimes, profile is not available and graphs are incorrect.

Can someone give me a configuration which is actually used by the public api? I will set my own .pbf file for the region I am in.

Thank you so much in advance.

Hey,

it is a bit difficult to help here, since there seem to be a few different issues.

First,

are related to an incorrect request. Find an explanation of 20XX error codes in our backend docs. You might be able to fix some of them (e.g. 2004) by increasing the corresponding limit in your config, but the others will probably be request-dependent.

Second,

is probably an issue with your setup, not with the API. Note, that when setting up openrouteservice, only the services mentioned in our README are provided, and something like the geocoder is not.

Third,

is a configuration issue - or the profile hasn’t finished building yet.
Check the /ors/v2/health-page to see whether ors is ready, and have a look at the ors.engine.profiles-section in our backend docs on how to configure profiles.

Last, what do you mean by

?

Can you give short examples of the requests you are trying and the errors you are receiving?

For reference, this is the config used for our public car instance:

ors-config-car.yml
logging:
  file:
    name: /home/ors/logs/ors.log
  level:
    org:
      heigit: WARN
    root: WARN
server:
  tomcat:
    keep-alive-timeout: 30000
ors:
  endpoints:
    isochrones:
      allow_compute_area: true
      attribution: openrouteservice.org | OpenStreetMap contributors
      maximum_intervals: 10
      maximum_locations: 5
      maximum_range_distance:
      - profiles: driving-car
        value: 120000
      maximum_range_time:
      - profiles: driving-car
        value: 3600
    matrix:
      attribution: openrouteservice.org | OpenStreetMap contributors
      enabled: true
      maximum_routes: 3500
      maximum_routes_flexible: 25
      maximum_visited_nodes: 1000000
    routing:
      attribution: openrouteservice.org | OpenStreetMap contributors
      gpx_author: openrouteservice
      gpx_base_url: https://openrouteservice.org/
      gpx_content_licence: LGPL 3.0
      gpx_description: This is a directions instructions file as GPX, generated from
        openrouteservice
      gpx_name: openrouteservice directions
      gpx_support_mail: support@openrouteservice.heigit.org
      maximum_alternative_routes: 3
      maximum_avoid_polygon_area: 200000000
      maximum_avoid_polygon_extent: 20000
  engine:
    elevation:
      cache_clear: false
      cache_path: /home/ors/elevation_cache
      preprocessed: true
      provider: multi
    init_threads: 1
    preparation_mode: false
    profiles:
      driving-car:
        profile: driving-car
        enabled: true
        elevation: true
        elevation_smoothing: true
        encoder_flags_size: 8
        instructions: true
        maximum_distance: 6000000
        maximum_distance_alternative_routes: 100000
        maximum_distance_avoid_areas: 150000
        maximum_distance_dynamic_weights: 6000000
        maximum_distance_round_trip_routes: 100000
        maximum_snapping_radius: 350
        maximum_waypoints: 70
        encoder_options:
          block_fords: false
          turn_costs: true
          use_acceleration: true
        execution:
          methods:
            core:
              active_landmarks: 6
        ext_storages:
          Borders:
            boundaries: /home/ors/extras/borders/borders.geojson.tar.gz
            ids: /home/ors/extras/borders/ids_iso.csv
            openborders: /home/ors/extras/borders/openborders.csv
          RoadAccessRestrictions:
            use_for_warnings: true
          Tollways: {}
          WayCategory: {}
          WaySurfaceType: {}
        preparation:
          methods:
            ch:
              enabled: true
              threads: 8
              weightings: fastest
            core:
              enabled: true
              landmarks: 32
              lmsets: highways;allow_all
              threads: 8
              weightings: fastest,shortest|edge_based=false
          min_network_size: 200
    source_file: /home/ors/files/planet-latest-filtered.osm.pbf
  messages:
  - active: true
    condition:
    - request_service: routing
    - request_preference: fastest
    text: Preference 'fastest' has been deprecated, using 'recommended'.

Note, that especially the paths given are related to our setup and will probably have to be changed in yours.
I did redact the statistics_provider-section, but this is only used for population on isochrones.

Best regards