How to deploy
Alternatively, create a Compose service, go to Advanced → Import from Base64, and paste this payload:
ewogICJjb21wb3NlIjogIiMgRGlmeSAtIG9wZW4tc291cmNlIExMTSBhcHAgZGV2ZWxvcG1lbnQgcGxhdGZvcm1cbiMgQWRhcHRlZCBmcm9tIHRoZSBvZmZpY2lhbCBkb2NrZXIvZG9ja2VyLWNvbXBvc2UueWFtbCAodGFnIDEuMTUuMCkuXG4jIE1pbmltYWwgZnVuY3Rpb25hbCBzdGFjazogYXBpICsgd29ya2VyICsgd29ya2VyX2JlYXQgKyB3ZWIgKyBwb3N0Z3Jlc1xuIyAocGd2ZWN0b3IsIHJldXNlZCBhcyB0aGUgdmVjdG9yIHN0b3JlKSArIHJlZGlzICsgc2FuZGJveCArIHNzcmZfcHJveHlcbiMgKyBwbHVnaW5fZGFlbW9uLCBmcm9udGVkIGJ5IGEgbGlnaHR3ZWlnaHQgaW50ZXJuYWwgbmdpbnggZ2F0ZXdheSB0aGF0XG4jIG1pcnJvcnMgdGhlIHVwc3RyZWFtIHBhdGggcm91dGluZyAoVExTIHRlcm1pbmF0ZXMgYXQgVHJhZWZpaykuXG5cbngtc2hhcmVkLWFwaS1lbnY6ICZzaGFyZWQtYXBpLWVudlxuICBMT0dfTEVWRUw6IElORk9cbiAgREVQTE9ZX0VOVjogUFJPRFVDVElPTlxuICBTRUNSRVRfS0VZOiAke1NFQ1JFVF9LRVl9XG4gIE1JR1JBVElPTl9FTkFCTEVEOiBcInRydWVcIlxuICAjIFB1YmxpYyBVUkxzIC0gYSBzaW5nbGUgZG9tYWluLCBwYXRoLXJvdXRlZCBsaWtlIHRoZSB1cHN0cmVhbSBuZ2lueFxuICBDT05TT0xFX0FQSV9VUkw6IGh0dHBzOi8vJHtESUZZX0RPTUFJTn1cbiAgQ09OU09MRV9XRUJfVVJMOiBodHRwczovLyR7RElGWV9ET01BSU59XG4gIFNFUlZJQ0VfQVBJX1VSTDogaHR0cHM6Ly8ke0RJRllfRE9NQUlOfVxuICBBUFBfQVBJX1VSTDogaHR0cHM6Ly8ke0RJRllfRE9NQUlOfVxuICBBUFBfV0VCX1VSTDogaHR0cHM6Ly8ke0RJRllfRE9NQUlOfVxuICBGSUxFU19VUkw6IGh0dHBzOi8vJHtESUZZX0RPTUFJTn1cbiAgSU5URVJOQUxfRklMRVNfVVJMOiBodHRwOi8vYXBpOjUwMDFcbiAgVFJJR0dFUl9VUkw6IGh0dHBzOi8vJHtESUZZX0RPTUFJTn1cbiAgRU5EUE9JTlRfVVJMX1RFTVBMQVRFOiBodHRwczovLyR7RElGWV9ET01BSU59L2Uve2hvb2tfaWR9XG4gICMgVGhlIGRlZGljYXRlZCBhcGlfd2Vic29ja2V0IGNvbGxhYm9yYXRpb24gc2VydmljZSBpcyBub3QgZGVwbG95ZWRcbiAgRU5BQkxFX0NPTExBQk9SQVRJT05fTU9ERTogXCJmYWxzZVwiXG4gIFdFQl9BUElfQ09SU19BTExPV19PUklHSU5TOiBcIipcIlxuICBDT05TT0xFX0NPUlNfQUxMT1dfT1JJR0lOUzogXCIqXCJcbiAgIyBQb3N0Z3JlU1FMXG4gIERCX1VTRVJOQU1FOiBwb3N0Z3Jlc1xuICBEQl9QQVNTV09SRDogJHtQT1NUR1JFU19QQVNTV09SRH1cbiAgREJfSE9TVDogZGJcbiAgREJfUE9SVDogXCI1NDMyXCJcbiAgREJfREFUQUJBU0U6IGRpZnlcbiAgIyBSZWRpcyAvIENlbGVyeVxuICBSRURJU19IT1NUOiByZWRpc1xuICBSRURJU19QT1JUOiBcIjYzNzlcIlxuICBSRURJU19QQVNTV09SRDogJHtSRURJU19QQVNTV09SRH1cbiAgUkVESVNfREI6IFwiMFwiXG4gIENFTEVSWV9CUk9LRVJfVVJMOiByZWRpczovLzoke1JFRElTX1BBU1NXT1JEfUByZWRpczo2Mzc5LzFcbiAgIyBGaWxlIHN0b3JhZ2Ugb24gYSBsb2NhbCB2b2x1bWVcbiAgU1RPUkFHRV9UWVBFOiBvcGVuZGFsXG4gIE9QRU5EQUxfU0NIRU1FOiBmc1xuICBPUEVOREFMX0ZTX1JPT1Q6IHN0b3JhZ2VcbiAgIyBWZWN0b3Igc3RvcmU6IHBndmVjdG9yLCByZXVzaW5nIHRoZSBzYW1lIFBvc3RncmVTUUwgaW5zdGFuY2VcbiAgVkVDVE9SX1NUT1JFOiBwZ3ZlY3RvclxuICBQR1ZFQ1RPUl9IT1NUOiBkYlxuICBQR1ZFQ1RPUl9QT1JUOiBcIjU0MzJcIlxuICBQR1ZFQ1RPUl9VU0VSOiBwb3N0Z3Jlc1xuICBQR1ZFQ1RPUl9QQVNTV09SRDogJHtQT1NUR1JFU19QQVNTV09SRH1cbiAgUEdWRUNUT1JfREFUQUJBU0U6IGRpZnlcbiAgUEdWRUNUT1JfTUlOX0NPTk5FQ1RJT046IFwiMVwiXG4gIFBHVkVDVE9SX01BWF9DT05ORUNUSU9OOiBcIjVcIlxuICAjIENvZGUgZXhlY3V0aW9uIHNhbmRib3hcbiAgQ09ERV9FWEVDVVRJT05fRU5EUE9JTlQ6IGh0dHA6Ly9zYW5kYm94OjgxOTRcbiAgQ09ERV9FWEVDVVRJT05fQVBJX0tFWTogJHtTQU5EQk9YX0FQSV9LRVl9XG4gICMgU1NSRiBwcm94eSAoc3F1aWQpIGZvciB1c2VyLXRyaWdnZXJlZCBvdXRib3VuZCByZXF1ZXN0c1xuICBTU1JGX1BST1hZX0hUVFBfVVJMOiBodHRwOi8vc3NyZl9wcm94eTozMTI4XG4gIFNTUkZfUFJPWFlfSFRUUFNfVVJMOiBodHRwOi8vc3NyZl9wcm94eTozMTI4XG4gICMgUGx1Z2luIGRhZW1vbiAobW9kZWwgcHJvdmlkZXJzIC8gdG9vbHMgYXJlIHBsdWdpbnMgc2luY2UgRGlmeSAxLjApXG4gIFBMVUdJTl9EQUVNT05fVVJMOiBodHRwOi8vcGx1Z2luX2RhZW1vbjo1MDAyXG4gIFBMVUdJTl9EQUVNT05fS0VZOiAke1BMVUdJTl9EQUVNT05fS0VZfVxuICBJTk5FUl9BUElfS0VZX0ZPUl9QTFVHSU46ICR7UExVR0lOX0lOTkVSX0FQSV9LRVl9XG4gIFBMVUdJTl9NQVhfUEFDS0FHRV9TSVpFOiBcIjUyNDI4ODAwXCJcbiAgUExVR0lOX1JFTU9URV9JTlNUQUxMX0hPU1Q6IGxvY2FsaG9zdFxuICBQTFVHSU5fUkVNT1RFX0lOU1RBTExfUE9SVDogXCI1MDAzXCJcbiAgTUFSS0VUUExBQ0VfRU5BQkxFRDogXCJ0cnVlXCJcbiAgTUFSS0VUUExBQ0VfQVBJX1VSTDogaHR0cHM6Ly9tYXJrZXRwbGFjZS5kaWZ5LmFpXG5cbnNlcnZpY2VzOlxuICBuZ2lueDpcbiAgICBpbWFnZTogbmdpbng6MS4yNy1hbHBpbmVcbiAgICByZXN0YXJ0OiBhbHdheXNcbiAgICB2b2x1bWVzOlxuICAgICAgLSAuLi9maWxlcy9kaWZ5LW5naW54LmNvbmY6L2V0Yy9uZ2lueC9jb25mLmQvZGVmYXVsdC5jb25mOnJvXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIGFwaTpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIHdlYjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX3N0YXJ0ZWRcbiAgICAgIHBsdWdpbl9kYWVtb246XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9zdGFydGVkXG5cbiAgIyBUaGUgZGlmeS1hcGkgaW1hZ2UgcnVucyBhcyB0aGUgbm9uLXJvb3QgdXNlciAxMDAxLCBzbyB0aGUgc2hhcmVkXG4gICMgc3RvcmFnZSB2b2x1bWUgaGFzIHRvIGJlIGhhbmRlZCBvdmVyIHRvIGl0IG9uY2UgKHNhbWUgdHJpY2sgYXMgdGhlXG4gICMgdXBzdHJlYW0gaW5pdF9wZXJtaXNzaW9ucyBjb250YWluZXIpLlxuICBpbml0X3Blcm1pc3Npb25zOlxuICAgIGltYWdlOiBidXN5Ym94OjEuMzZcbiAgICBjb21tYW5kOlxuICAgICAgLSBzaFxuICAgICAgLSAtY1xuICAgICAgLSB8XG4gICAgICAgIEZMQUdfRklMRT1cIi9hcHAvYXBpL3N0b3JhZ2UvLmluaXRfcGVybWlzc2lvbnNcIlxuICAgICAgICBpZiBbIC1mIFwiJCRGTEFHX0ZJTEVcIiBdOyB0aGVuXG4gICAgICAgICAgZWNobyBcIlBlcm1pc3Npb25zIGFscmVhZHkgaW5pdGlhbGl6ZWQuXCJcbiAgICAgICAgICBleGl0IDBcbiAgICAgICAgZmlcbiAgICAgICAgZWNobyBcIkluaXRpYWxpemluZyBwZXJtaXNzaW9ucyBmb3IgL2FwcC9hcGkvc3RvcmFnZVwiXG4gICAgICAgIGNob3duIC1SIDEwMDE6MTAwMSAvYXBwL2FwaS9zdG9yYWdlICYmIHRvdWNoIFwiJCRGTEFHX0ZJTEVcIlxuICAgIHZvbHVtZXM6XG4gICAgICAtIGRpZnktYXBwLXN0b3JhZ2U6L2FwcC9hcGkvc3RvcmFnZVxuICAgIHJlc3RhcnQ6IFwibm9cIlxuXG4gIGFwaTpcbiAgICBpbWFnZTogbGFuZ2dlbml1cy9kaWZ5LWFwaToxLjE1LjBcbiAgICByZXN0YXJ0OiBhbHdheXNcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIDw8OiAqc2hhcmVkLWFwaS1lbnZcbiAgICAgIE1PREU6IGFwaVxuICAgIGRlcGVuZHNfb246XG4gICAgICBpbml0X3Blcm1pc3Npb25zOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseVxuICAgICAgZGI6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgICByZWRpczpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICB2b2x1bWVzOlxuICAgICAgLSBkaWZ5LWFwcC1zdG9yYWdlOi9hcHAvYXBpL3N0b3JhZ2VcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRFwiLCBcImN1cmxcIiwgXCItZlwiLCBcImh0dHA6Ly9sb2NhbGhvc3Q6NTAwMS9oZWFsdGhcIl1cbiAgICAgIGludGVydmFsOiAxNXNcbiAgICAgIHRpbWVvdXQ6IDVzXG4gICAgICByZXRyaWVzOiAyMFxuICAgICAgc3RhcnRfcGVyaW9kOiAxMjBzXG5cbiAgd29ya2VyOlxuICAgIGltYWdlOiBsYW5nZ2VuaXVzL2RpZnktYXBpOjEuMTUuMFxuICAgIHJlc3RhcnQ6IGFsd2F5c1xuICAgIGVudmlyb25tZW50OlxuICAgICAgPDw6ICpzaGFyZWQtYXBpLWVudlxuICAgICAgTU9ERTogd29ya2VyXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIGluaXRfcGVybWlzc2lvbnM6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XG4gICAgICBkYjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIHJlZGlzOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgIHZvbHVtZXM6XG4gICAgICAtIGRpZnktYXBwLXN0b3JhZ2U6L2FwcC9hcGkvc3RvcmFnZVxuXG4gIHdvcmtlcl9iZWF0OlxuICAgIGltYWdlOiBsYW5nZ2VuaXVzL2RpZnktYXBpOjEuMTUuMFxuICAgIHJlc3RhcnQ6IGFsd2F5c1xuICAgIGVudmlyb25tZW50OlxuICAgICAgPDw6ICpzaGFyZWQtYXBpLWVudlxuICAgICAgTU9ERTogYmVhdFxuICAgIGRlcGVuZHNfb246XG4gICAgICBkYjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIHJlZGlzOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuXG4gIHdlYjpcbiAgICBpbWFnZTogbGFuZ2dlbml1cy9kaWZ5LXdlYjoxLjE1LjBcbiAgICByZXN0YXJ0OiBhbHdheXNcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIENPTlNPTEVfQVBJX1VSTDogaHR0cHM6Ly8ke0RJRllfRE9NQUlOfVxuICAgICAgQVBQX0FQSV9VUkw6IGh0dHBzOi8vJHtESUZZX0RPTUFJTn1cbiAgICAgIFNFUlZFUl9DT05TT0xFX0FQSV9VUkw6IGh0dHA6Ly9hcGk6NTAwMVxuICAgICAgRU5BQkxFX0NPTExBQk9SQVRJT05fTU9ERTogXCJmYWxzZVwiXG4gICAgICBNQVJLRVRQTEFDRV9BUElfVVJMOiBodHRwczovL21hcmtldHBsYWNlLmRpZnkuYWlcbiAgICAgIE1BUktFVFBMQUNFX1VSTDogaHR0cHM6Ly9tYXJrZXRwbGFjZS5kaWZ5LmFpXG4gICAgICBORVhUX1RFTEVNRVRSWV9ESVNBQkxFRDogXCIxXCJcblxuICBkYjpcbiAgICBpbWFnZTogcGd2ZWN0b3IvcGd2ZWN0b3I6cGcxNlxuICAgIHJlc3RhcnQ6IGFsd2F5c1xuICAgIGVudmlyb25tZW50OlxuICAgICAgUE9TVEdSRVNfVVNFUjogcG9zdGdyZXNcbiAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiAke1BPU1RHUkVTX1BBU1NXT1JEfVxuICAgICAgUE9TVEdSRVNfREI6IGRpZnlcbiAgICAgIFBHREFUQTogL3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhL3BnZGF0YVxuICAgIHZvbHVtZXM6XG4gICAgICAtIGRpZnktZGItZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBcInBnX2lzcmVhZHkgLVUgcG9zdGdyZXMgLWQgZGlmeVwiXVxuICAgICAgaW50ZXJ2YWw6IDVzXG4gICAgICB0aW1lb3V0OiAzc1xuICAgICAgcmV0cmllczogMzBcblxuICByZWRpczpcbiAgICBpbWFnZTogcmVkaXM6Ni1hbHBpbmVcbiAgICByZXN0YXJ0OiBhbHdheXNcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIFJFRElTQ0xJX0FVVEg6ICR7UkVESVNfUEFTU1dPUkR9XG4gICAgY29tbWFuZDogcmVkaXMtc2VydmVyIC0tcmVxdWlyZXBhc3MgJHtSRURJU19QQVNTV09SRH1cbiAgICB2b2x1bWVzOlxuICAgICAgLSBkaWZ5LXJlZGlzLWRhdGE6L2RhdGFcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBcInJlZGlzLWNsaSBwaW5nIHwgZ3JlcCAtcSBQT05HXCJdXG4gICAgICBpbnRlcnZhbDogNXNcbiAgICAgIHRpbWVvdXQ6IDNzXG4gICAgICByZXRyaWVzOiAzMFxuXG4gIHNhbmRib3g6XG4gICAgaW1hZ2U6IGxhbmdnZW5pdXMvZGlmeS1zYW5kYm94OjAuMi4xNVxuICAgIHJlc3RhcnQ6IGFsd2F5c1xuICAgIGVudmlyb25tZW50OlxuICAgICAgQVBJX0tFWTogJHtTQU5EQk9YX0FQSV9LRVl9XG4gICAgICBHSU5fTU9ERTogcmVsZWFzZVxuICAgICAgV09SS0VSX1RJTUVPVVQ6IFwiMTVcIlxuICAgICAgRU5BQkxFX05FVFdPUks6IFwidHJ1ZVwiXG4gICAgICBIVFRQX1BST1hZOiBodHRwOi8vc3NyZl9wcm94eTozMTI4XG4gICAgICBIVFRQU19QUk9YWTogaHR0cDovL3NzcmZfcHJveHk6MzEyOFxuICAgICAgU0FOREJPWF9QT1JUOiBcIjgxOTRcIlxuICAgIHZvbHVtZXM6XG4gICAgICAtIGRpZnktc2FuZGJveC1kZXBzOi9kZXBlbmRlbmNpZXNcblxuICBzc3JmX3Byb3h5OlxuICAgIGltYWdlOiB1YnVudHUvc3F1aWQ6bGF0ZXN0XG4gICAgcmVzdGFydDogYWx3YXlzXG4gICAgdm9sdW1lczpcbiAgICAgIC0gLi4vZmlsZXMvZGlmeS1zcXVpZC5jb25mOi9ldGMvc3F1aWQvc3F1aWQuY29uZjpyb1xuXG4gIHBsdWdpbl9kYWVtb246XG4gICAgaW1hZ2U6IGxhbmdnZW5pdXMvZGlmeS1wbHVnaW4tZGFlbW9uOjAuNi4zLWxvY2FsXG4gICAgcmVzdGFydDogYWx3YXlzXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBEQl9IT1NUOiBkYlxuICAgICAgREJfUE9SVDogXCI1NDMyXCJcbiAgICAgIERCX1VTRVJOQU1FOiBwb3N0Z3Jlc1xuICAgICAgREJfUEFTU1dPUkQ6ICR7UE9TVEdSRVNfUEFTU1dPUkR9XG4gICAgICBEQl9EQVRBQkFTRTogZGlmeV9wbHVnaW5cbiAgICAgIERCX1NTTF9NT0RFOiBkaXNhYmxlXG4gICAgICBSRURJU19IT1NUOiByZWRpc1xuICAgICAgUkVESVNfUE9SVDogXCI2Mzc5XCJcbiAgICAgIFJFRElTX1BBU1NXT1JEOiAke1JFRElTX1BBU1NXT1JEfVxuICAgICAgU0VSVkVSX1BPUlQ6IFwiNTAwMlwiXG4gICAgICBTRVJWRVJfS0VZOiAke1BMVUdJTl9EQUVNT05fS0VZfVxuICAgICAgTUFYX1BMVUdJTl9QQUNLQUdFX1NJWkU6IFwiNTI0Mjg4MDBcIlxuICAgICAgRElGWV9JTk5FUl9BUElfVVJMOiBodHRwOi8vYXBpOjUwMDFcbiAgICAgIERJRllfSU5ORVJfQVBJX0tFWTogJHtQTFVHSU5fSU5ORVJfQVBJX0tFWX1cbiAgICAgIFBMVUdJTl9SRU1PVEVfSU5TVEFMTElOR19IT1NUOiAwLjAuMC4wXG4gICAgICBQTFVHSU5fUkVNT1RFX0lOU1RBTExJTkdfUE9SVDogXCI1MDAzXCJcbiAgICAgIFBMVUdJTl9XT1JLSU5HX1BBVEg6IC9hcHAvc3RvcmFnZS9jd2RcbiAgICAgIEZPUkNFX1ZFUklGWUlOR19TSUdOQVRVUkU6IFwidHJ1ZVwiXG4gICAgICBQWVRIT05fRU5WX0lOSVRfVElNRU9VVDogXCIxMjBcIlxuICAgICAgUExVR0lOX01BWF9FWEVDVVRJT05fVElNRU9VVDogXCI2MDBcIlxuICAgICAgUExVR0lOX1NUT1JBR0VfVFlQRTogbG9jYWxcbiAgICAgIFBMVUdJTl9TVE9SQUdFX0xPQ0FMX1JPT1Q6IC9hcHAvc3RvcmFnZVxuICAgICAgUExVR0lOX0lOU1RBTExFRF9QQVRIOiBwbHVnaW5cbiAgICAgIFBMVUdJTl9QQUNLQUdFX0NBQ0hFX1BBVEg6IHBsdWdpbl9wYWNrYWdlc1xuICAgICAgUExVR0lOX01FRElBX0NBQ0hFX1BBVEg6IGFzc2V0c1xuICAgIHZvbHVtZXM6XG4gICAgICAtIGRpZnktcGx1Z2luLXN0b3JhZ2U6L2FwcC9zdG9yYWdlXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIGRiOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgICAgcmVkaXM6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG5cbnZvbHVtZXM6XG4gIGRpZnktYXBwLXN0b3JhZ2U6XG4gIGRpZnktZGItZGF0YTpcbiAgZGlmeS1yZWRpcy1kYXRhOlxuICBkaWZ5LXNhbmRib3gtZGVwczpcbiAgZGlmeS1wbHVnaW4tc3RvcmFnZToiLAogICJjb25maWciOiAiW3ZhcmlhYmxlc11cbm1haW5fZG9tYWluID0gXCIke2RvbWFpbn1cIlxuc2VjcmV0X2tleSA9IFwiJHtiYXNlNjQ6NDJ9XCJcbnBvc3RncmVzX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjMyfVwiXG5yZWRpc19wYXNzd29yZCA9IFwiJHtwYXNzd29yZDozMn1cIlxuc2FuZGJveF9hcGlfa2V5ID0gXCIke3Bhc3N3b3JkOjMyfVwiXG5wbHVnaW5fZGFlbW9uX2tleSA9IFwiJHtiYXNlNjQ6NDJ9XCJcbnBsdWdpbl9pbm5lcl9hcGlfa2V5ID0gXCIke2Jhc2U2NDo0Mn1cIlxuXG5bY29uZmlnXVxuZW52ID0gW1xuICBcIkRJRllfRE9NQUlOPSR7bWFpbl9kb21haW59XCIsXG4gIFwiU0VDUkVUX0tFWT0ke3NlY3JldF9rZXl9XCIsXG4gIFwiUE9TVEdSRVNfUEFTU1dPUkQ9JHtwb3N0Z3Jlc19wYXNzd29yZH1cIixcbiAgXCJSRURJU19QQVNTV09SRD0ke3JlZGlzX3Bhc3N3b3JkfVwiLFxuICBcIlNBTkRCT1hfQVBJX0tFWT0ke3NhbmRib3hfYXBpX2tleX1cIixcbiAgXCJQTFVHSU5fREFFTU9OX0tFWT0ke3BsdWdpbl9kYWVtb25fa2V5fVwiLFxuICBcIlBMVUdJTl9JTk5FUl9BUElfS0VZPSR7cGx1Z2luX2lubmVyX2FwaV9rZXl9XCIsXG5dXG5cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcIm5naW54XCJcbnBvcnQgPSA4MFxuaG9zdCA9IFwiJHttYWluX2RvbWFpbn1cIlxuXG4jIEludGVybmFsIG5naW54IGdhdGV3YXkgcmVwbGljYXRpbmcgdGhlIHVwc3RyZWFtIERpZnkgbmdpbnggcm91dGluZ1xuIyAoVExTIHRlcm1pbmF0ZXMgYXQgVHJhZWZpaywgd2hpY2ggZm9yd2FyZHMgZXZlcnl0aGluZyB0byB0aGlzIG5naW54KS5cbltbY29uZmlnLm1vdW50c11dXG5maWxlUGF0aCA9IFwiZGlmeS1uZ2lueC5jb25mXCJcbmNvbnRlbnQgPSAnJydcbm1hcCAkaHR0cF94X2ZvcndhcmRlZF9wcm90byAkZGlmeV9mb3J3YXJkZWRfcHJvdG8ge1xuICAgIGRlZmF1bHQgJGh0dHBfeF9mb3J3YXJkZWRfcHJvdG87XG4gICAgXCJcIiAgICAgICRzY2hlbWU7XG59XG5cbnNlcnZlciB7XG4gICAgbGlzdGVuIDgwO1xuICAgIHNlcnZlcl9uYW1lIF87XG5cbiAgICBjbGllbnRfbWF4X2JvZHlfc2l6ZSAxMDBNO1xuXG4gICAgcHJveHlfc2V0X2hlYWRlciBIb3N0ICRob3N0O1xuICAgIHByb3h5X3NldF9oZWFkZXIgWC1Gb3J3YXJkZWQtRm9yICRwcm94eV9hZGRfeF9mb3J3YXJkZWRfZm9yO1xuICAgIHByb3h5X3NldF9oZWFkZXIgWC1Gb3J3YXJkZWQtUHJvdG8gJGRpZnlfZm9yd2FyZGVkX3Byb3RvO1xuICAgIHByb3h5X2h0dHBfdmVyc2lvbiAxLjE7XG4gICAgcHJveHlfc2V0X2hlYWRlciBDb25uZWN0aW9uIFwiXCI7XG4gICAgcHJveHlfYnVmZmVyaW5nIG9mZjtcbiAgICBwcm94eV9yZWFkX3RpbWVvdXQgMzYwMHM7XG4gICAgcHJveHlfc2VuZF90aW1lb3V0IDM2MDBzO1xuXG4gICAgbG9jYXRpb24gL2NvbnNvbGUvYXBpIHsgcHJveHlfcGFzcyBodHRwOi8vYXBpOjUwMDE7IH1cbiAgICBsb2NhdGlvbiAvYXBpICAgICAgICAgeyBwcm94eV9wYXNzIGh0dHA6Ly9hcGk6NTAwMTsgfVxuICAgIGxvY2F0aW9uIC92MSAgICAgICAgICB7IHByb3h5X3Bhc3MgaHR0cDovL2FwaTo1MDAxOyB9XG4gICAgbG9jYXRpb24gL29wZW5hcGkgICAgIHsgcHJveHlfcGFzcyBodHRwOi8vYXBpOjUwMDE7IH1cbiAgICBsb2NhdGlvbiAvZmlsZXMgICAgICAgeyBwcm94eV9wYXNzIGh0dHA6Ly9hcGk6NTAwMTsgfVxuICAgIGxvY2F0aW9uIC9tY3AgICAgICAgICB7IHByb3h5X3Bhc3MgaHR0cDovL2FwaTo1MDAxOyB9XG4gICAgbG9jYXRpb24gL3RyaWdnZXJzICAgIHsgcHJveHlfcGFzcyBodHRwOi8vYXBpOjUwMDE7IH1cbiAgICBsb2NhdGlvbiAvZXhwbG9yZSAgICAgeyBwcm94eV9wYXNzIGh0dHA6Ly93ZWI6MzAwMDsgfVxuXG4gICAgbG9jYXRpb24gL2UvIHtcbiAgICAgICAgcHJveHlfcGFzcyBodHRwOi8vcGx1Z2luX2RhZW1vbjo1MDAyO1xuICAgICAgICAjIG5naW54IGRyb3BzIGluaGVyaXRlZCBwcm94eV9zZXRfaGVhZGVyIGRpcmVjdGl2ZXMgYXMgc29vbiBhcyBhXG4gICAgICAgICMgbG9jYXRpb24gZGVmaW5lcyBpdHMgb3duLCBzbyB0aGUgc2hhcmVkIG9uZXMgYXJlIHJlcGVhdGVkIGhlcmUuXG4gICAgICAgIHByb3h5X3NldF9oZWFkZXIgSG9zdCAkaG9zdDtcbiAgICAgICAgcHJveHlfc2V0X2hlYWRlciBYLUZvcndhcmRlZC1Gb3IgJHByb3h5X2FkZF94X2ZvcndhcmRlZF9mb3I7XG4gICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1Gb3J3YXJkZWQtUHJvdG8gJGRpZnlfZm9yd2FyZGVkX3Byb3RvO1xuICAgICAgICBwcm94eV9zZXRfaGVhZGVyIENvbm5lY3Rpb24gXCJcIjtcbiAgICAgICAgcHJveHlfc2V0X2hlYWRlciBEaWZ5LUhvb2stVXJsICRkaWZ5X2ZvcndhcmRlZF9wcm90bzovLyRob3N0JHJlcXVlc3RfdXJpO1xuICAgIH1cblxuICAgIGxvY2F0aW9uIC8geyBwcm94eV9wYXNzIGh0dHA6Ly93ZWI6MzAwMDsgfVxufVxuJycnXG5cbiMgU3F1aWQgU1NSRiBwcm94eSBjb25maWd1cmF0aW9uLCByZW5kZXJlZCBmcm9tIHRoZSB1cHN0cmVhbVxuIyBkb2NrZXIvc3NyZl9wcm94eS9zcXVpZC5jb25mLnRlbXBsYXRlIHdpdGggaXRzIGRlZmF1bHQgdmFsdWVzLlxuW1tjb25maWcubW91bnRzXV1cbmZpbGVQYXRoID0gXCJkaWZ5LXNxdWlkLmNvbmZcIlxuY29udGVudCA9ICcnJ1xuYWNsIGNsaWVudF9sb2NhbG5ldCBzcmMgMC4wLjAuMS0wLjI1NS4yNTUuMjU1XG5hY2wgY2xpZW50X2xvY2FsbmV0IHNyYyAxMC4wLjAuMC84XG5hY2wgY2xpZW50X2xvY2FsbmV0IHNyYyAxMDAuNjQuMC4wLzEwXG5hY2wgY2xpZW50X2xvY2FsbmV0IHNyYyAxNjkuMjU0LjAuMC8xNlxuYWNsIGNsaWVudF9sb2NhbG5ldCBzcmMgMTcyLjE2LjAuMC8xMlxuYWNsIGNsaWVudF9sb2NhbG5ldCBzcmMgMTkyLjE2OC4wLjAvMTZcbmFjbCBjbGllbnRfbG9jYWxuZXQgc3JjIGZjMDA6Oi83XG5hY2wgY2xpZW50X2xvY2FsbmV0IHNyYyBmZTgwOjovMTBcbmFjbCB0b19wcml2YXRlX25ldHdvcmtzIGRzdCAwLjAuMC4wLzhcbmFjbCB0b19wcml2YXRlX25ldHdvcmtzIGRzdCAxMC4wLjAuMC84XG5hY2wgdG9fcHJpdmF0ZV9uZXR3b3JrcyBkc3QgMTAwLjY0LjAuMC8xMFxuYWNsIHRvX3ByaXZhdGVfbmV0d29ya3MgZHN0IDEyNy4wLjAuMC84XG5hY2wgdG9fcHJpdmF0ZV9uZXR3b3JrcyBkc3QgMTY5LjI1NC4wLjAvMTZcbmFjbCB0b19wcml2YXRlX25ldHdvcmtzIGRzdCAxNzIuMTYuMC4wLzEyXG5hY2wgdG9fcHJpdmF0ZV9uZXR3b3JrcyBkc3QgMTkyLjE2OC4wLjAvMTZcbmFjbCB0b19wcml2YXRlX25ldHdvcmtzIGRzdCAyMjQuMC4wLjAvNFxuYWNsIHRvX3ByaXZhdGVfbmV0d29ya3MgZHN0IDI0MC4wLjAuMC80XG5hY2wgdG9fcHJpdmF0ZV9uZXR3b3JrcyBkc3QgOjovMTI4XG5hY2wgdG9fcHJpdmF0ZV9uZXR3b3JrcyBkc3QgOjoxLzEyOFxuYWNsIHRvX3ByaXZhdGVfbmV0d29ya3MgZHN0IDo6ZmZmZjowOjAvOTZcbmFjbCB0b19wcml2YXRlX25ldHdvcmtzIGRzdCA6Oi85NlxuYWNsIHRvX3ByaXZhdGVfbmV0d29ya3MgZHN0IGZjMDA6Oi83XG5hY2wgdG9fcHJpdmF0ZV9uZXR3b3JrcyBkc3QgZmU4MDo6LzEwXG5hY2wgU1NMX3BvcnRzIHBvcnQgNDQzXG5hY2wgU2FmZV9wb3J0cyBwb3J0IDgwXG5hY2wgU2FmZV9wb3J0cyBwb3J0IDIxXG5hY2wgU2FmZV9wb3J0cyBwb3J0IDQ0M1xuYWNsIFNhZmVfcG9ydHMgcG9ydCA3MFxuYWNsIFNhZmVfcG9ydHMgcG9ydCAyMTBcbmFjbCBTYWZlX3BvcnRzIHBvcnQgMTAyNS02NTUzNVxuYWNsIFNhZmVfcG9ydHMgcG9ydCAyODBcbmFjbCBTYWZlX3BvcnRzIHBvcnQgNDg4XG5hY2wgU2FmZV9wb3J0cyBwb3J0IDU5MVxuYWNsIFNhZmVfcG9ydHMgcG9ydCA3NzdcbmFjbCBDT05ORUNUIG1ldGhvZCBDT05ORUNUXG5hY2wgYWxsb3dlZF9kb21haW5zIGRzdGRvbWFpbiAubWFya2V0cGxhY2UuZGlmeS5haVxuXG5odHRwX3BvcnQgMzEyOFxuXG5odHRwX2FjY2VzcyBkZW55ICFTYWZlX3BvcnRzXG5odHRwX2FjY2VzcyBkZW55IENPTk5FQ1QgIVNTTF9wb3J0c1xuaHR0cF9hY2Nlc3MgYWxsb3cgbG9jYWxob3N0IG1hbmFnZXJcbmh0dHBfYWNjZXNzIGRlbnkgbWFuYWdlclxuaHR0cF9hY2Nlc3MgZGVueSB0b19wcml2YXRlX25ldHdvcmtzXG5odHRwX2FjY2VzcyBhbGxvdyBhbGxvd2VkX2RvbWFpbnNcbmh0dHBfYWNjZXNzIGFsbG93IGNsaWVudF9sb2NhbG5ldFxuaHR0cF9hY2Nlc3MgYWxsb3cgbG9jYWxob3N0XG5odHRwX2FjY2VzcyBkZW55IGFsbFxudGNwX291dGdvaW5nX2FkZHJlc3MgMC4wLjAuMFxuXG5jb3JlZHVtcF9kaXIgL3Zhci9zcG9vbC9zcXVpZFxucmVmcmVzaF9wYXR0ZXJuIF5mdHA6IDE0NDAgMjAlIDEwMDgwXG5yZWZyZXNoX3BhdHRlcm4gXmdvcGhlcjogMTQ0MCAwJSAxNDQwXG5yZWZyZXNoX3BhdHRlcm4gLWkgKC9jZ2ktYmluL3xcXD8pIDAgMCUgMFxucmVmcmVzaF9wYXR0ZXJuIC4gMCAyMCUgNDMyMFxuXG5jbGllbnRfcmVxdWVzdF9idWZmZXJfbWF4X3NpemUgMTAwIE1CXG5tYXhfZmlsZWRlc2NyaXB0b3JzIDY1NTM2XG5cbmNvbm5lY3RfdGltZW91dCAzMCBzZWNvbmRzXG5yZXF1ZXN0X3RpbWVvdXQgMiBtaW51dGVzXG5yZWFkX3RpbWVvdXQgMiBtaW51dGVzXG5jbGllbnRfbGlmZXRpbWUgNSBtaW51dGVzXG5zaHV0ZG93bl9saWZldGltZSAzMCBzZWNvbmRzXG5cbnNlcnZlcl9wZXJzaXN0ZW50X2Nvbm5lY3Rpb25zIG9uXG5jbGllbnRfcGVyc2lzdGVudF9jb25uZWN0aW9ucyBvblxucGVyc2lzdGVudF9yZXF1ZXN0X3RpbWVvdXQgMzAgc2Vjb25kc1xucGNvbm5fdGltZW91dCAxIG1pbnV0ZVxuXG5jbGllbnRfZGIgb25cbnNlcnZlcl9pZGxlX3Bjb25uX3RpbWVvdXQgMiBtaW51dGVzXG5jbGllbnRfaWRsZV9wY29ubl90aW1lb3V0IDIgbWludXRlc1xuXG5xdWlja19hYm9ydF9taW4gMTYgS0JcbnF1aWNrX2Fib3J0X21heCAxNiBNQlxucXVpY2tfYWJvcnRfcGN0IDk1XG5cbm1lbW9yeV9jYWNoZV9tb2RlIGRpc2tcbmNhY2hlX21lbSAyNTYgTUJcbm1heGltdW1fb2JqZWN0X3NpemVfaW5fbWVtb3J5IDUxMiBLQlxuXG5kbnNfdGltZW91dCAzMCBzZWNvbmRzXG5kbnNfcmV0cmFuc21pdF9pbnRlcnZhbCA1IHNlY29uZHNcblxubG9nZm9ybWF0IGRpZnlfbG9nICV0cy4lMDN0dSAlNnRyICU+YSAlU3MvJTAzPkhzICU8c3QgJXJtICVydSAlW3VuICVTaC8lPGEgJW10XG5hY2Nlc3NfbG9nIGRhZW1vbjovdmFyL2xvZy9zcXVpZC9hY2Nlc3MubG9nIGRpZnlfbG9nXG5sb2dmaWxlX3JvdGF0ZSAxMFxuJycnIgp9
Reference files
The exact Docker Compose and template configuration this template deploys.
Usage guide
/install, where you create the admin (workspace owner) account.HTTPS is required for the console login: Dify issues __Host-/Secure session cookies, so make sure the domain has a certificate (e.g. Let's Encrypt in the domain settings). Over plain HTTP the browser will drop the session cookies and login will not persist.
The vector store is pgvector, running inside the bundled PostgreSQL instance (no separate Weaviate/Qdrant container needed).
All routing (/console/api, /api, /v1, /files, /e/, ...) is handled by the bundled internal nginx gateway, mirroring the upstream deployment, so the Dify service API is available at https://<your-domain>/v1.
Code execution runs in the isolated sandbox service, and user-triggered outbound HTTP requests go through the ssrf_proxy (squid) service, like in the official deployment.
More like this
Version latest
AnythingLLM is a private AI chat app for working with your own documents. Self-host it on your own server with Dokploy, which deploys AnythingLLM as a Docker Compose service in a few clicks.
Version latest
Arche is a self-hosted AI workspace platform that spawns per-user OpenCode coding containers backed by a shared Knowledge Base. Requires the `arche-internal` external Docker network and `/opt/arche/{kb-content,kb-config,users}` directories on the host before deploy. Images are linux/amd64 by default; override `ARCHE_WEB_IMAGE` and `ARCHE_WORKSPACE_IMAGE` to the `-arm64` tag variants for ARM64 hosts.
Version latest
Prompt, run, edit, and deploy full-stack web applications using any LLM you want!
Version 0.7.3
Crawl4AI is a modern AI-powered web crawler with support for screenshots, PDFs, JavaScript execution, and LLM-based extraction. Includes an interactive playground and MCP (Model Context Protocol) integration.
Version latest
Flowise is an open-source UI visual tool to build and run LLM-powered applications.
Version v0.8.4
FreeLLMAPI aggregates free tiers from 29 LLM providers into a single OpenAI-compatible endpoint with smart routing, automatic failover, per-key rate tracking, and encrypted key storage.
Free and open source
Notploy is a free, open source deployment platform. Deploy Dify and 571+ other templates on your own infrastructure with a single click.