5 # Copyright:: 2023, OpenStreetMap Foundation
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
11 # https://www.apache.org/licenses/LICENSE-2.0
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
20 include_recipe "imagery"
21 include_recipe "podman"
23 directory "/store/imagery" do
30 # FIXME: until upstream supports arm64 images: https://github.com/developmentseed/titiler/pull/740
31 container_image = if arm?
32 "ghcr.io/firefishy/titiler:latest"
34 "ghcr.io/developmentseed/titiler:latest"
37 podman_service "titiler" do
38 description "Container service for titiler"
40 volume :"/store/imagery" => "/store/imagery",
41 :"/srv/imagery/sockets" => "/sockets"
42 environment :BIND => "unix:/sockets/titiler.sock",
43 :WORKERS_PER_CORE => 1,
44 :GDAL_CACHEMAX => 200,
45 :GDAL_BAND_BLOCK_CACHE => "HASHSET",
46 :GDAL_DISABLE_READDIR_ON_OPEN => "EMPTY_DIR",
47 :GDAL_INGESTED_BYTES_AT_OPEN => 32768,
48 :GDAL_HTTP_MERGE_CONSECUTIVE_RANGES => "YES",
49 :GDAL_HTTP_MULTIPLEX => "YES",
50 :GDAL_HTTP_VERSION => 2,
52 :VSI_CACHE_SIZE => 5000000,
53 :TITILER_API_ROOT_PATH => "/api/v1/titiler",
54 :FORWARDED_ALLOW_IPS => "*" # https://docs.gunicorn.org/en/latest/settings.html#forwarded-allow-ips
57 systemd_service "titiler-restart" do
60 exec_start "/bin/systemctl try-restart titiler.service"
62 restrict_address_families "AF_UNIX"
65 systemd_timer "titiler-restart" do
67 on_unit_inactive_sec "30m"
68 randomized_delay_sec "20m"
71 service "titiler-restart.timer" do
72 action [:enable, :start]
75 directory "/var/cache/nginx-cache" do
81 ssl_certificate "tiler.openstreetmap.org" do
82 domains "tiler.openstreetmap.org"
83 notifies :reload, "service[nginx]"
86 nginx_site "tiler.openstreetmap.org" do
87 template "nginx_titiler.conf.erb"
88 variables :aliases => ["tiler.osm.org"]