kobo instapaper override in komga nginx proxy

Note

kobo ereaders overwrite their main configuration file on every sync.

however, ebook libraries like komga or readeckobo need to preserve changes to the kobo configuration file. as a result, these libraries require proxying requests for /kobo/.+/v1/initialization.

if you want to use both komga and readeckobo, you'll need the following snippet to preserve both overrides (one for your library and one for instapaper).

this snippet demonstrates how to setup a komga nginx proxy to preserve the instapaper rewrite.

Files

komga-kobo-instapaper.nginx.conf
nginx
location / {
  proxy_pass http://komga-upstream;

  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Scheme $scheme;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_read_timeout 90s;
  proxy_buffer_size 128k;
  proxy_buffers 4 256k;
  proxy_busy_buffers_size 256k;
}

location ~* "^/kobo/(.+)/v1/initialization$" {
  proxy_pass http://komga-upstream;

  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Scheme $scheme;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_read_timeout 90s;
  proxy_buffer_size 128k;
  proxy_buffers 4 256k;
  proxy_busy_buffers_size 256k;

  sub_filter https://www.instapaper.com "https://sub.example.com/instapaper-proxy/instapaper";
  sub_filter_types application/json;
}