Back to Templates
NTFY logo

NTFY

vlatest

ntfy lets you send push notifications to your phone or desktop via scripts from any computer, using simple HTTP PUT or POST requests.

Deploy on Dokploy

Deploy NTFY on Dokploy

  1. Install Dokploy on your server if you haven't already.
  2. In your Dokploy panel, open a project and click Create Service → Template.
  3. Search for NTFY and click Create — Dokploy configures domains, environment variables, and volumes for you.

Alternatively, create a Compose service, go to Advanced → Import from Base64, and paste this payload:

base64
ewogICJjb21wb3NlIjogInNlcnZpY2VzOlxuICBudGZ5OlxuICAgIGltYWdlOiBiaW53aWVkZXJoaWVyL250ZnlcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGNvbW1hbmQ6XG4gICAgICAtIHNlcnZlXG4gICAgcG9ydHM6XG4gICAgICAtIFwiJHtIVFRQX1BPUlR9XCJcbiAgICB2b2x1bWVzOlxuICAgICAgLSBudGZ5LWRhdGE6L3Zhci9saWIvbnRmeVxuICAgICAgLSBudGZ5LWNhY2hlOi92YXIvY2FjaGUvbnRmeVxuICAgICAgLSAuLi9maWxlcy9zZXJ2ZXIueW1sOi9ldGMvbnRmeS9zZXJ2ZXIueW1sOnJvXG4gICAgICAtIC4uL2ZpbGVzL3RlbXBsYXRlczovZXRjL250ZnkvdGVtcGxhdGVzOnJvXG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OiBbXCJDTUQtU0hFTExcIiwgXCJ3Z2V0IC1xIC0tdHJpZXM9MSBodHRwOi8vbG9jYWxob3N0OiR7SFRUUF9QT1JUfS92MS9oZWFsdGggLU8gLSB8IGdyZXAgLUVvICdcXFwiaGVhbHRoeVxcXCJcXFxccyo6XFxcXHMqdHJ1ZScgfHwgZXhpdCAxXCJdXG4gICAgICBpbnRlcnZhbDogNjBzXG4gICAgICB0aW1lb3V0OiAxMHNcbiAgICAgIHJldHJpZXM6IDNcbiAgICAgIHN0YXJ0X3BlcmlvZDogNDBzXG5cbnZvbHVtZXM6XG4gIG50ZnktZGF0YTpcbiAgbnRmeS1jYWNoZToiLAogICJjb25maWciOiAiW3ZhcmlhYmxlc11cbm50ZnlfZG9tYWluID0gXCIke2RvbWFpbn1cIlxubnRmeV9odHRwX3BvcnQgPSBcIjgwXCJcblxuW1tjb25maWcuZG9tYWluc11dXG5zZXJ2aWNlTmFtZSA9IFwibnRmeVwiXG5ob3N0ID0gXCIke250ZnlfZG9tYWlufVwiXG5wb3J0ID0gODBcbnBhdGggPSBcIi9cIlxuXG5bY29uZmlnLmVudl1cbkhUVFBfUE9SVCA9IFwiJHtudGZ5X2h0dHBfcG9ydH1cIlxuXG4jIFRoaXMgaXMgYW4gZXhhbXBsZSwgeW91J2xsIG5lZWQgdG8gYWRkIG1hbnVhbGx5IGFueSB0ZW1wbGF0ZXMgeW91IHdhbnQgdG8gdXNlXG4jwqBTaG91bGQgYmUgcHJlc2VydmVkIGFzIHdlIHVzZSB0aGUgLi4vZmlsZXMvdGVtcGxhdGVzIHNvbHV0aW9uXG5bW2NvbmZpZy5tb3VudHNdXVxuZmlsZVBhdGggPSBcIi90ZW1wbGF0ZXMvbXlhcHAueW1sXCJcbmNvbnRlbnQgPSBcIlwiXCJcbnRpdGxlOiB8XG4gIHt7LSBpZiBlcSAuc3RhdHVzIFwiZmlyaW5nXCIgfX1cbiAgICB7ey0gaWYgZ3QgLnBlcmNlbnQgOTAuMCB9ffCfmqggQ3JpdGljYWwgYWxlcnRcbiAgICB7ey0gZWxzZSB9feKaoO+4jyBBbGVydHt7LSBlbmQgfX1cbiAge3stIGVsc2UgaWYgZXEgLnN0YXR1cyBcInJlc29sdmVkXCIgfX1cbiAg4pyFIEFsZXJ0IHJlc29sdmVkXG4gIHt7LSBlbmQgfX1cbm1lc3NhZ2U6IHxcbiAgU3RhdHVzOiB7eyAuc3RhdHVzIH19XG4gIFR5cGU6IHt7IC50eXBlIHwgdXBwZXIgfX0gKHt7IC5wZXJjZW50IH19JSlcbiAgU2VydmVyOiB7eyAuc2VydmVyIH19XG5cIlwiXCJcblxuW1tjb25maWcubW91bnRzXV1cbmZpbGVQYXRoID0gXCIvc2VydmVyLnltbFwiXG5jb250ZW50ID0gXCJcIlwiXG4jIG50Znkgc2VydmVyIGNvbmZpZyBmaWxlXG4jXG4jIFBsZWFzZSByZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBhdCBodHRwczovL250Znkuc2gvZG9jcy9jb25maWcvIGZvciBkZXRhaWxzLlxuIyBBbGwgb3B0aW9ucyBhbHNvIHN1cHBvcnQgdW5kZXJzY29yZXMgKF8pIGluc3RlYWQgb2YgZGFzaGVzICgtKSB0byBjb21wbHkgd2l0aCB0aGUgWUFNTCBzcGVjLlxuXG4jIFB1YmxpYyBmYWNpbmcgYmFzZSBVUkwgb2YgdGhlIHNlcnZpY2UgKGUuZy4gaHR0cHM6Ly9udGZ5LnNoIG9yIGh0dHBzOi8vbnRmeS5leGFtcGxlLmNvbSlcbiNcbiMgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIGZvciBhbnkgb2YgdGhlIGZvbGxvd2luZyBmZWF0dXJlczpcbiMgLSBhdHRhY2htZW50cyAodG8gcmV0dXJuIGEgZG93bmxvYWQgVVJMKVxuIyAtIGUtbWFpbCBzZW5kaW5nIChmb3IgdGhlIHRvcGljIFVSTCBpbiB0aGUgZW1haWwgZm9vdGVyKVxuIyAtIGlPUyBwdXNoIG5vdGlmaWNhdGlvbnMgZm9yIHNlbGYtaG9zdGVkIHNlcnZlcnMgKHRvIGNhbGN1bGF0ZSB0aGUgRmlyZWJhc2UgcG9sbF9yZXF1ZXN0IHRvcGljKVxuIyAtIE1hdHJpeCBQdXNoIEdhdGV3YXkgKHRvIHZhbGlkYXRlIHRoYXQgdGhlIHB1c2hrZXkgaXMgY29ycmVjdClcbiNcbmJhc2UtdXJsOiBodHRwczovLyR7bnRmeV9kb21haW59XG5cbiMgTGlzdGVuIGFkZHJlc3MgZm9yIHRoZSBIVFRQICYgSFRUUFMgd2ViIHNlcnZlci4gSWYgXCJsaXN0ZW4taHR0cHNcIiBpcyBzZXQsIHlvdSBtdXN0IGFsc29cbiMgc2V0IFwia2V5LWZpbGVcIiBhbmQgXCJjZXJ0LWZpbGVcIi4gRm9ybWF0OiBbPGlwPl06PHBvcnQ+LCBlLmcuIFwiMS4yLjMuNDo4MDgwXCIuXG4jXG4jIFRvIGxpc3RlbiBvbiBhbGwgaW50ZXJmYWNlcywgeW91IG1heSBvbWl0IHRoZSBJUCBhZGRyZXNzLCBlLmcuIFwiOjQ0M1wiLlxuIyBUbyBkaXNhYmxlIEhUVFAsIHNldCBcImxpc3Rlbi1odHRwXCIgdG8gXCItXCIuXG4jXG5saXN0ZW4taHR0cDogXCI6JHtudGZ5X2h0dHBfcG9ydH1cIlxuIyBsaXN0ZW4taHR0cHM6IFwiOjQ0M1wiXG5cbiMgTGlzdGVuIG9uIGEgVW5peCBzb2NrZXQsIGUuZy4gL3Zhci9saWIvbnRmeS9udGZ5LnNvY2tcbiMgVGhpcyBjYW4gYmUgdXNlZnVsIHRvIGF2b2lkIHBvcnQgaXNzdWVzIG9uIGxvY2FsIHN5c3RlbXMsIGFuZCB0byBzaW1wbGlmeSBwZXJtaXNzaW9ucy5cbiNcbiMgbGlzdGVuLXVuaXg6IDxzb2NrZXQtcGF0aD5cbiMgbGlzdGVuLXVuaXgtbW9kZTogPGxpbnV4IHBlcm1pc3Npb25zLCBlLmcuIDA3MDA+XG5cbiMgUGF0aCB0byB0aGUgcHJpdmF0ZSBrZXkgJiBjZXJ0IGZpbGUgZm9yIHRoZSBIVFRQUyB3ZWIgc2VydmVyLiBOb3QgdXNlZCBpZiBcImxpc3Rlbi1odHRwc1wiIGlzIG5vdCBzZXQuXG4jXG4jIGtleS1maWxlOiBcIlwiXG4jIGNlcnQtZmlsZTogXCJcIlxuXG4jIElmIHNldCwgYWxzbyBwdWJsaXNoIG1lc3NhZ2VzIHRvIGEgRmlyZWJhc2UgQ2xvdWQgTWVzc2FnaW5nIChGQ00pIHRvcGljIGZvciB5b3VyIGFwcC5cbiMgVGhpcyBpcyBvcHRpb25hbCBhbmQgb25seSByZXF1aXJlZCB0byBzYXZlIGJhdHRlcnkgd2hlbiB1c2luZyB0aGUgQW5kcm9pZCBhcHAuXG4jXG4jIGZpcmViYXNlLWtleS1maWxlOiA8ZmlsZW5hbWU+XG5cbiMgSWYgXCJjYWNoZS1maWxlXCIgaXMgc2V0LCBtZXNzYWdlcyBhcmUgY2FjaGVkIGluIGEgbG9jYWwgU1FMaXRlIGRhdGFiYXNlIGluc3RlYWQgb2Ygb25seSBpbi1tZW1vcnkuXG4jIFRoaXMgYWxsb3dzIGZvciBzZXJ2aWNlIHJlc3RhcnRzIHdpdGhvdXQgbG9zaW5nIG1lc3NhZ2VzIGluIHN1cHBvcnQgb2YgdGhlIHNpbmNlPSBwYXJhbWV0ZXIuXG4jXG4jIFRoZSBcImNhY2hlLWR1cmF0aW9uXCIgcGFyYW1ldGVyIGRlZmluZXMgdGhlIGR1cmF0aW9uIGZvciB3aGljaCBtZXNzYWdlcyB3aWxsIGJlIGJ1ZmZlcmVkXG4jIGJlZm9yZSB0aGV5IGFyZSBkZWxldGVkLiBUaGlzIGlzIHJlcXVpcmVkIHRvIHN1cHBvcnQgdGhlIFwic2luY2U9Li4uXCIgYW5kIFwicG9sbD0xXCIgcGFyYW1ldGVyLlxuIyBUbyBkaXNhYmxlIHRoZSBjYWNoZSBlbnRpcmVseSAob24tZGlzay9pbi1tZW1vcnkpLCBzZXQgXCJjYWNoZS1kdXJhdGlvblwiIHRvIDAuXG4jIFRoZSBjYWNoZSBmaWxlIGlzIGNyZWF0ZWQgYXV0b21hdGljYWxseSwgcHJvdmlkZWQgdGhhdCB0aGUgY29ycmVjdCBwZXJtaXNzaW9ucyBhcmUgc2V0LlxuI1xuIyBUaGUgXCJjYWNoZS1zdGFydHVwLXF1ZXJpZXNcIiBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byBydW4gY29tbWFuZHMgd2hlbiB0aGUgZGF0YWJhc2UgaXMgaW5pdGlhbGl6ZWQsXG4jIGUuZy4gdG8gZW5hYmxlIFdBTCBtb2RlIChzZWUgaHR0cHM6Ly9waGlyZXNreS5naXRodWIuaW8vYmxvZy8yMDIwL3NxbGl0ZS1wZXJmb3JtYW5jZS10dW5pbmcvKSkuXG4jIEV4YW1wbGU6XG4jICAgIGNhY2hlLXN0YXJ0dXAtcXVlcmllczogfFxuIyAgICAgICBwcmFnbWEgam91cm5hbF9tb2RlID0gV0FMO1xuIyAgICAgICBwcmFnbWEgc3luY2hyb25vdXMgPSBub3JtYWw7XG4jICAgICAgIHByYWdtYSB0ZW1wX3N0b3JlID0gbWVtb3J5O1xuIyAgICAgICBwcmFnbWEgYnVzeV90aW1lb3V0ID0gMTUwMDA7XG4jICAgICAgIHZhY3V1bTtcbiNcbiMgVGhlIFwiY2FjaGUtYmF0Y2gtc2l6ZVwiIGFuZCBcImNhY2hlLWJhdGNoLXRpbWVvdXRcIiBwYXJhbWV0ZXIgYWxsb3cgZW5hYmxpbmcgYXN5bmMgYmF0Y2ggd3JpdGluZ1xuIyBvZiBtZXNzYWdlcy4gSWYgc2V0LCBtZXNzYWdlcyB3aWxsIGJlIHF1ZXVlZCBhbmQgd3JpdHRlbiB0byB0aGUgZGF0YWJhc2UgaW4gYmF0Y2hlcyBvZiB0aGUgZ2l2ZW5cbiMgc2l6ZSwgb3IgYWZ0ZXIgdGhlIGdpdmVuIHRpbWVvdXQuIFRoaXMgaXMgb25seSByZXF1aXJlZCBmb3IgaGlnaCB2b2x1bWUgc2VydmVycy5cbiNcbiMgRGViaWFuL1JQTSBwYWNrYWdlIHVzZXJzOlxuIyAgIFVzZSAvdmFyL2NhY2hlL250ZnkvY2FjaGUuZGIgYXMgY2FjaGUgZmlsZSB0byBhdm9pZCBwZXJtaXNzaW9uIGlzc3Vlcy4gVGhlIHBhY2thZ2VcbiMgICBjcmVhdGVzIHRoaXMgZm9sZGVyIGZvciB5b3UuXG4jXG4jIENoZWNrIHlvdXIgcGVybWlzc2lvbnM6XG4jICAgSWYgeW91IGFyZSBydW5uaW5nIG50Znkgd2l0aCBzeXN0ZW1kLCBtYWtlIHN1cmUgdGhpcyBjYWNoZSBmaWxlIGlzIG93bmVkIGJ5IHRoZVxuIyAgIG50ZnkgdXNlciBhbmQgZ3JvdXAgYnkgcnVubmluZzogY2hvd24gbnRmeS5udGZ5IDxmaWxlbmFtZT4uXG4jXG5jYWNoZS1maWxlOiAvdmFyL2NhY2hlL250ZnkvY2FjaGUuZGJcbmNhY2hlLWR1cmF0aW9uOiBcIjEyaFwiXG4jIGNhY2hlLXN0YXJ0dXAtcXVlcmllczpcbiMgY2FjaGUtYmF0Y2gtc2l6ZTogMFxuIyBjYWNoZS1iYXRjaC10aW1lb3V0OiBcIjBtc1wiXG5cbiMgSWYgc2V0LCBhY2Nlc3MgdG8gdGhlIG50Znkgc2VydmVyIGFuZCBBUEkgY2FuIGJlIGNvbnRyb2xsZWQgb24gYSBncmFudWxhciBsZXZlbCB1c2luZ1xuIyB0aGUgJ250ZnkgdXNlcicgYW5kICdudGZ5IGFjY2VzcycgY29tbWFuZHMuIFNlZSB0aGUgLS1oZWxwIHBhZ2VzIGZvciBkZXRhaWxzLCBvciBjaGVjayB0aGUgZG9jcy5cbiNcbiMgLSBhdXRoLWZpbGUgaXMgdGhlIFNRTGl0ZSB1c2VyL2FjY2VzcyBkYXRhYmFzZTsgaXQgaXMgY3JlYXRlZCBhdXRvbWF0aWNhbGx5IGlmIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdFxuIyAtIGF1dGgtZGVmYXVsdC1hY2Nlc3MgZGVmaW5lcyB0aGUgZGVmYXVsdC9mYWxsYmFjayBhY2Nlc3MgaWYgbm8gYWNjZXNzIGNvbnRyb2wgZW50cnkgaXMgZm91bmQ7IGl0IGNhbiBiZVxuIyAgIHNldCB0byBcInJlYWQtd3JpdGVcIiAoZGVmYXVsdCksIFwicmVhZC1vbmx5XCIsIFwid3JpdGUtb25seVwiIG9yIFwiZGVueS1hbGxcIi5cbiMgLSBhdXRoLXN0YXJ0dXAtcXVlcmllcyBhbGxvd3MgeW91IHRvIHJ1biBjb21tYW5kcyB3aGVuIHRoZSBkYXRhYmFzZSBpcyBpbml0aWFsaXplZCwgZS5nLiB0byBlbmFibGVcbiMgICBXQUwgbW9kZS4gVGhpcyBpcyBzaW1pbGFyIHRvIGNhY2hlLXN0YXJ0dXAtcXVlcmllcy4gU2VlIGFib3ZlIGZvciBkZXRhaWxzLlxuIyAtIGF1dGgtdXNlcnMgaXMgYSBsaXN0IG9mIHVzZXJzIHRoYXQgYXJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB3aGVuIHRoZSBzZXJ2ZXIgc3RhcnRzLlxuIyAgIEVhY2ggZW50cnkgaXMgaW4gdGhlIGZvcm1hdCBcIjx1c2VybmFtZT46PHBhc3N3b3JkLWhhc2g+Ojxyb2xlPlwiLCBlLmcuIFwicGhpbDokMmEkMTAkWUxpTzhVMjFzWDF1aFphbVRMSlhIdXhnVkMwWi9HS0lTaWJyS0NMb2hQZ3RHN3lJeFNrNEM6dXNlclwiXG4jICAgVXNlICdudGZ5IHVzZXIgaGFzaCcgdG8gZ2VuZXJhdGUgdGhlIHBhc3N3b3JkIGhhc2ggZnJvbSBhIHBhc3N3b3JkLlxuIyAtIGF1dGgtYWNjZXNzIGlzIGEgbGlzdCBvZiBhY2Nlc3MgY29udHJvbCBlbnRyaWVzIHRoYXQgYXJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB3aGVuIHRoZSBzZXJ2ZXIgc3RhcnRzLlxuIyAgIEVhY2ggZW50cnkgaXMgaW4gdGhlIGZvcm1hdCBcIjx1c2VybmFtZT46PHRvcGljLXBhdHRlcm4+OjxhY2Nlc3M+XCIsIGUuZy4gXCJwaGlsOm15dG9waWM6cndcIiBvciBcInBoaWw6cGhpbC0qOnJ3XCIuXG4jIC0gYXV0aC10b2tlbnMgaXMgYSBsaXN0IG9mIGFjY2VzcyB0b2tlbnMgdGhhdCBhcmUgYXV0b21hdGljYWxseSBjcmVhdGVkIHdoZW4gdGhlIHNlcnZlciBzdGFydHMuXG4jICAgRWFjaCBlbnRyeSBpcyBpbiB0aGUgZm9ybWF0IFwiPHVzZXJuYW1lPjo8dG9rZW4+Wzo8bGFiZWw+XVwiLCBlLmcuIFwicGhpbDp0a18xMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmOk15IHRva2VuXCIuXG4jICAgVXNlICdudGZ5IHRva2VuIGdlbmVyYXRlJyB0byBnZW5lcmF0ZSBhIG5ldyBhY2Nlc3MgdG9rZW4uXG4jXG4jIERlYmlhbi9SUE0gcGFja2FnZSB1c2VyczpcbiMgICBVc2UgL3Zhci9saWIvbnRmeS91c2VyLmRiIGFzIHVzZXIgZGF0YWJhc2UgdG8gYXZvaWQgcGVybWlzc2lvbiBpc3N1ZXMuIFRoZSBwYWNrYWdlXG4jICAgY3JlYXRlcyB0aGlzIGZvbGRlciBmb3IgeW91LlxuI1xuIyBDaGVjayB5b3VyIHBlcm1pc3Npb25zOlxuIyAgIElmIHlvdSBhcmUgcnVubmluZyBudGZ5IHdpdGggc3lzdGVtZCwgbWFrZSBzdXJlIHRoaXMgdXNlciBkYXRhYmFzZSBmaWxlIGlzIG93bmVkIGJ5IHRoZVxuIyAgIG50ZnkgdXNlciBhbmQgZ3JvdXAgYnkgcnVubmluZzogY2hvd24gbnRmeS5udGZ5IDxmaWxlbmFtZT4uXG4jXG5hdXRoLWZpbGU6IC92YXIvbGliL250ZnkvdXNlci5kYlxuYXV0aC1kZWZhdWx0LWFjY2VzczogXCJyZWFkLXdyaXRlXCJcbiMgYXV0aC1zdGFydHVwLXF1ZXJpZXM6XG5hdXRoLXVzZXJzOiBbXVxuICAjIC0gXCI8dXNlcm5hbWU+OjxwYXNzd29yZC1oYXNoPjo8cm9sZT5cIlxuYXV0aC1hY2Nlc3M6IFtdXG4gICMgLSBcIjx1c2VybmFtZT46PHRvcGljLXBhdHRlcm4+OjxhY2Nlc3M+XCJcbmF1dGgtdG9rZW5zOiBbXVxuICAjIC0gXCI8dXNlcm5hbWU+Ojx0b2tlbj5bOjxsYWJlbD5dXCJcblxuIyBJZiBzZXQsIHRoZSBYLUZvcndhcmRlZC1Gb3IgaGVhZGVyIChvciB3aGF0ZXZlciBpcyBjb25maWd1cmVkIGluIHByb3h5LWZvcndhcmRlZC1oZWFkZXIpIGlzIHVzZWQgdG8gZGV0ZXJtaW5lXG4jIHRoZSB2aXNpdG9yIElQIGFkZHJlc3MgaW5zdGVhZCBvZiB0aGUgcmVtb3RlIGFkZHJlc3Mgb2YgdGhlIGNvbm5lY3Rpb24uXG4jXG4jIFdBUk5JTkc6IElmIHlvdSBhcmUgYmVoaW5kIGEgcHJveHksIHlvdSBtdXN0IHNldCB0aGlzLCBvdGhlcndpc2UgYWxsIHZpc2l0b3JzIGFyZSByYXRlLWxpbWl0ZWRcbiMgICAgICAgICAgYXMgaWYgdGhleSBhcmUgb25lLlxuI1xuIyAtIGJlaGluZC1wcm94eSBtYWtlcyBpdCBzbyB0aGF0IHRoZSByZWFsIHZpc2l0b3IgSVAgYWRkcmVzcyBpcyBleHRyYWN0ZWQgZnJvbSB0aGUgaGVhZGVyIGRlZmluZWQgaW5cbiMgICBwcm94eS1mb3J3YXJkZWQtaGVhZGVyLiBXaXRob3V0IHRoaXMsIHRoZSByZW1vdGUgYWRkcmVzcyBvZiB0aGUgaW5jb21pbmcgY29ubmVjdGlvbiBpcyB1c2VkLlxuIyAtIHByb3h5LWZvcndhcmRlZC1oZWFkZXIgaXMgdGhlIGhlYWRlciB0byB1c2UgdG8gaWRlbnRpZnkgdmlzaXRvcnMuIEl0IG1heSBiZSBhIHNpbmdsZSBJUCBhZGRyZXNzIChlLmcuIDEuMi4zLjQpLFxuIyAgIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgSVAgYWRkcmVzc2VzIChlLmcuIFwiMS4yLjMuNCwgNS42LjcuOFwiKSwgb3IgYW4gUkZDIDcyMzktc3R5bGUgaGVhZGVyIChlLmcuIFwiZm9yPTEuMi4zLjQ7Ynk9cHJveHkuZXhhbXBsZS5jb20sIGZvcj01LjYuNy44XCIpLlxuIyAtIHByb3h5LXRydXN0ZWQtaG9zdHMgaXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBJUCBhZGRyZXNzZXMsIGhvc3RuYW1lcyBvciBDSURScyB0aGF0IGFyZSByZW1vdmVkIGZyb20gdGhlIGZvcndhcmRlZCBoZWFkZXJcbiMgICB0byBkZXRlcm1pbmUgdGhlIHJlYWwgSVAgYWRkcmVzcy4gVGhpcyBpcyBvbmx5IHVzZWZ1bCBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgcHJveGllcyBpbnZvbHZlZCB0aGF0IGFkZCB0aGVtc2VsdmVzIHRvXG4jICAgdGhlIGZvcndhcmRlZCBoZWFkZXIuXG4jXG5iZWhpbmQtcHJveHk6IHRydWVcbiMgcHJveHktZm9yd2FyZGVkLWhlYWRlcjogXCJYLUZvcndhcmRlZC1Gb3JcIlxuIyBwcm94eS10cnVzdGVkLWhvc3RzOlxuXG4jIElmIGVuYWJsZWQsIGNsaWVudHMgY2FuIGF0dGFjaCBmaWxlcyB0byBub3RpZmljYXRpb25zIGFzIGF0dGFjaG1lbnRzLiBNaW5pbXVtIHNldHRpbmdzIHRvIGVuYWJsZSBhdHRhY2htZW50c1xuIyBhcmUgXCJhdHRhY2htZW50LWNhY2hlLWRpclwiIGFuZCBcImJhc2UtdXJsXCIuXG4jXG4jIC0gYXR0YWNobWVudC1jYWNoZS1kaXIgaXMgdGhlIGNhY2hlIGRpcmVjdG9yeSBmb3IgYXR0YWNoZWQgZmlsZXNcbiMgLSBhdHRhY2htZW50LXRvdGFsLXNpemUtbGltaXQgaXMgdGhlIGxpbWl0IG9mIHRoZSBvbi1kaXNrIGF0dGFjaG1lbnQgY2FjaGUgZGlyZWN0b3J5ICh0b3RhbCBzaXplKVxuIyAtIGF0dGFjaG1lbnQtZmlsZS1zaXplLWxpbWl0IGlzIHRoZSBwZXItZmlsZSBhdHRhY2htZW50IHNpemUgbGltaXQgKGUuZy4gMzAwaywgMk0sIDEwME0pXG4jIC0gYXR0YWNobWVudC1leHBpcnktZHVyYXRpb24gaXMgdGhlIGR1cmF0aW9uIGFmdGVyIHdoaWNoIHVwbG9hZGVkIGF0dGFjaG1lbnRzIHdpbGwgYmUgZGVsZXRlZCAoZS5nLiAzaCwgMjBoKVxuI1xuIyBhdHRhY2htZW50LWNhY2hlLWRpcjpcbiMgYXR0YWNobWVudC10b3RhbC1zaXplLWxpbWl0OiBcIjVHXCJcbiMgYXR0YWNobWVudC1maWxlLXNpemUtbGltaXQ6IFwiMTVNXCJcbiMgYXR0YWNobWVudC1leHBpcnktZHVyYXRpb246IFwiM2hcIlxuXG4jIFRlbXBsYXRlIGRpcmVjdG9yeSBmb3IgbWVzc2FnZSB0ZW1wbGF0ZXMuXG4jXG4jIFdoZW4gXCJYLVRlbXBsYXRlOiA8bmFtZT5cIiAoYWxpYXNlczogXCJUZW1wbGF0ZTogPG5hbWU+XCIsIFwiVHBsOiA8bmFtZT5cIikgb3IgXCI/dGVtcGxhdGU9PG5hbWU+XCIgaXMgc2V0LCB0cmFuc2Zvcm0gdGhlIG1lc3NhZ2VcbiMgYmFzZWQgb24gb25lIG9mIHRoZSBidWlsdC1pbiBwcmUtZGVmaW5lZCB0ZW1wbGF0ZXMsIG9yIG9uIGEgdGVtcGxhdGUgZGVmaW5lZCBpbiB0aGUgXCJ0ZW1wbGF0ZS1kaXJcIiBkaXJlY3RvcnkuXG4jXG4jIFRlbXBsYXRlIGZpbGVzIG11c3QgaGF2ZSB0aGUgXCIueW1sXCIgZXh0ZW5zaW9uIGFuZCBtdXN0IGJlIGZvcm1hdHRlZCBhcyBZQU1MLiBUaGV5IG1heSBjb250YWluIFwidGl0bGVcIiBhbmQgXCJtZXNzYWdlXCIga2V5cyxcbiMgd2hpY2ggYXJlIGludGVycHJldGVkIGFzIEdvIHRlbXBsYXRlcy5cbiNcbiMgRXhhbXBsZSB0ZW1wbGF0ZSBmaWxlIChlLmcuIC9ldGMvbnRmeS90ZW1wbGF0ZXMvZ3JhZmFuYS55bWwpOlxuIyAgIHRpdGxlOiB8XG4jICAgICB7ey0gaWYgZXEgLnN0YXR1cyBcImZpcmluZ1wiIH19XG4jICAgICB7eyAudGl0bGUgfCBkZWZhdWx0IFwiQWxlcnQgZmlyaW5nXCIgfX1cbiMgICAgIHt7LSBlbHNlIGlmIGVxIC5zdGF0dXMgXCJyZXNvbHZlZFwiIH19XG4jICAgICB7eyAudGl0bGUgfCBkZWZhdWx0IFwiQWxlcnQgcmVzb2x2ZWRcIiB9fVxuIyAgICAge3stIGVuZCB9fVxuIyAgIG1lc3NhZ2U6IHxcbiMgICAgIHt7IC5tZXNzYWdlIHwgdHJ1bmMgMjAwMCB9fVxuI1xudGVtcGxhdGUtZGlyOiBcIi9ldGMvbnRmeS90ZW1wbGF0ZXNcIlxuXG4jIElmIGVuYWJsZWQsIGFsbG93IG91dGdvaW5nIGUtbWFpbCBub3RpZmljYXRpb25zIHZpYSB0aGUgJ1gtRW1haWwnIGhlYWRlci4gSWYgdGhpcyBoZWFkZXIgaXMgc2V0LFxuIyBtZXNzYWdlcyB3aWxsIGFkZGl0aW9uYWxseSBiZSBzZW50IG91dCBhcyBlLW1haWwgdXNpbmcgYW4gZXh0ZXJuYWwgU01UUCBzZXJ2ZXIuXG4jXG4jIEFzIG9mIHRvZGF5LCBvbmx5IFNNVFAgc2VydmVycyB3aXRoIHBsYWluIHRleHQgYXV0aCAob3Igbm8gYXV0aCBhdCBhbGwpLCBhbmQgU1RBUlRMUyBhcmUgc3VwcG9ydGVkLlxuIyBQbGVhc2UgYWxzbyByZWZlciB0byB0aGUgcmF0ZSBsaW1pdGluZyBzZXR0aW5ncyBiZWxvdyAodmlzaXRvci1lbWFpbC1saW1pdC1idXJzdCAmIHZpc2l0b3ItZW1haWwtbGltaXQtYnVyc3QpLlxuI1xuIyAtIHNtdHAtc2VuZGVyLWFkZHIgaXMgdGhlIGhvc3RuYW1lOnBvcnQgb2YgdGhlIFNNVFAgc2VydmVyXG4jIC0gc210cC1zZW5kZXItZnJvbSBpcyB0aGUgZS1tYWlsIGFkZHJlc3Mgb2YgdGhlIHNlbmRlclxuIyAtIHNtdHAtc2VuZGVyLXVzZXIvc210cC1zZW5kZXItcGFzcyBhcmUgdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBvZiB0aGUgU01UUCB1c2VyIChsZWF2ZSBibGFuayBmb3Igbm8gYXV0aClcbiNcbiMgc210cC1zZW5kZXItYWRkcjpcbiMgc210cC1zZW5kZXItZnJvbTpcbiMgc210cC1zZW5kZXItdXNlcjpcbiMgc210cC1zZW5kZXItcGFzczpcblxuIyBJZiBlbmFibGVkLCBudGZ5IHdpbGwgbGF1bmNoIGEgbGlnaHR3ZWlnaHQgU01UUCBzZXJ2ZXIgZm9yIGluY29taW5nIG1lc3NhZ2VzLiBPbmNlIGNvbmZpZ3VyZWQsIHVzZXJzIGNhbiBzZW5kXG4jIGVtYWlscyB0byBhIHRvcGljIGUtbWFpbCBhZGRyZXNzIHRvIHB1Ymxpc2ggbWVzc2FnZXMgdG8gYSB0b3BpYy5cbiNcbiMgLSBzbXRwLXNlcnZlci1saXN0ZW4gZGVmaW5lcyB0aGUgSVAgYWRkcmVzcyBhbmQgcG9ydCB0aGUgU01UUCBzZXJ2ZXIgd2lsbCBsaXN0ZW4gb24sIGUuZy4gOjI1IG9yIDEuMi4zLjQ6MjVcbiMgLSBzbXRwLXNlcnZlci1kb21haW4gaXMgdGhlIGUtbWFpbCBkb21haW4sIGUuZy4gbnRmeS5zaFxuIyAtIHNtdHAtc2VydmVyLWFkZHItcHJlZml4IGlzIGFuIG9wdGlvbmFsIHByZWZpeCBmb3IgdGhlIGUtbWFpbCBhZGRyZXNzZXMgdG8gcHJldmVudCBzcGFtLiBJZiBzZXQgdG8gXCJudGZ5LVwiLFxuIyAgIGZvciBpbnN0YW5jZSwgb25seSBlLW1haWxzIHRvIG50ZnktJHRvcGljQG50Znkuc2ggd2lsbCBiZSBhY2NlcHRlZC4gSWYgdGhpcyBpcyBub3Qgc2V0LCBhbGwgZW1haWxzIHRvXG4jICAgJHRvcGljQG50Znkuc2ggd2lsbCBiZSBhY2NlcHRlZCAod2hpY2ggbWF5IGJlIGEgc3BhbSBwcm9ibGVtKS5cbiNcbiMgc210cC1zZXJ2ZXItbGlzdGVuOlxuIyBzbXRwLXNlcnZlci1kb21haW46XG4jIHNtdHAtc2VydmVyLWFkZHItcHJlZml4OlxuXG4jIFdlYiBQdXNoIHN1cHBvcnQgKGJhY2tncm91bmQgbm90aWZpY2F0aW9ucyBmb3IgYnJvd3NlcnMpXG4jXG4jIElmIGVuYWJsZWQsIGFsbG93cyB0aGUgbnRmeSB3ZWIgYXBwIHRvIHJlY2VpdmUgcHVzaCBub3RpZmljYXRpb25zLCBldmVuIHdoZW4gdGhlIHdlYiBhcHAgaXMgY2xvc2VkLiBXaGVuIGVuYWJsZWQsIHVzZXJzXG4jIGNhbiBlbmFibGUgYmFja2dyb3VuZCBub3RpZmljYXRpb25zIGluIHRoZSB3ZWIgYXBwLiBPbmNlIGVuYWJsZWQsIG50Znkgd2lsbCBmb3J3YXJkIHB1Ymxpc2hlZCBtZXNzYWdlcyB0byB0aGUgcHVzaFxuIyBlbmRwb2ludCwgd2hpY2ggd2lsbCB0aGVuIGZvcndhcmQgaXQgdG8gdGhlIGJyb3dzZXIuXG4jXG4jIFlvdSBtdXN0IGNvbmZpZ3VyZSB3ZWItcHVzaC1wdWJsaWMvcHJpdmF0ZSBrZXksIHdlYi1wdXNoLWZpbGUsIGFuZCB3ZWItcHVzaC1lbWFpbC1hZGRyZXNzIGJlbG93IHRvIGVuYWJsZSBXZWIgUHVzaC5cbiMgUnVuIFwibnRmeSB3ZWJwdXNoIGtleXNcIiB0byBnZW5lcmF0ZSB0aGUga2V5cy5cbiNcbiMgLSB3ZWItcHVzaC1wdWJsaWMta2V5IGlzIHRoZSBnZW5lcmF0ZWQgVkFQSUQgcHVibGljIGtleSwgZS5nLiBBQTEyMzRCQkNDZGR2dmVla2FhYmNkZnF3ZXJ0eXVpb3Bhc2RmZ2hqa2x6eGN2Ym5tMTIzNDU2Nzg5MFxuIyAtIHdlYi1wdXNoLXByaXZhdGUta2V5IGlzIHRoZSBnZW5lcmF0ZWQgVkFQSUQgcHJpdmF0ZSBrZXksIGUuZy4gQUEyQkIxMjM0NTY3ODkwYWJjZGVmenhjdmJubTEyMzQ1Njc4OTBcbiMgLSB3ZWItcHVzaC1maWxlIGlzIGEgZGF0YWJhc2UgZmlsZSB0byBrZWVwIHRyYWNrIG9mIGJyb3dzZXIgc3Vic2NyaXB0aW9uIGVuZHBvaW50cywgZS5nLiAvdmFyL2NhY2hlL250Znkvd2VicHVzaC5kYlxuIyAtIHdlYi1wdXNoLWVtYWlsLWFkZHJlc3MgaXMgdGhlIGFkbWluIGVtYWlsIGFkZHJlc3Mgc2VuZCB0byB0aGUgcHVzaCBwcm92aWRlciwgZS5nLiBzeXNhZG1pbkBleGFtcGxlLmNvbVxuIyAtIHdlYi1wdXNoLXN0YXJ0dXAtcXVlcmllcyBpcyBhbiBvcHRpb25hbCBsaXN0IG9mIHF1ZXJpZXMgdG8gcnVuIG9uIHN0YXJ0dXBgXG4jIC0gd2ViLXB1c2gtZXhwaXJ5LXdhcm5pbmctZHVyYXRpb24gZGVmaW5lcyB0aGUgZHVyYXRpb24gYWZ0ZXIgd2hpY2ggdW51c2VkIHN1YnNjcmlwdGlvbnMgYXJlIHNlbnQgYSB3YXJuaW5nIChkZWZhdWx0IGlzIDU1ZGApXG4jIC0gd2ViLXB1c2gtZXhwaXJ5LWR1cmF0aW9uIGRlZmluZXMgdGhlIGR1cmF0aW9uIGFmdGVyIHdoaWNoIHVudXNlZCBzdWJzY3JpcHRpb25zIHdpbGwgZXhwaXJlIChkZWZhdWx0IGlzIDYwZClcbiNcbiMgd2ViLXB1c2gtcHVibGljLWtleTpcbiMgd2ViLXB1c2gtcHJpdmF0ZS1rZXk6XG4jIHdlYi1wdXNoLWZpbGU6XG4jIHdlYi1wdXNoLWVtYWlsLWFkZHJlc3M6XG4jIHdlYi1wdXNoLXN0YXJ0dXAtcXVlcmllczpcbiMgd2ViLXB1c2gtZXhwaXJ5LXdhcm5pbmctZHVyYXRpb246IFwiNTVkXCJcbiMgd2ViLXB1c2gtZXhwaXJ5LWR1cmF0aW9uOiBcIjYwZFwiXG5cbiMgSWYgZW5hYmxlZCwgbnRmeSBjYW4gcGVyZm9ybSB2b2ljZSBjYWxscyB2aWEgVHdpbGlvIHZpYSB0aGUgXCJYLUNhbGxcIiBoZWFkZXIuXG4jXG4jIC0gdHdpbGlvLWFjY291bnQgaXMgdGhlIFR3aWxpbyBhY2NvdW50IFNJRCwgZS5nLiBBQyoqKlxuIyAtIHR3aWxpby1hdXRoLXRva2VuIGlzIHRoZSBUd2lsaW8gYXV0aCB0b2tlbiwgZS5nLiBhZioqKlxuIyAtIHR3aWxpby1waG9uZS1udW1iZXIgaXMgdGhlIG91dGdvaW5nIHBob25lIG51bWJlciB5b3UgcHVyY2hhc2VkLCBlLmcuICsxOCoqKlxuIyAtIHR3aWxpby12ZXJpZnktc2VydmljZSBpcyB0aGUgVHdpbGlvIFZlcmlmeSBzZXJ2aWNlIFNJRCwgZS5nLiBWQSoqKlxuI1xuIyB0d2lsaW8tYWNjb3VudDpcbiMgdHdpbGlvLWF1dGgtdG9rZW46XG4jIHR3aWxpby1waG9uZS1udW1iZXI6XG4jIHR3aWxpby12ZXJpZnktc2VydmljZTpcblxuIyBJbnRlcnZhbCBpbiB3aGljaCBrZWVwYWxpdmUgbWVzc2FnZXMgYXJlIHNlbnQgdG8gdGhlIGNsaWVudC4gVGhpcyBpcyB0byBwcmV2ZW50XG4jIGludGVybWVkaWFyaWVzIGNsb3NpbmcgdGhlIGNvbm5lY3Rpb24gZm9yIGluYWN0aXZpdHkuXG4jXG4jIE5vdGUgdGhhdCB0aGUgQW5kcm9pZCBhcHAgaGFzIGEgaGFyZGNvZGVkIHRpbWVvdXQgYXQgNzdzLCBzbyBpdCBzaG91bGQgYmUgbGVzcyB0aGFuIHRoYXQuXG4jXG4jIGtlZXBhbGl2ZS1pbnRlcnZhbDogXCI0NXNcIlxuXG4jIEludGVydmFsIGluIHdoaWNoIHRoZSBtYW5hZ2VyIHBydW5lcyBvbGQgbWVzc2FnZXMsIGRlbGV0ZXMgdG9waWNzXG4jIGFuZCBwcmludHMgdGhlIHN0YXRzLlxuI1xubWFuYWdlci1pbnRlcnZhbDogXCIxMmhcIlxuXG4jIERlZmluZXMgdG9waWMgbmFtZXMgdGhhdCBhcmUgbm90IGFsbG93ZWQsIGJlY2F1c2UgdGhleSBhcmUgb3RoZXJ3aXNlIHVzZWQuIFRoZXJlIGFyZSBhIGZldyBkZWZhdWx0IHRvcGljc1xuIyB0aGF0IGNhbm5vdCBiZSB1c2VkIChlLmcuIGFwcCwgYWNjb3VudCwgc2V0dGluZ3MsIC4uLikuIFRvIGV4dGVuZCB0aGUgZGVmYXVsdCBsaXN0LCBkZWZpbmUgdGhlbSBoZXJlLlxuI1xuIyBFeGFtcGxlOlxuIyAgIGRpc2FsbG93ZWQtdG9waWNzOlxuIyAgICAgLSBhYm91dFxuIyAgICAgLSBwcmljaW5nXG4jICAgICAtIGNvbnRhY3RcbiNcbiMgZGlzYWxsb3dlZC10b3BpY3M6XG5cbiMgRGVmaW5lcyB0aGUgcm9vdCBwYXRoIG9mIHRoZSB3ZWIgYXBwLCBvciBkaXNhYmxlcyB0aGUgd2ViIGFwcCBlbnRpcmVseS5cbiNcbiMgQ2FuIGJlIGFueSBzaW1wbGUgcGF0aCwgZS5nLiBcIi9cIiwgXCIvYXBwXCIsIG9yIFwiL250ZnlcIi4gRm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IHJlYXNvbnMsXG4jIHRoZSB2YWx1ZXMgXCJhcHBcIiAobWFwcyB0byBcIi9cIiksIFwiaG9tZVwiIChtYXBzIHRvIFwiL2FwcFwiKSwgb3IgXCJkaXNhYmxlXCIgKG1hcHMgdG8gXCJcIikgdG8gZGlzYWJsZVxuIyB0aGUgd2ViIGFwcCBlbnRpcmVseS5cbiNcbiMgd2ViLXJvb3Q6IC9cblxuIyBWYXJpb3VzIGZlYXR1cmUgZmxhZ3MgdXNlZCB0byBjb250cm9sIHRoZSB3ZWIgYXBwLCBhbmQgQVBJIGFjY2VzcywgbWFpbmx5IGFyb3VuZCB1c2VyIGFuZFxuIyBhY2NvdW50IG1hbmFnZW1lbnQuXG4jXG4jIC0gZW5hYmxlLXNpZ251cCBhbGxvd3MgdXNlcnMgdG8gc2lnbiB1cCB2aWEgdGhlIHdlYiBhcHAsIG9yIEFQSVxuIyAtIGVuYWJsZS1sb2dpbiBhbGxvd3MgdXNlcnMgdG8gbG9nIGluIHZpYSB0aGUgd2ViIGFwcCwgb3IgQVBJXG4jIC0gcmVxdWlyZS1sb2dpbiByZWRpcmVjdHMgdXNlcnMgdG8gdGhlIGxvZ2luIHBhZ2UgaWYgdGhleSBhcmUgbm90IGxvZ2dlZCBpbiAoZGlzYWxsb3dzIHdlYiBhcHAgYWNjZXNzIHdpdGhvdXQgbG9naW4pXG4jIC0gZW5hYmxlLXJlc2VydmF0aW9ucyBhbGxvd3MgdXNlcnMgdG8gcmVzZXJ2ZSB0b3BpY3MgKGlmIHRoZWlyIHRpZXIgYWxsb3dzIGl0KVxuI1xuZW5hYmxlLXNpZ251cDogZmFsc2VcbnJlcXVpcmUtbG9naW46IGZhbHNlXG5lbmFibGUtbG9naW46IHRydWVcbmVuYWJsZS1yZXNlcnZhdGlvbnM6IGZhbHNlXG5cbiMgU2VydmVyIFVSTCBvZiBhIEZpcmViYXNlL0FQTlMtY29ubmVjdGVkIG50Znkgc2VydmVyIChsaWtlbHkgXCJodHRwczovL250Znkuc2hcIikuXG4jXG4jIGlPUyB1c2VyczpcbiMgICBJZiB5b3UgdXNlIHRoZSBpT1MgbnRmeSBhcHAsIHlvdSBNVVNUIGNvbmZpZ3VyZSB0aGlzIHRvIHJlY2VpdmUgdGltZWx5IG5vdGlmaWNhdGlvbnMuIFlvdSdsbCBsaWtlIHdhbnQgdGhpczpcbiMgICB1cHN0cmVhbS1iYXNlLXVybDogXCJodHRwczovL250Znkuc2hcIlxuI1xuIyBJZiBzZXQsIGFsbCBpbmNvbWluZyBtZXNzYWdlcyB3aWxsIHB1Ymxpc2ggYSBcInBvbGxfcmVxdWVzdFwiIG1lc3NhZ2UgdG8gdGhlIGNvbmZpZ3VyZWQgdXBzdHJlYW0gc2VydmVyLCBjb250YWluaW5nXG4jIHRoZSBtZXNzYWdlIElEIG9mIHRoZSBvcmlnaW5hbCBtZXNzYWdlLCBpbnN0cnVjdGluZyB0aGUgaU9TIGFwcCB0byBwb2xsIHRoaXMgc2VydmVyIGZvciB0aGUgYWN0dWFsIG1lc3NhZ2UgY29udGVudHMuXG4jIFRoaXMgaXMgdG8gcHJldmVudCB0aGUgdXBzdHJlYW0gc2VydmVyIGFuZCBGaXJlYmFzZS9BUE5TIGZyb20gYmVpbmcgYWJsZSB0byByZWFkIHRoZSBtZXNzYWdlLlxuI1xuIyAtIHVwc3RyZWFtLWJhc2UtdXJsIGlzIHRoZSBiYXNlIFVSTCBvZiB0aGUgdXBzdHJlYW0gc2VydmVyLiBTaG91bGQgYmUgXCJodHRwczovL250Znkuc2hcIi5cbiMgLSB1cHN0cmVhbS1hY2Nlc3MtdG9rZW4gaXMgdGhlIHRva2VuIHVzZWQgdG8gYXV0aGVudGljYXRlIHdpdGggdGhlIHVwc3RyZWFtIHNlcnZlci4gVGhpcyBpcyBvbmx5IHJlcXVpcmVkXG4jICAgaWYgeW91IGV4Y2VlZCB0aGUgdXBzdHJlYW0gcmF0ZSBsaW1pdHMsIG9yIHRoZSB1cHRyZWFtIHNlcnZlciByZXF1aXJlcyBhdXRoZW50aWNhdGlvbi5cbiNcbnVwc3RyZWFtLWJhc2UtdXJsOiBcImh0dHBzOi8vbnRmeS5zaFwiXG4jIHVwc3RyZWFtLWFjY2Vzcy10b2tlbjpcblxuIyBDb25maWd1cmVzIG1lc3NhZ2Utc3BlY2lmaWMgbGltaXRzXG4jXG4jIC0gbWVzc2FnZS1zaXplLWxpbWl0IGRlZmluZXMgdGhlIG1heCBzaXplIG9mIGEgbWVzc2FnZSBib2R5LiBQbGVhc2Ugbm90ZSBtZXNzYWdlIHNpemVzID40SyBhcmUgTk9UIFJFQ09NTUVOREVELFxuIyAgIGFuZCBsYXJnZWx5IHVudGVzdGVkLiBJZiBGQ00gYW5kL29yIEFQTlMgaXMgdXNlZCwgdGhlIGxpbWl0IHNob3VsZCBzdGF5IDRLLCBiZWNhdXNlIHRoZWlyIGxpbWl0cyBhcmUgYXJvdW5kIHRoYXQgc2l6ZS5cbiMgICBJZiB5b3UgaW5jcmVhc2UgdGhpcyBzaXplIGxpbWl0IHJlZ2FyZGxlc3MsIEZDTSBhbmQgQVBOUyB3aWxsIE5PVCB3b3JrIGZvciBsYXJnZSBtZXNzYWdlcy5cbiMgLSBtZXNzYWdlLWRlbGF5LWxpbWl0IGRlZmluZXMgdGhlIG1heCBkZWxheSBvZiBhIG1lc3NhZ2Ugd2hlbiB1c2luZyB0aGUgXCJEZWxheVwiIGhlYWRlci5cbiNcbiMgbWVzc2FnZS1zaXplLWxpbWl0OiBcIjRrXCJcbiMgbWVzc2FnZS1kZWxheS1saW1pdDogXCIzZFwiXG5cbiMgUmF0ZSBsaW1pdGluZzogVG90YWwgbnVtYmVyIG9mIHRvcGljcyBiZWZvcmUgdGhlIHNlcnZlciByZWplY3RzIG5ldyB0b3BpY3MuXG4jXG4jIGdsb2JhbC10b3BpYy1saW1pdDogMTUwMDBcblxuIyBSYXRlIGxpbWl0aW5nOiBOdW1iZXIgb2Ygc3Vic2NyaXB0aW9ucyBwZXIgdmlzaXRvciAoSVAgYWRkcmVzcylcbiNcbiMgdmlzaXRvci1zdWJzY3JpcHRpb24tbGltaXQ6IDMwXG5cbiMgUmF0ZSBsaW1pdGluZzogQWxsb3dlZCBHRVQvUFVUL1BPU1QgcmVxdWVzdHMgcGVyIHNlY29uZCwgcGVyIHZpc2l0b3I6XG4jIC0gdmlzaXRvci1yZXF1ZXN0LWxpbWl0LWJ1cnN0IGlzIHRoZSBpbml0aWFsIGJ1Y2tldCBvZiByZXF1ZXN0cyBlYWNoIHZpc2l0b3IgaGFzXG4jIC0gdmlzaXRvci1yZXF1ZXN0LWxpbWl0LXJlcGxlbmlzaCBpcyB0aGUgcmF0ZSBhdCB3aGljaCB0aGUgYnVja2V0IGlzIHJlZmlsbGVkXG4jIC0gdmlzaXRvci1yZXF1ZXN0LWxpbWl0LWV4ZW1wdC1ob3N0cyBpcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGhvc3RuYW1lcywgSVBzIG9yIENJRFJzIHRvIGJlXG4jICAgZXhlbXB0IGZyb20gcmVxdWVzdCByYXRlIGxpbWl0aW5nLiBIb3N0bmFtZXMgYXJlIHJlc29sdmVkIGF0IHRoZSB0aW1lIHRoZSBzZXJ2ZXIgaXMgc3RhcnRlZC5cbiMgICBFeGFtcGxlOiBcIjEuMi4zLjQsbnRmeS5leGFtcGxlLmNvbSw4LjcuNi4wLzI0XCJcbiNcbiMgdmlzaXRvci1yZXF1ZXN0LWxpbWl0LWJ1cnN0OiA2MFxuIyB2aXNpdG9yLXJlcXVlc3QtbGltaXQtcmVwbGVuaXNoOiBcIjVzXCJcbiMgdmlzaXRvci1yZXF1ZXN0LWxpbWl0LWV4ZW1wdC1ob3N0czogXCJcIlxuXG4jIFJhdGUgbGltaXRpbmc6IEhhcmQgZGFpbHkgbGltaXQgb2YgbWVzc2FnZXMgcGVyIHZpc2l0b3IgYW5kIGRheS4gVGhlIGxpbWl0IGlzIHJlc2V0XG4jIGV2ZXJ5IGRheSBhdCBtaWRuaWdodCBVVEMuIElmIHRoZSBsaW1pdCBpcyBub3Qgc2V0IChvciBzZXQgdG8gemVybyksIHRoZSByZXF1ZXN0XG4jIGxpbWl0IChzZWUgYWJvdmUpIGdvdmVybnMgdGhlIHVwcGVyIGxpbWl0LlxuI1xuIyB2aXNpdG9yLW1lc3NhZ2UtZGFpbHktbGltaXQ6IDBcblxuIyBSYXRlIGxpbWl0aW5nOiBBbGxvd2VkIGVtYWlscyBwZXIgdmlzaXRvcjpcbiMgLSB2aXNpdG9yLWVtYWlsLWxpbWl0LWJ1cnN0IGlzIHRoZSBpbml0aWFsIGJ1Y2tldCBvZiBlbWFpbHMgZWFjaCB2aXNpdG9yIGhhc1xuIyAtIHZpc2l0b3ItZW1haWwtbGltaXQtcmVwbGVuaXNoIGlzIHRoZSByYXRlIGF0IHdoaWNoIHRoZSBidWNrZXQgaXMgcmVmaWxsZWRcbiNcbiMgdmlzaXRvci1lbWFpbC1saW1pdC1idXJzdDogMTZcbiMgdmlzaXRvci1lbWFpbC1saW1pdC1yZXBsZW5pc2g6IFwiMWhcIlxuXG4jIFJhdGUgbGltaXRpbmc6IElQdjQvSVB2NiBhZGRyZXNzIHByZWZpeCBiaXRzIHVzZWQgZm9yIHJhdGUgbGltaXRpbmdcbiMgLSB2aXNpdG9yLXByZWZpeC1iaXRzLWlwdjQ6IG51bWJlciBvZiBiaXRzIG9mIHRoZSBJUHY0IGFkZHJlc3MgdG8gdXNlIGZvciByYXRlIGxpbWl0aW5nIChkZWZhdWx0OiAzMiwgZnVsbCBhZGRyZXNzKVxuIyAtIHZpc2l0b3ItcHJlZml4LWJpdHMtaXB2NjogbnVtYmVyIG9mIGJpdHMgb2YgdGhlIElQdjYgYWRkcmVzcyB0byB1c2UgZm9yIHJhdGUgbGltaXRpbmcgKGRlZmF1bHQ6IDY0LCAvNjQgc3VibmV0KVxuI1xuIyBUaGlzIGlzIHVzZWQgdG8gZ3JvdXAgdmlzaXRvcnMgYnkgdGhlaXIgSVAgYWRkcmVzcyBvciBzdWJuZXQuIEZvciBleGFtcGxlLCBpZiB5b3Ugc2V0IHZpc2l0b3ItcHJlZml4LWJpdHMtaXB2NCB0byAyNCxcbiMgYWxsIHZpc2l0b3JzIGluIHRoZSAxLjIuMy4wLzI0IG5ldHdvcmsgYXJlIHRyZWF0ZWQgYXMgb25lLlxuI1xuIyBCeSBkZWZhdWx0LCBudGZ5IHVzZXMgdGhlIGZ1bGwgSVB2NCBhZGRyZXNzICgzMiBiaXRzKSBhbmQgdGhlIC82NCBzdWJuZXQgb2YgdGhlIElQdjYgYWRkcmVzcyAoNjQgYml0cykuXG4jXG4jIHZpc2l0b3ItcHJlZml4LWJpdHMtaXB2NDogMzJcbiMgdmlzaXRvci1wcmVmaXgtYml0cy1pcHY2OiA2NFxuXG4jIFJhdGUgbGltaXRpbmc6IEF0dGFjaG1lbnQgc2l6ZSBhbmQgYmFuZHdpZHRoIGxpbWl0cyBwZXIgdmlzaXRvcjpcbiMgLSB2aXNpdG9yLWF0dGFjaG1lbnQtdG90YWwtc2l6ZS1saW1pdCBpcyB0aGUgdG90YWwgc3RvcmFnZSBsaW1pdCB1c2VkIGZvciBhdHRhY2htZW50cyBwZXIgdmlzaXRvclxuIyAtIHZpc2l0b3ItYXR0YWNobWVudC1kYWlseS1iYW5kd2lkdGgtbGltaXQgaXMgdGhlIHRvdGFsIGRhaWx5IGF0dGFjaG1lbnQgZG93bmxvYWQvdXBsb2FkIHRyYWZmaWMgbGltaXQgcGVyIHZpc2l0b3JcbiNcbiMgdmlzaXRvci1hdHRhY2htZW50LXRvdGFsLXNpemUtbGltaXQ6IFwiMTAwTVwiXG4jIHZpc2l0b3ItYXR0YWNobWVudC1kYWlseS1iYW5kd2lkdGgtbGltaXQ6IFwiNTAwTVwiXG5cbiMgUmF0ZSBsaW1pdGluZzogRW5hYmxlIHN1YnNjcmliZXItYmFzZWQgcmF0ZSBsaW1pdGluZyAobW9zdGx5IHVzZWQgZm9yIFVuaWZpZWRQdXNoKVxuI1xuIyBJZiBzdWJzY3JpYmVyLWJhc2VkIHJhdGUgbGltaXRpbmcgaXMgZW5hYmxlZCwgbWVzc2FnZXMgcHVibGlzaGVkIG9uIFVuaWZpZWRQdXNoIHRvcGljcyoqICh0b3BpY3Mgc3RhcnRpbmcgd2l0aCBcInVwXCIpXG4jIHdpbGwgYmUgY291bnRlZCB0b3dhcmRzIHRoZSBcInJhdGUgdmlzaXRvclwiIG9mIHRoZSB0b3BpYy4gQSBcInJhdGUgdmlzaXRvclwiIGlzIHRoZSBmaXJzdCBzdWJzY3JpYmVyIHRvIHRoZSB0b3BpYy5cbiNcbiMgT25jZSBlbmFibGVkLCBhIGNsaWVudCBzdWJzY3JpYmluZyB0byBVbmlmaWVkUHVzaCB0b3BpY3MgdmlhIEhUVFAgc3RyZWFtLCBvciB3ZWJzb2NrZXRzLCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgcmVnaXN0ZXJlZCBhc1xuIyBhIFwicmF0ZSB2aXNpdG9yXCIsIGkuZS4gdGhlIHZpc2l0b3Igd2hvc2UgcmF0ZSBsaW1pdHMgd2lsbCBiZSB1c2VkIHdoZW4gcHVibGlzaGluZyBvbiB0aGlzIHRvcGljLiBOb3RlIHRoYXQgc2V0dGluZyB0aGUgcmF0ZSB2aXNpdG9yXG4jIHJlcXVpcmVzICoqcmVhZC13cml0ZSBwZXJtaXNzaW9uKiogb24gdGhlIHRvcGljLlxuI1xuIyBJZiB0aGlzIHNldHRpbmcgaXMgZW5hYmxlZCwgcHVibGlzaGluZyB0byBVbmlmaWVkUHVzaCB0b3BpY3Mgd2lsbCBsZWFkIHRvIGEgSFRUUCA1MDcgcmVzcG9uc2UgaWZcbiMgbm8gXCJyYXRlIHZpc2l0b3JcIiBoYXMgYmVlbiBwcmV2aW91c2x5IHJlZ2lzdGVyZWQuIFRoaXMgaXMgdG8gYXZvaWQgYnVybmluZyB0aGUgcHVibGlzaGVyJ3MgXCJ2aXNpdG9yLW1lc3NhZ2UtZGFpbHktbGltaXRcIi5cbiNcbiMgdmlzaXRvci1zdWJzY3JpYmVyLXJhdGUtbGltaXRpbmc6IGZhbHNlXG5cbiMgUGF5bWVudHMgaW50ZWdyYXRpb24gdmlhIFN0cmlwZVxuI1xuIyAtIHN0cmlwZS1zZWNyZXQta2V5IGlzIHRoZSBrZXkgdXNlZCBmb3IgdGhlIFN0cmlwZSBBUEkgY29tbXVuaWNhdGlvbi4gU2V0dGluZyB0aGlzIHZhbHVlc1xuIyAgIGVuYWJsZXMgcGF5bWVudHMgaW4gdGhlIG50Znkgd2ViIGFwcCAoZS5nLiBVcGdyYWRlIGRpYWxvZykuIFNlZSBodHRwczovL2Rhc2hib2FyZC5zdHJpcGUuY29tL2FwaWtleXMuXG4jIC0gc3RyaXBlLXdlYmhvb2sta2V5IGlzIHRoZSBrZXkgcmVxdWlyZWQgdG8gdmFsaWRhdGUgdGhlIGF1dGhlbnRpY2l0eSBvZiBpbmNvbWluZyB3ZWJob29rcyBmcm9tIFN0cmlwZS5cbiMgICBXZWJob29rcyBhcmUgZXNzZW50aWFsIHVwIGtlZXAgdGhlIGxvY2FsIGRhdGFiYXNlIGluIHN5bmMgd2l0aCB0aGUgcGF5bWVudCBwcm92aWRlci4gU2VlIGh0dHBzOi8vZGFzaGJvYXJkLnN0cmlwZS5jb20vd2ViaG9va3MuXG4jIC0gYmlsbGluZy1jb250YWN0IGlzIGFuIGVtYWlsIGFkZHJlc3Mgb3Igd2Vic2l0ZSBkaXNwbGF5ZWQgaW4gdGhlIFwiVXBncmFkZSB0aWVyXCIgZGlhbG9nIHRvIGxldCBwZW9wbGUgcmVhY2hcbiMgICBvdXQgd2l0aCBiaWxsaW5nIHF1ZXN0aW9ucy4gSWYgdW5zZXQsIG5vdGhpbmcgd2lsbCBiZSBkaXNwbGF5ZWQuXG4jXG4jIHN0cmlwZS1zZWNyZXQta2V5OlxuIyBzdHJpcGUtd2ViaG9vay1rZXk6XG4jIGJpbGxpbmctY29udGFjdDpcblxuIyBNZXRyaWNzXG4jXG4jIG50ZnkgY2FuIGV4cG9zZSBQcm9tZXRoZXVzLXN0eWxlIG1ldHJpY3MgdmlhIGEgL21ldHJpY3MgZW5kcG9pbnQsIG9yIG9uIGEgZGVkaWNhdGVkIGxpc3RlbiBJUC9wb3J0LlxuIyBNZXRyaWNzIG1heSBiZSBjb25zaWRlcmVkIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiwgc28gYmVmb3JlIHlvdSBlbmFibGUgdGhlbSwgYmUgc3VyZSB5b3Uga25vdyB3aGF0IHlvdSBhcmVcbiMgZG9pbmcsIGFuZC9vciBzZWN1cmUgYWNjZXNzIHRvIHRoZSBlbmRwb2ludCBpbiB5b3VyIHJldmVyc2UgcHJveHkuXG4jXG4jIC0gZW5hYmxlLW1ldHJpY3MgZW5hYmxlcyB0aGUgL21ldHJpY3MgZW5kcG9pbnQgZm9yIHRoZSBkZWZhdWx0IG50Znkgc2VydmVyIChpLmUuIEhUVFAsIEhUVFBTIGFuZC9vciBVbml4IHNvY2tldClcbiMgLSBtZXRyaWNzLWxpc3Rlbi1odHRwIGV4cG9zZXMgdGhlIG1ldHJpY3MgZW5kcG9pbnQgdmlhIGEgZGVkaWNhdGVkIFtJUF06cG9ydC4gSWYgc2V0LCB0aGlzIG9wdGlvbiBpbXBsaWNpdGx5XG4jICAgZW5hYmxlcyBtZXRyaWNzIGFzIHdlbGwsIGUuZy4gXCIxMC4wLjEuMTo5MDkwXCIgb3IgXCI6OTA5MFwiXG4jXG4jIGVuYWJsZS1tZXRyaWNzOiBmYWxzZVxuIyBtZXRyaWNzLWxpc3Rlbi1odHRwOiBcIjo5MDkwXCJcblxuIyBQcm9maWxpbmdcbiNcbiMgbnRmeSBjYW4gZXhwb3NlIEdvJ3MgbmV0L2h0dHAvcHByb2YgZW5kcG9pbnRzIHRvIHN1cHBvcnQgcHJvZmlsaW5nIG9mIHRoZSBudGZ5IHNlcnZlci4gSWYgZW5hYmxlZCwgbnRmeSB3aWxsIGxpc3RlblxuIyBvbiBhIGRlZGljYXRlZCBsaXN0ZW4gSVAvcG9ydCwgd2hpY2ggY2FuIGJlIGFjY2Vzc2VkIHZpYSB0aGUgd2ViIGJyb3dzZXIgb24gaHR0cDovLzxpcD46PHBvcnQ+L2RlYnVnL3Bwcm9mLy5cbiMgVGhpcyBjYW4gYmUgaGVscGZ1bCB0byBleHBvc2UgYm90dGxlbmVja3MsIGFuZCB2aXN1YWxpemUgY2FsbCBmbG93cy4gU2VlIGh0dHBzOi8vcGtnLmdvLmRldi9uZXQvaHR0cC9wcHJvZiBmb3IgZGV0YWlscy5cbiNcbiMgcHJvZmlsZS1saXN0ZW4taHR0cDpcblxuIyBMb2dnaW5nIG9wdGlvbnNcbiNcbiMgQnkgZGVmYXVsdCwgbnRmeSBsb2dzIHRvIHRoZSBjb25zb2xlIChzdGRlcnIpLCB3aXRoIGFuIFwiaW5mb1wiIGxvZyBsZXZlbCwgYW5kIGluIGEgaHVtYW4tcmVhZGFibGUgdGV4dCBmb3JtYXQuXG4jIG50Znkgc3VwcG9ydHMgZml2ZSBkaWZmZXJlbnQgbG9nIGxldmVscywgY2FuIGFsc28gd3JpdGUgdG8gYSBmaWxlLCBsb2cgYXMgSlNPTiwgYW5kIGV2ZW4gc3VwcG9ydHMgZ3JhbnVsYXJcbiMgbG9nIGxldmVsIG92ZXJyaWRlcyBmb3IgZWFzaWVyIGRlYnVnZ2luZy4gU29tZSBvcHRpb25zIChsb2ctbGV2ZWwgYW5kIGxvZy1sZXZlbC1vdmVycmlkZXMpIGNhbiBiZSBob3QgcmVsb2FkZWRcbiMgYnkgY2FsbGluZyBcImtpbGwgLUhVUCAkcGlkXCIgb3IgXCJzeXN0ZW1jdGwgcmVsb2FkIG50ZnlcIi5cbiNcbiMgLSBsb2ctZm9ybWF0IGRlZmluZXMgdGhlIG91dHB1dCBmb3JtYXQsIGNhbiBiZSBcInRleHRcIiAoZGVmYXVsdCkgb3IgXCJqc29uXCJcbiMgLSBsb2ctZmlsZSBpcyBhIGZpbGVuYW1lIHRvIHdyaXRlIGxvZ3MgdG8uIElmIHRoaXMgaXMgbm90IHNldCwgbnRmeSBsb2dzIHRvIHN0ZGVyci5cbiMgLSBsb2ctbGV2ZWwgZGVmaW5lcyB0aGUgZGVmYXVsdCBsb2cgbGV2ZWwsIGNhbiBiZSBvbmUgb2YgXCJ0cmFjZVwiLCBcImRlYnVnXCIsIFwiaW5mb1wiIChkZWZhdWx0KSwgXCJ3YXJuXCIgb3IgXCJlcnJvclwiLlxuIyAgIEJlIGF3YXJlIHRoYXQgXCJkZWJ1Z1wiIChhbmQgcGFydGljdWxhcmx5IFwidHJhY2VcIikgY2FuIGJlIFZFUlkgQ0hBVFRZLiBPbmx5IHR1cm4gdGhlbSBvbiBicmllZmx5IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuXG4jIC0gbG9nLWxldmVsLW92ZXJyaWRlcyBsZXRzIHlvdSBvdmVycmlkZSB0aGUgbG9nIGxldmVsIGlmIGNlcnRhaW4gZmllbGRzIG1hdGNoLiBUaGlzIGlzIGluY3JlZGlibHkgcG93ZXJmdWxcbiMgICBmb3IgZGVidWdnaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlIHN5c3RlbSAoZS5nLiBvbmx5IHRoZSBhY2NvdW50IG1hbmFnZW1lbnQsIG9yIG9ubHkgYSBjZXJ0YWluIHZpc2l0b3IpLlxuIyAgIFRoaXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5ncyBpbiB0aGUgZm9ybWF0OlxuIyAgICAgIC0gXCJmaWVsZD12YWx1ZSAtPiBsZXZlbFwiIHRvIG1hdGNoIGEgdmFsdWUgZXhhY3RseSwgZS5nLiBcInRhZz1tYW5hZ2VyIC0+IHRyYWNlXCJcbiMgICAgICAtIFwiZmllbGQgLT4gbGV2ZWxcIiB0byBtYXRjaCBhbnkgdmFsdWUsIGUuZy4gXCJ0aW1lX3Rha2VuX21zIC0+IGRlYnVnXCJcbiMgICBXYXJuaW5nOiBVc2luZyBsb2ctbGV2ZWwtb3ZlcnJpZGVzIGhhcyBhIHBlcmZvcm1hbmNlIHBlbmFsdHkuIE9ubHkgdXNlIGl0IGZvciB0ZW1wb3JhcnkgZGVidWdnaW5nLlxuI1xuIyBDaGVjayB5b3VyIHBlcm1pc3Npb25zOlxuIyAgIElmIHlvdSBhcmUgcnVubmluZyBudGZ5IHdpdGggc3lzdGVtZCwgbWFrZSBzdXJlIHRoaXMgbG9nIGZpbGUgaXMgb3duZWQgYnkgdGhlXG4jICAgbnRmeSB1c2VyIGFuZCBncm91cCBieSBydW5uaW5nOiBjaG93biBudGZ5Lm50ZnkgPGZpbGVuYW1lPi5cbiNcbiMgRXhhbXBsZSAoZ29vZCBmb3IgcHJvZHVjdGlvbik6XG4jICAgbG9nLWxldmVsOiBpbmZvXG4jICAgbG9nLWZvcm1hdDoganNvblxuIyAgIGxvZy1maWxlOiAvdmFyL2xvZy9udGZ5LmxvZ1xuI1xuIyBFeGFtcGxlIGxldmVsIG92ZXJyaWRlcyAoZm9yIGRlYnVnZ2luZywgb25seSB1c2UgdGVtcG9yYXJpbHkpOlxuIyAgIGxvZy1sZXZlbC1vdmVycmlkZXM6XG4jICAgICAgLSBcInRhZz1tYW5hZ2VyIC0+IHRyYWNlXCJcbiMgICAgICAtIFwidmlzaXRvcl9pcD0xLjIuMy40IC0+IGRlYnVnXCJcbiMgICAgICAtIFwidGltZV90YWtlbl9tcyAtPiBkZWJ1Z1wiXG4jXG4jIGxvZy1sZXZlbDogaW5mb1xuIyBsb2ctbGV2ZWwtb3ZlcnJpZGVzOlxuIyBsb2ctZm9ybWF0OiB0ZXh0XG4jIGxvZy1maWxlOlxuXCJcIlwiIgp9

Configuration

The exact Docker Compose and template configuration this template deploys.

Related Templates

Self-host NTFY in minutes

Dokploy is a free, open source deployment platform. Deploy NTFY and 499+ other templates on your own infrastructure with a single click.