Back to Templates
Harbor logo

Harbor

v2.15.4

Harbor is an open source container and OCI artifact registry with access control and Trivy vulnerability scanning.

Deploy on Dokploy

Deploy Harbor 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 Harbor 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
ewogICJjb21wb3NlIjogIiMgR2VuZXJhdGVkIGJ5IHRvb2xzL3JlbmRlci1jb21wb3NlLm1qcyBmcm9tIGltYWdlcy5sb2NrLmpzb24uXG5cInNlcnZpY2VzXCI6XG4gIFwiaGFyYm9yLWluaXRcIjpcbiAgICBcImJ1aWxkXCI6XG4gICAgICBcImNvbnRleHRcIjogXCJodHRwczovL2dpdGh1Yi5jb20vWG5DTi9oYXJib3ItZG9rcGxveS10ZW1wbGF0ZS5naXQjZmMyMjRkNzg4MDBmZmFkNGNkMmEyMWVjZDA4ZjI0YzZmYTEyMmI4MjpibHVlcHJpbnRzL2hhcmJvclwiXG4gICAgICBcImRvY2tlcmZpbGVcIjogXCJEb2NrZXJmaWxlXCJcbiAgICAgIFwidGFyZ2V0XCI6IFwicnVudGltZVwiXG4gICAgICBcImFyZ3NcIjpcbiAgICAgICAgXCJQUkVQQVJFX0lNQUdFXCI6IFwiZ29oYXJib3IvcHJlcGFyZTp2Mi4xNS40QHNoYTI1Njo3OWI1NjE0ZDBkMDJiNWQyYzZjOWI3Yjk3NTVmNWNhYWVhODgyNzk3MzUzYmZjYjY0MjFmNzdlNmQ2OWNjMzE3XCJcbiAgICBcInBsYXRmb3JtXCI6IFwibGludXgvYW1kNjRcIlxuICAgIFwicmVzdGFydFwiOiBcIm5vXCJcbiAgICBcImxhYmVsc1wiOlxuICAgICAgXCJpby5oYXJib3ItZG9rcGxveS5pbnN0YW5jZVwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9XCJcbiAgICAgIFwiaW8uaGFyYm9yLWRva3Bsb3kucm9sZVwiOiBcImluaXRcIlxuICAgICAgXCJ0cmFlZmlrLmVuYWJsZVwiOiBcImZhbHNlXCJcbiAgICBcImVudmlyb25tZW50XCI6XG4gICAgICBcIkhBUkJPUl9JTlNUQU5DRV9JRFwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9XCJcbiAgICAgIFwiSEFSQk9SX0hPU1ROQU1FXCI6IFwiJHtIQVJCT1JfSE9TVE5BTUU6P1NldCBIQVJCT1JfSE9TVE5BTUUgaW4gRG9rcGxveSBFbnZpcm9ubWVudH1cIlxuICAgICAgXCJIQVJCT1JfQURNSU5fUEFTU1dPUkRcIjogXCIke0hBUkJPUl9BRE1JTl9QQVNTV09SRDo/U2V0IEhBUkJPUl9BRE1JTl9QQVNTV09SRCBpbiBEb2twbG95IEVudmlyb25tZW50fVwiXG4gICAgICBcIkhBUkJPUl9EQl9QQVNTV09SRFwiOiBcIiR7SEFSQk9SX0RCX1BBU1NXT1JEOj9TZXQgSEFSQk9SX0RCX1BBU1NXT1JEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9XCJcbiAgICAgIFwiREJfTUFYX0lETEVfQ09OTlNcIjogXCIke0RCX01BWF9JRExFX0NPTk5TOi0xMH1cIlxuICAgICAgXCJEQl9NQVhfT1BFTl9DT05OU1wiOiBcIiR7REJfTUFYX09QRU5fQ09OTlM6LTEwMH1cIlxuICAgICAgXCJQT1NUR1JFU19NQVhfQ09OTkVDVElPTlNcIjogXCIke1BPU1RHUkVTX01BWF9DT05ORUNUSU9OUzotMjU2fVwiXG4gICAgICBcIkpPQl9NQVhfV09SS0VSU1wiOiBcIiR7Sk9CX01BWF9XT1JLRVJTOi01fVwiXG4gICAgICBcIkhBUkJPUl9MT0dfTEVWRUxcIjogXCIke0hBUkJPUl9MT0dfTEVWRUw6LWluZm99XCJcbiAgICAgIFwiQ0FDSEVfRU5BQkxFRFwiOiBcIiR7Q0FDSEVfRU5BQkxFRDotdHJ1ZX1cIlxuICAgICAgXCJBTExPV19QUklWQVRFX05FVFdPUktfQUNDRVNTXCI6IFwiJHtBTExPV19QUklWQVRFX05FVFdPUktfQUNDRVNTOi1mYWxzZX1cIlxuICAgICAgXCJUUklWWV9HSVRIVUJfVE9LRU5cIjogXCIke1RSSVZZX0dJVEhVQl9UT0tFTjotfVwiXG4gICAgICBcIlRSSVZZX0RCX1JFUE9TSVRPUllcIjogXCIke1RSSVZZX0RCX1JFUE9TSVRPUlk6LWdoY3IuaW8vYXF1YXNlY3VyaXR5L3RyaXZ5LWRifVwiXG4gICAgICBcIlRSSVZZX0pBVkFfREJfUkVQT1NJVE9SWVwiOiBcIiR7VFJJVllfSkFWQV9EQl9SRVBPU0lUT1JZOi1naGNyLmlvL2FxdWFzZWN1cml0eS90cml2eS1qYXZhLWRifVwiXG4gICAgICBcIkhBUkJPUl9IVFRQX1BST1hZXCI6IFwiJHtIQVJCT1JfSFRUUF9QUk9YWTotfVwiXG4gICAgICBcIkhBUkJPUl9IVFRQU19QUk9YWVwiOiBcIiR7SEFSQk9SX0hUVFBTX1BST1hZOi19XCJcbiAgICAgIFwiSEFSQk9SX05PX1BST1hZXCI6IFwiJHtIQVJCT1JfTk9fUFJPWFk6LX1cIlxuICAgICAgXCJQUk9KRUNUX1FVT1RBX0dJQlwiOiBcIiR7UFJPSkVDVF9RVU9UQV9HSUI6LTIwfVwiXG4gICAgXCJ2b2x1bWVzXCI6XG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29uZmlnXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvY29uZmlnXCJcbiAgICAgICAgXCJyZWFkX29ubHlcIjogZmFsc2VcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiZGF0YVwiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL2RhdGFcIlxuICAgICAgICBcInJlYWRfb25seVwiOiBmYWxzZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJkYXRhYmFzZVwiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL2RhdGEvZGF0YWJhc2VcIlxuICAgICAgICBcInJlYWRfb25seVwiOiBmYWxzZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJyZWdpc3RyeVwiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL2RhdGEvcmVnaXN0cnlcIlxuICAgICAgICBcInJlYWRfb25seVwiOiBmYWxzZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJyZWRpc1wiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL2RhdGEvcmVkaXNcIlxuICAgICAgICBcInJlYWRfb25seVwiOiBmYWxzZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJqb2JzXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvZGF0YS9qb2JfbG9nc1wiXG4gICAgICAgIFwicmVhZF9vbmx5XCI6IGZhbHNlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgLVxuICAgICAgICBcInR5cGVcIjogXCJ2b2x1bWVcIlxuICAgICAgICBcInNvdXJjZVwiOiBcInRyaXZ5LWNhY2hlXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvZGF0YS90cml2eS1hZGFwdGVyL3RyaXZ5XCJcbiAgICAgICAgXCJyZWFkX29ubHlcIjogZmFsc2VcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwidHJpdnktcmVwb3J0c1wiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL2RhdGEvdHJpdnktYWRhcHRlci9yZXBvcnRzXCJcbiAgICAgICAgXCJyZWFkX29ubHlcIjogZmFsc2VcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29udHJvbFwiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL2NvbnRyb2xcIlxuICAgICAgICBcInJlYWRfb25seVwiOiBmYWxzZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICBcImNhcF9kcm9wXCI6XG4gICAgICAtIFwiQUxMXCJcbiAgICBcImNhcF9hZGRcIjpcbiAgICAgIC0gXCJDSE9XTlwiXG4gICAgICAtIFwiREFDX09WRVJSSURFXCJcbiAgICAgIC0gXCJGT1dORVJcIlxuICAgIFwic2VjdXJpdHlfb3B0XCI6XG4gICAgICAtIFwibm8tbmV3LXByaXZpbGVnZXM6dHJ1ZVwiXG4gICAgXCJtZW1fbGltaXRcIjogXCIke0lOSVRfTUVNT1JZX0xJTUlUOi03NjhtfVwiXG4gICAgXCJsb2dnaW5nXCI6XG4gICAgICBcImRyaXZlclwiOiBcImxvY2FsXCJcbiAgICAgIFwib3B0aW9uc1wiOlxuICAgICAgICBcIm1heC1zaXplXCI6IFwiJHtET0NLRVJfTE9HX01BWF9TSVpFOi0yMG19XCJcbiAgICAgICAgXCJtYXgtZmlsZVwiOiBcIiR7RE9DS0VSX0xPR19NQVhfRklMRVM6LTV9XCJcbiAgXCJjb3JlXCI6XG4gICAgXCJpbWFnZVwiOiBcImdvaGFyYm9yL2hhcmJvci1jb3JlOnYyLjE1LjRAc2hhMjU2OjdkMmJhNTMwNGE3Mjk4ODdjZGVjN2NiMjIyYTgyYjUwMDI3ODQyM2RlMjMwYWU1MTUwYzM4NmE2YzMzMmIxMTJcIlxuICAgIFwicGxhdGZvcm1cIjogXCJsaW51eC9hbWQ2NFwiXG4gICAgXCJyZXN0YXJ0XCI6IFwidW5sZXNzLXN0b3BwZWRcIlxuICAgIFwibGFiZWxzXCI6XG4gICAgICBcImlvLmhhcmJvci1kb2twbG95Lmluc3RhbmNlXCI6IFwiJHtIQVJCT1JfSU5TVEFOQ0VfSUQ6P1NldCBIQVJCT1JfSU5TVEFOQ0VfSUQgaW4gRG9rcGxveSBFbnZpcm9ubWVudH1cIlxuICAgICAgXCJpby5oYXJib3ItZG9rcGxveS5yb2xlXCI6IFwid29ya2xvYWRcIlxuICAgICAgXCJ0cmFlZmlrLmVuYWJsZVwiOiBcImZhbHNlXCJcbiAgICBcImVudHJ5cG9pbnRcIjpcbiAgICAgIC0gXCIvYmluL3NoXCJcbiAgICAgIC0gXCIvZXRjL2NvcmUvbGF1bmNoLnNoXCJcbiAgICBcImNvbW1hbmRcIjogW11cbiAgICBcInZvbHVtZXNcIjpcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJjb25maWdcIlxuICAgICAgICBcInRhcmdldFwiOiBcIi9ldGMvY29yZVwiXG4gICAgICAgIFwicmVhZF9vbmx5XCI6IHRydWVcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgICAgICAgXCJzdWJwYXRoXCI6IFwiY29yZVwiXG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29udHJvbFwiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL3J1bi9oYXJib3ItY29udHJvbFwiXG4gICAgICAgIFwicmVhZF9vbmx5XCI6IHRydWVcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29uZmlnXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvaGFyYm9yX2N1c3RfY2VydFwiXG4gICAgICAgIFwicmVhZF9vbmx5XCI6IHRydWVcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgICAgICAgXCJzdWJwYXRoXCI6IFwic2hhcmVkL3RydXN0LWNlcnRpZmljYXRlc1wiXG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiZGF0YVwiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL2RhdGFcIlxuICAgICAgICBcInJlYWRfb25seVwiOiBmYWxzZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICBcImRlcGVuZHNfb25cIjpcbiAgICAgIFwiaGFyYm9yLWluaXRcIjpcbiAgICAgICAgXCJjb25kaXRpb25cIjogXCJzZXJ2aWNlX2NvbXBsZXRlZF9zdWNjZXNzZnVsbHlcIlxuICAgICAgXCJwb3N0Z3Jlc3FsXCI6XG4gICAgICAgIFwiY29uZGl0aW9uXCI6IFwic2VydmljZV9oZWFsdGh5XCJcbiAgICAgIFwicmVkaXNcIjpcbiAgICAgICAgXCJjb25kaXRpb25cIjogXCJzZXJ2aWNlX2hlYWx0aHlcIlxuICAgICAgXCJyZWdpc3RyeVwiOlxuICAgICAgICBcImNvbmRpdGlvblwiOiBcInNlcnZpY2VfaGVhbHRoeVwiXG4gICAgXCJjYXBfZHJvcFwiOlxuICAgICAgLSBcIkFMTFwiXG4gICAgXCJjYXBfYWRkXCI6XG4gICAgICAtIFwiQ0hPV05cIlxuICAgICAgLSBcIlNFVEdJRFwiXG4gICAgICAtIFwiU0VUVUlEXCJcbiAgICBcInNlY3VyaXR5X29wdFwiOlxuICAgICAgLSBcIm5vLW5ldy1wcml2aWxlZ2VzOnRydWVcIlxuICAgIFwibWVtX2xpbWl0XCI6IFwiJHtDT1JFX01FTU9SWV9MSU1JVDotMWd9XCJcbiAgICBcImNwdXNcIjogXCIke0NPUkVfQ1BVX0xJTUlUOi0xLjB9XCJcbiAgICBcInN0b3BfZ3JhY2VfcGVyaW9kXCI6IFwiMTIwc1wiXG4gICAgXCJoZWFsdGhjaGVja1wiOlxuICAgICAgXCJpbnRlcnZhbFwiOiBcIjE1c1wiXG4gICAgICBcInRpbWVvdXRcIjogXCIxMHNcIlxuICAgICAgXCJyZXRyaWVzXCI6IDEwXG4gICAgICBcInN0YXJ0X3BlcmlvZFwiOiBcIjYwc1wiXG4gICAgXCJsb2dnaW5nXCI6XG4gICAgICBcImRyaXZlclwiOiBcImxvY2FsXCJcbiAgICAgIFwib3B0aW9uc1wiOlxuICAgICAgICBcIm1heC1zaXplXCI6IFwiJHtET0NLRVJfTE9HX01BWF9TSVpFOi0yMG19XCJcbiAgICAgICAgXCJtYXgtZmlsZVwiOiBcIiR7RE9DS0VSX0xPR19NQVhfRklMRVM6LTV9XCJcbiAgXCJwb3N0Z3Jlc3FsXCI6XG4gICAgXCJpbWFnZVwiOiBcImdvaGFyYm9yL2hhcmJvci1kYjp2Mi4xNS40QHNoYTI1NjphMzJkNTFlNjM2ZDc2MzAzZTA4NmE3YzUyNTFhMmM4NDE1YzZmMTY1YjJmODdiYWZhOTE0ZWZkODY2YzU0MDNmXCJcbiAgICBcInBsYXRmb3JtXCI6IFwibGludXgvYW1kNjRcIlxuICAgIFwicmVzdGFydFwiOiBcInVubGVzcy1zdG9wcGVkXCJcbiAgICBcImxhYmVsc1wiOlxuICAgICAgXCJpby5oYXJib3ItZG9rcGxveS5pbnN0YW5jZVwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9XCJcbiAgICAgIFwiaW8uaGFyYm9yLWRva3Bsb3kucm9sZVwiOiBcIndvcmtsb2FkXCJcbiAgICAgIFwidHJhZWZpay5lbmFibGVcIjogXCJmYWxzZVwiXG4gICAgXCJlbnRyeXBvaW50XCI6XG4gICAgICAtIFwiL2Jpbi9zaFwiXG4gICAgICAtIFwiL3J1bi9oYXJib3ItY29uZmlnL2xhdW5jaC5zaFwiXG4gICAgXCJjb21tYW5kXCI6IFtdXG4gICAgXCJ2b2x1bWVzXCI6XG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29uZmlnXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvcnVuL2hhcmJvci1jb25maWdcIlxuICAgICAgICBcInJlYWRfb25seVwiOiB0cnVlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgICAgIFwic3VicGF0aFwiOiBcImRiXCJcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJjb250cm9sXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvcnVuL2hhcmJvci1jb250cm9sXCJcbiAgICAgICAgXCJyZWFkX29ubHlcIjogdHJ1ZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJjb25maWdcIlxuICAgICAgICBcInRhcmdldFwiOiBcIi9oYXJib3JfY3VzdF9jZXJ0XCJcbiAgICAgICAgXCJyZWFkX29ubHlcIjogdHJ1ZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICAgICAgICBcInN1YnBhdGhcIjogXCJzaGFyZWQvdHJ1c3QtY2VydGlmaWNhdGVzXCJcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJkYXRhYmFzZVwiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhXCJcbiAgICAgICAgXCJyZWFkX29ubHlcIjogZmFsc2VcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgXCJkZXBlbmRzX29uXCI6XG4gICAgICBcImhhcmJvci1pbml0XCI6XG4gICAgICAgIFwiY29uZGl0aW9uXCI6IFwic2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XCJcbiAgICBcImNhcF9kcm9wXCI6XG4gICAgICAtIFwiQUxMXCJcbiAgICBcImNhcF9hZGRcIjpcbiAgICAgIC0gXCJDSE9XTlwiXG4gICAgICAtIFwiU0VUR0lEXCJcbiAgICAgIC0gXCJTRVRVSURcIlxuICAgICAgLSBcIkRBQ19PVkVSUklERVwiXG4gICAgXCJzZWN1cml0eV9vcHRcIjpcbiAgICAgIC0gXCJuby1uZXctcHJpdmlsZWdlczp0cnVlXCJcbiAgICBcIm1lbV9saW1pdFwiOiBcIiR7UE9TVEdSRVNRTF9NRU1PUllfTElNSVQ6LTE1MzZtfVwiXG4gICAgXCJjcHVzXCI6IFwiJHtQT1NUR1JFU1FMX0NQVV9MSU1JVDotMS4wfVwiXG4gICAgXCJzdG9wX2dyYWNlX3BlcmlvZFwiOiBcIjEyMHNcIlxuICAgIFwiaGVhbHRoY2hlY2tcIjpcbiAgICAgIFwiaW50ZXJ2YWxcIjogXCIxNXNcIlxuICAgICAgXCJ0aW1lb3V0XCI6IFwiMTBzXCJcbiAgICAgIFwicmV0cmllc1wiOiAxMFxuICAgICAgXCJzdGFydF9wZXJpb2RcIjogXCIxMjBzXCJcbiAgICAgIFwidGVzdFwiOlxuICAgICAgICAtIFwiQ01EXCJcbiAgICAgICAgLSBcIi9iaW4vc2hcIlxuICAgICAgICAtIFwiL3J1bi9oYXJib3ItY29uZmlnL2hlYWx0aC5zaFwiXG4gICAgXCJsb2dnaW5nXCI6XG4gICAgICBcImRyaXZlclwiOiBcImxvY2FsXCJcbiAgICAgIFwib3B0aW9uc1wiOlxuICAgICAgICBcIm1heC1zaXplXCI6IFwiJHtET0NLRVJfTE9HX01BWF9TSVpFOi0yMG19XCJcbiAgICAgICAgXCJtYXgtZmlsZVwiOiBcIiR7RE9DS0VSX0xPR19NQVhfRklMRVM6LTV9XCJcbiAgICBcInNobV9zaXplXCI6IFwiMjU2bVwiXG4gICAgXCJlbnZpcm9ubWVudFwiOlxuICAgICAgXCJQT1NUR1JFU19NQVhfQ09OTkVDVElPTlNcIjogXCIke1BPU1RHUkVTX01BWF9DT05ORUNUSU9OUzotMjU2fVwiXG4gIFwicmVkaXNcIjpcbiAgICBcImltYWdlXCI6IFwiZ29oYXJib3IvdmFsa2V5LXBob3Rvbjp2Mi4xNS40QHNoYTI1NjpiYjAyMmU4ZjIzNmY1NmY1M2NlZTdiYjFmNjA5NTk1ZTQ5N2RhNjdkODI5MDQ4ZTBhZjIyODRmOTdlNmViNTRmXCJcbiAgICBcInBsYXRmb3JtXCI6IFwibGludXgvYW1kNjRcIlxuICAgIFwicmVzdGFydFwiOiBcInVubGVzcy1zdG9wcGVkXCJcbiAgICBcImxhYmVsc1wiOlxuICAgICAgXCJpby5oYXJib3ItZG9rcGxveS5pbnN0YW5jZVwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9XCJcbiAgICAgIFwiaW8uaGFyYm9yLWRva3Bsb3kucm9sZVwiOiBcIndvcmtsb2FkXCJcbiAgICAgIFwidHJhZWZpay5lbmFibGVcIjogXCJmYWxzZVwiXG4gICAgXCJlbnRyeXBvaW50XCI6XG4gICAgICAtIFwiL2Jpbi9zaFwiXG4gICAgICAtIFwiL3J1bi9oYXJib3ItY29uZmlnL2xhdW5jaC5zaFwiXG4gICAgXCJjb21tYW5kXCI6IFtdXG4gICAgXCJ2b2x1bWVzXCI6XG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29uZmlnXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvcnVuL2hhcmJvci1jb25maWdcIlxuICAgICAgICBcInJlYWRfb25seVwiOiB0cnVlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgICAgIFwic3VicGF0aFwiOiBcInJlZGlzXCJcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJjb250cm9sXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvcnVuL2hhcmJvci1jb250cm9sXCJcbiAgICAgICAgXCJyZWFkX29ubHlcIjogdHJ1ZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJjb25maWdcIlxuICAgICAgICBcInRhcmdldFwiOiBcIi9oYXJib3JfY3VzdF9jZXJ0XCJcbiAgICAgICAgXCJyZWFkX29ubHlcIjogdHJ1ZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICAgICAgICBcInN1YnBhdGhcIjogXCJzaGFyZWQvdHJ1c3QtY2VydGlmaWNhdGVzXCJcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJyZWRpc1wiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL3Zhci9saWIvcmVkaXNcIlxuICAgICAgICBcInJlYWRfb25seVwiOiBmYWxzZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICBcImRlcGVuZHNfb25cIjpcbiAgICAgIFwiaGFyYm9yLWluaXRcIjpcbiAgICAgICAgXCJjb25kaXRpb25cIjogXCJzZXJ2aWNlX2NvbXBsZXRlZF9zdWNjZXNzZnVsbHlcIlxuICAgIFwiY2FwX2Ryb3BcIjpcbiAgICAgIC0gXCJBTExcIlxuICAgIFwiY2FwX2FkZFwiOlxuICAgICAgLSBcIkNIT1dOXCJcbiAgICAgIC0gXCJTRVRHSURcIlxuICAgICAgLSBcIlNFVFVJRFwiXG4gICAgXCJzZWN1cml0eV9vcHRcIjpcbiAgICAgIC0gXCJuby1uZXctcHJpdmlsZWdlczp0cnVlXCJcbiAgICBcIm1lbV9saW1pdFwiOiBcIiR7UkVESVNfTUVNT1JZX0xJTUlUOi0yNTZtfVwiXG4gICAgXCJjcHVzXCI6IFwiJHtSRURJU19DUFVfTElNSVQ6LTEuMH1cIlxuICAgIFwic3RvcF9ncmFjZV9wZXJpb2RcIjogXCIxMjBzXCJcbiAgICBcImhlYWx0aGNoZWNrXCI6XG4gICAgICBcImludGVydmFsXCI6IFwiMTVzXCJcbiAgICAgIFwidGltZW91dFwiOiBcIjEwc1wiXG4gICAgICBcInJldHJpZXNcIjogMTBcbiAgICAgIFwic3RhcnRfcGVyaW9kXCI6IFwiNjBzXCJcbiAgICBcImxvZ2dpbmdcIjpcbiAgICAgIFwiZHJpdmVyXCI6IFwibG9jYWxcIlxuICAgICAgXCJvcHRpb25zXCI6XG4gICAgICAgIFwibWF4LXNpemVcIjogXCIke0RPQ0tFUl9MT0dfTUFYX1NJWkU6LTIwbX1cIlxuICAgICAgICBcIm1heC1maWxlXCI6IFwiJHtET0NLRVJfTE9HX01BWF9GSUxFUzotNX1cIlxuICBcInJlZ2lzdHJ5XCI6XG4gICAgXCJpbWFnZVwiOiBcImdvaGFyYm9yL3JlZ2lzdHJ5LXBob3Rvbjp2Mi4xNS40QHNoYTI1NjpkYzBjYjM4OGE2NDQ1YzY5YzhhMGM0MDY2NzkyOTBkMjk5MWM5Njk4ODMzZDllNmU4NmEyM2JkZmFmMmY4M2MzXCJcbiAgICBcInBsYXRmb3JtXCI6IFwibGludXgvYW1kNjRcIlxuICAgIFwicmVzdGFydFwiOiBcInVubGVzcy1zdG9wcGVkXCJcbiAgICBcImxhYmVsc1wiOlxuICAgICAgXCJpby5oYXJib3ItZG9rcGxveS5pbnN0YW5jZVwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9XCJcbiAgICAgIFwiaW8uaGFyYm9yLWRva3Bsb3kucm9sZVwiOiBcIndvcmtsb2FkXCJcbiAgICAgIFwidHJhZWZpay5lbmFibGVcIjogXCJmYWxzZVwiXG4gICAgXCJlbnRyeXBvaW50XCI6XG4gICAgICAtIFwiL2Jpbi9zaFwiXG4gICAgICAtIFwiL2V0Yy9yZWdpc3RyeS9sYXVuY2guc2hcIlxuICAgIFwiY29tbWFuZFwiOiBbXVxuICAgIFwidm9sdW1lc1wiOlxuICAgICAgLVxuICAgICAgICBcInR5cGVcIjogXCJ2b2x1bWVcIlxuICAgICAgICBcInNvdXJjZVwiOiBcImNvbmZpZ1wiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL2V0Yy9yZWdpc3RyeVwiXG4gICAgICAgIFwicmVhZF9vbmx5XCI6IHRydWVcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgICAgICAgXCJzdWJwYXRoXCI6IFwicmVnaXN0cnlcIlxuICAgICAgLVxuICAgICAgICBcInR5cGVcIjogXCJ2b2x1bWVcIlxuICAgICAgICBcInNvdXJjZVwiOiBcImNvbnRyb2xcIlxuICAgICAgICBcInRhcmdldFwiOiBcIi9ydW4vaGFyYm9yLWNvbnRyb2xcIlxuICAgICAgICBcInJlYWRfb25seVwiOiB0cnVlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgLVxuICAgICAgICBcInR5cGVcIjogXCJ2b2x1bWVcIlxuICAgICAgICBcInNvdXJjZVwiOiBcImNvbmZpZ1wiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL2hhcmJvcl9jdXN0X2NlcnRcIlxuICAgICAgICBcInJlYWRfb25seVwiOiB0cnVlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgICAgIFwic3VicGF0aFwiOiBcInNoYXJlZC90cnVzdC1jZXJ0aWZpY2F0ZXNcIlxuICAgICAgLVxuICAgICAgICBcInR5cGVcIjogXCJ2b2x1bWVcIlxuICAgICAgICBcInNvdXJjZVwiOiBcInJlZ2lzdHJ5XCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvc3RvcmFnZVwiXG4gICAgICAgIFwicmVhZF9vbmx5XCI6IGZhbHNlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgIFwiZGVwZW5kc19vblwiOlxuICAgICAgXCJoYXJib3ItaW5pdFwiOlxuICAgICAgICBcImNvbmRpdGlvblwiOiBcInNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseVwiXG4gICAgICBcInJlZGlzXCI6XG4gICAgICAgIFwiY29uZGl0aW9uXCI6IFwic2VydmljZV9oZWFsdGh5XCJcbiAgICBcImNhcF9kcm9wXCI6XG4gICAgICAtIFwiQUxMXCJcbiAgICBcImNhcF9hZGRcIjpcbiAgICAgIC0gXCJDSE9XTlwiXG4gICAgICAtIFwiU0VUR0lEXCJcbiAgICAgIC0gXCJTRVRVSURcIlxuICAgIFwic2VjdXJpdHlfb3B0XCI6XG4gICAgICAtIFwibm8tbmV3LXByaXZpbGVnZXM6dHJ1ZVwiXG4gICAgXCJtZW1fbGltaXRcIjogXCIke1JFR0lTVFJZX01FTU9SWV9MSU1JVDotNzY4bX1cIlxuICAgIFwiY3B1c1wiOiBcIiR7UkVHSVNUUllfQ1BVX0xJTUlUOi0xLjB9XCJcbiAgICBcInN0b3BfZ3JhY2VfcGVyaW9kXCI6IFwiMTIwc1wiXG4gICAgXCJoZWFsdGhjaGVja1wiOlxuICAgICAgXCJpbnRlcnZhbFwiOiBcIjE1c1wiXG4gICAgICBcInRpbWVvdXRcIjogXCIxMHNcIlxuICAgICAgXCJyZXRyaWVzXCI6IDEwXG4gICAgICBcInN0YXJ0X3BlcmlvZFwiOiBcIjYwc1wiXG4gICAgXCJsb2dnaW5nXCI6XG4gICAgICBcImRyaXZlclwiOiBcImxvY2FsXCJcbiAgICAgIFwib3B0aW9uc1wiOlxuICAgICAgICBcIm1heC1zaXplXCI6IFwiJHtET0NLRVJfTE9HX01BWF9TSVpFOi0yMG19XCJcbiAgICAgICAgXCJtYXgtZmlsZVwiOiBcIiR7RE9DS0VSX0xPR19NQVhfRklMRVM6LTV9XCJcbiAgXCJyZWdpc3RyeWN0bFwiOlxuICAgIFwiaW1hZ2VcIjogXCJnb2hhcmJvci9oYXJib3ItcmVnaXN0cnljdGw6djIuMTUuNEBzaGEyNTY6MzBiZDFhY2U0ZTNiYjM5MGQ3NWI4NDY3M2Y5OGRkYjRhNjlmY2M2ZDExNjkzMmVhNzY0MzkxZGYwMTk0M2ZiN1wiXG4gICAgXCJwbGF0Zm9ybVwiOiBcImxpbnV4L2FtZDY0XCJcbiAgICBcInJlc3RhcnRcIjogXCJ1bmxlc3Mtc3RvcHBlZFwiXG4gICAgXCJsYWJlbHNcIjpcbiAgICAgIFwiaW8uaGFyYm9yLWRva3Bsb3kuaW5zdGFuY2VcIjogXCIke0hBUkJPUl9JTlNUQU5DRV9JRDo/U2V0IEhBUkJPUl9JTlNUQU5DRV9JRCBpbiBEb2twbG95IEVudmlyb25tZW50fVwiXG4gICAgICBcImlvLmhhcmJvci1kb2twbG95LnJvbGVcIjogXCJ3b3JrbG9hZFwiXG4gICAgICBcInRyYWVmaWsuZW5hYmxlXCI6IFwiZmFsc2VcIlxuICAgIFwiZW50cnlwb2ludFwiOlxuICAgICAgLSBcIi9iaW4vc2hcIlxuICAgICAgLSBcIi9ldGMvcmVnaXN0cnljdGwvbGF1bmNoLnNoXCJcbiAgICBcImNvbW1hbmRcIjogW11cbiAgICBcInZvbHVtZXNcIjpcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJjb25maWdcIlxuICAgICAgICBcInRhcmdldFwiOiBcIi9ldGMvcmVnaXN0cnljdGxcIlxuICAgICAgICBcInJlYWRfb25seVwiOiB0cnVlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgICAgIFwic3VicGF0aFwiOiBcInJlZ2lzdHJ5Y3RsXCJcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJjb250cm9sXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvcnVuL2hhcmJvci1jb250cm9sXCJcbiAgICAgICAgXCJyZWFkX29ubHlcIjogdHJ1ZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJjb25maWdcIlxuICAgICAgICBcInRhcmdldFwiOiBcIi9oYXJib3JfY3VzdF9jZXJ0XCJcbiAgICAgICAgXCJyZWFkX29ubHlcIjogdHJ1ZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICAgICAgICBcInN1YnBhdGhcIjogXCJzaGFyZWQvdHJ1c3QtY2VydGlmaWNhdGVzXCJcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJyZWdpc3RyeVwiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL3N0b3JhZ2VcIlxuICAgICAgICBcInJlYWRfb25seVwiOiBmYWxzZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICAgIC1cbiAgICAgICAgXCJ0eXBlXCI6IFwidm9sdW1lXCJcbiAgICAgICAgXCJzb3VyY2VcIjogXCJjb25maWdcIlxuICAgICAgICBcInRhcmdldFwiOiBcIi9ldGMvcmVnaXN0cnlcIlxuICAgICAgICBcInJlYWRfb25seVwiOiB0cnVlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgICAgIFwic3VicGF0aFwiOiBcInJlZ2lzdHJ5XCJcbiAgICBcImRlcGVuZHNfb25cIjpcbiAgICAgIFwiaGFyYm9yLWluaXRcIjpcbiAgICAgICAgXCJjb25kaXRpb25cIjogXCJzZXJ2aWNlX2NvbXBsZXRlZF9zdWNjZXNzZnVsbHlcIlxuICAgICAgXCJyZWdpc3RyeVwiOlxuICAgICAgICBcImNvbmRpdGlvblwiOiBcInNlcnZpY2VfaGVhbHRoeVwiXG4gICAgXCJjYXBfZHJvcFwiOlxuICAgICAgLSBcIkFMTFwiXG4gICAgXCJjYXBfYWRkXCI6XG4gICAgICAtIFwiQ0hPV05cIlxuICAgICAgLSBcIlNFVEdJRFwiXG4gICAgICAtIFwiU0VUVUlEXCJcbiAgICBcInNlY3VyaXR5X29wdFwiOlxuICAgICAgLSBcIm5vLW5ldy1wcml2aWxlZ2VzOnRydWVcIlxuICAgIFwibWVtX2xpbWl0XCI6IFwiJHtSRUdJU1RSWUNUTF9NRU1PUllfTElNSVQ6LTEyOG19XCJcbiAgICBcImNwdXNcIjogXCIke1JFR0lTVFJZQ1RMX0NQVV9MSU1JVDotMS4wfVwiXG4gICAgXCJzdG9wX2dyYWNlX3BlcmlvZFwiOiBcIjEyMHNcIlxuICAgIFwiaGVhbHRoY2hlY2tcIjpcbiAgICAgIFwiaW50ZXJ2YWxcIjogXCIxNXNcIlxuICAgICAgXCJ0aW1lb3V0XCI6IFwiMTBzXCJcbiAgICAgIFwicmV0cmllc1wiOiAxMFxuICAgICAgXCJzdGFydF9wZXJpb2RcIjogXCI2MHNcIlxuICAgIFwibG9nZ2luZ1wiOlxuICAgICAgXCJkcml2ZXJcIjogXCJsb2NhbFwiXG4gICAgICBcIm9wdGlvbnNcIjpcbiAgICAgICAgXCJtYXgtc2l6ZVwiOiBcIiR7RE9DS0VSX0xPR19NQVhfU0laRTotMjBtfVwiXG4gICAgICAgIFwibWF4LWZpbGVcIjogXCIke0RPQ0tFUl9MT0dfTUFYX0ZJTEVTOi01fVwiXG4gIFwiam9ic2VydmljZVwiOlxuICAgIFwiaW1hZ2VcIjogXCJnb2hhcmJvci9oYXJib3Itam9ic2VydmljZTp2Mi4xNS40QHNoYTI1NjpmMTQzNTc4ZWYzMGUyYmU1YzQ4ODczMjk4MjU3ZWQwZmNhMzE1NDUwMjU5NThjNTM0ZTUzNmEwNjc2NWQyYjgyXCJcbiAgICBcInBsYXRmb3JtXCI6IFwibGludXgvYW1kNjRcIlxuICAgIFwicmVzdGFydFwiOiBcInVubGVzcy1zdG9wcGVkXCJcbiAgICBcImxhYmVsc1wiOlxuICAgICAgXCJpby5oYXJib3ItZG9rcGxveS5pbnN0YW5jZVwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9XCJcbiAgICAgIFwiaW8uaGFyYm9yLWRva3Bsb3kucm9sZVwiOiBcIndvcmtsb2FkXCJcbiAgICAgIFwidHJhZWZpay5lbmFibGVcIjogXCJmYWxzZVwiXG4gICAgXCJlbnRyeXBvaW50XCI6XG4gICAgICAtIFwiL2Jpbi9zaFwiXG4gICAgICAtIFwiL2V0Yy9qb2JzZXJ2aWNlL2xhdW5jaC5zaFwiXG4gICAgXCJjb21tYW5kXCI6IFtdXG4gICAgXCJ2b2x1bWVzXCI6XG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29uZmlnXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvZXRjL2pvYnNlcnZpY2VcIlxuICAgICAgICBcInJlYWRfb25seVwiOiB0cnVlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgICAgIFwic3VicGF0aFwiOiBcImpvYnNlcnZpY2VcIlxuICAgICAgLVxuICAgICAgICBcInR5cGVcIjogXCJ2b2x1bWVcIlxuICAgICAgICBcInNvdXJjZVwiOiBcImNvbnRyb2xcIlxuICAgICAgICBcInRhcmdldFwiOiBcIi9ydW4vaGFyYm9yLWNvbnRyb2xcIlxuICAgICAgICBcInJlYWRfb25seVwiOiB0cnVlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgLVxuICAgICAgICBcInR5cGVcIjogXCJ2b2x1bWVcIlxuICAgICAgICBcInNvdXJjZVwiOiBcImNvbmZpZ1wiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL2hhcmJvcl9jdXN0X2NlcnRcIlxuICAgICAgICBcInJlYWRfb25seVwiOiB0cnVlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgICAgIFwic3VicGF0aFwiOiBcInNoYXJlZC90cnVzdC1jZXJ0aWZpY2F0ZXNcIlxuICAgICAgLVxuICAgICAgICBcInR5cGVcIjogXCJ2b2x1bWVcIlxuICAgICAgICBcInNvdXJjZVwiOiBcImpvYnNcIlxuICAgICAgICBcInRhcmdldFwiOiBcIi92YXIvbG9nL2pvYnNcIlxuICAgICAgICBcInJlYWRfb25seVwiOiBmYWxzZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICBcImRlcGVuZHNfb25cIjpcbiAgICAgIFwiaGFyYm9yLWluaXRcIjpcbiAgICAgICAgXCJjb25kaXRpb25cIjogXCJzZXJ2aWNlX2NvbXBsZXRlZF9zdWNjZXNzZnVsbHlcIlxuICAgICAgXCJjb3JlXCI6XG4gICAgICAgIFwiY29uZGl0aW9uXCI6IFwic2VydmljZV9oZWFsdGh5XCJcbiAgICAgIFwicmVkaXNcIjpcbiAgICAgICAgXCJjb25kaXRpb25cIjogXCJzZXJ2aWNlX2hlYWx0aHlcIlxuICAgIFwiY2FwX2Ryb3BcIjpcbiAgICAgIC0gXCJBTExcIlxuICAgIFwiY2FwX2FkZFwiOlxuICAgICAgLSBcIkNIT1dOXCJcbiAgICAgIC0gXCJTRVRHSURcIlxuICAgICAgLSBcIlNFVFVJRFwiXG4gICAgXCJzZWN1cml0eV9vcHRcIjpcbiAgICAgIC0gXCJuby1uZXctcHJpdmlsZWdlczp0cnVlXCJcbiAgICBcIm1lbV9saW1pdFwiOiBcIiR7Sk9CU0VSVklDRV9NRU1PUllfTElNSVQ6LTUxMm19XCJcbiAgICBcImNwdXNcIjogXCIke0pPQlNFUlZJQ0VfQ1BVX0xJTUlUOi0xLjB9XCJcbiAgICBcInN0b3BfZ3JhY2VfcGVyaW9kXCI6IFwiMTIwc1wiXG4gICAgXCJoZWFsdGhjaGVja1wiOlxuICAgICAgXCJpbnRlcnZhbFwiOiBcIjE1c1wiXG4gICAgICBcInRpbWVvdXRcIjogXCIxMHNcIlxuICAgICAgXCJyZXRyaWVzXCI6IDEwXG4gICAgICBcInN0YXJ0X3BlcmlvZFwiOiBcIjYwc1wiXG4gICAgXCJsb2dnaW5nXCI6XG4gICAgICBcImRyaXZlclwiOiBcImxvY2FsXCJcbiAgICAgIFwib3B0aW9uc1wiOlxuICAgICAgICBcIm1heC1zaXplXCI6IFwiJHtET0NLRVJfTE9HX01BWF9TSVpFOi0yMG19XCJcbiAgICAgICAgXCJtYXgtZmlsZVwiOiBcIiR7RE9DS0VSX0xPR19NQVhfRklMRVM6LTV9XCJcbiAgXCJwb3J0YWxcIjpcbiAgICBcImltYWdlXCI6IFwiZ29oYXJib3IvaGFyYm9yLXBvcnRhbDp2Mi4xNS40QHNoYTI1NjowMWVkZjQ3ODUwNWIyMWRiYTIzYTgzYzA5NWY2ZWNhYzBjMWU3MDU2OTAwOTNlZGJhYjQxZTlhNGQ2NzU0YTc1XCJcbiAgICBcInBsYXRmb3JtXCI6IFwibGludXgvYW1kNjRcIlxuICAgIFwicmVzdGFydFwiOiBcInVubGVzcy1zdG9wcGVkXCJcbiAgICBcImxhYmVsc1wiOlxuICAgICAgXCJpby5oYXJib3ItZG9rcGxveS5pbnN0YW5jZVwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9XCJcbiAgICAgIFwiaW8uaGFyYm9yLWRva3Bsb3kucm9sZVwiOiBcIndvcmtsb2FkXCJcbiAgICAgIFwidHJhZWZpay5lbmFibGVcIjogXCJmYWxzZVwiXG4gICAgXCJlbnRyeXBvaW50XCI6XG4gICAgICAtIFwiL2Jpbi9zaFwiXG4gICAgICAtIFwiL3J1bi9oYXJib3ItY29uZmlnL2xhdW5jaC5zaFwiXG4gICAgXCJjb21tYW5kXCI6IFtdXG4gICAgXCJ2b2x1bWVzXCI6XG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29uZmlnXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvcnVuL2hhcmJvci1jb25maWdcIlxuICAgICAgICBcInJlYWRfb25seVwiOiB0cnVlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgICAgIFwic3VicGF0aFwiOiBcInBvcnRhbFwiXG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29udHJvbFwiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL3J1bi9oYXJib3ItY29udHJvbFwiXG4gICAgICAgIFwicmVhZF9vbmx5XCI6IHRydWVcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29uZmlnXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvaGFyYm9yX2N1c3RfY2VydFwiXG4gICAgICAgIFwicmVhZF9vbmx5XCI6IHRydWVcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgICAgICAgXCJzdWJwYXRoXCI6IFwic2hhcmVkL3RydXN0LWNlcnRpZmljYXRlc1wiXG4gICAgXCJkZXBlbmRzX29uXCI6XG4gICAgICBcImhhcmJvci1pbml0XCI6XG4gICAgICAgIFwiY29uZGl0aW9uXCI6IFwic2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XCJcbiAgICBcImNhcF9kcm9wXCI6XG4gICAgICAtIFwiQUxMXCJcbiAgICBcImNhcF9hZGRcIjpcbiAgICAgIC0gXCJDSE9XTlwiXG4gICAgICAtIFwiU0VUR0lEXCJcbiAgICAgIC0gXCJTRVRVSURcIlxuICAgIFwic2VjdXJpdHlfb3B0XCI6XG4gICAgICAtIFwibm8tbmV3LXByaXZpbGVnZXM6dHJ1ZVwiXG4gICAgXCJtZW1fbGltaXRcIjogXCIke1BPUlRBTF9NRU1PUllfTElNSVQ6LTEyOG19XCJcbiAgICBcImNwdXNcIjogXCIke1BPUlRBTF9DUFVfTElNSVQ6LTEuMH1cIlxuICAgIFwic3RvcF9ncmFjZV9wZXJpb2RcIjogXCIxMjBzXCJcbiAgICBcImhlYWx0aGNoZWNrXCI6XG4gICAgICBcImludGVydmFsXCI6IFwiMTVzXCJcbiAgICAgIFwidGltZW91dFwiOiBcIjEwc1wiXG4gICAgICBcInJldHJpZXNcIjogMTBcbiAgICAgIFwic3RhcnRfcGVyaW9kXCI6IFwiNjBzXCJcbiAgICBcImxvZ2dpbmdcIjpcbiAgICAgIFwiZHJpdmVyXCI6IFwibG9jYWxcIlxuICAgICAgXCJvcHRpb25zXCI6XG4gICAgICAgIFwibWF4LXNpemVcIjogXCIke0RPQ0tFUl9MT0dfTUFYX1NJWkU6LTIwbX1cIlxuICAgICAgICBcIm1heC1maWxlXCI6IFwiJHtET0NLRVJfTE9HX01BWF9GSUxFUzotNX1cIlxuICBcInByb3h5XCI6XG4gICAgXCJpbWFnZVwiOiBcImdvaGFyYm9yL25naW54LXBob3Rvbjp2Mi4xNS40QHNoYTI1Njo3ZWZmMDI4N2Q1YWQwZjM1NzU0ZTE2MmM4NDgxY2VkMDRiYmRlMTA3MTUzY2U1ODZjZWZiMTVlZTc0ZmExMzExXCJcbiAgICBcInBsYXRmb3JtXCI6IFwibGludXgvYW1kNjRcIlxuICAgIFwicmVzdGFydFwiOiBcInVubGVzcy1zdG9wcGVkXCJcbiAgICBcImxhYmVsc1wiOlxuICAgICAgXCJpby5oYXJib3ItZG9rcGxveS5pbnN0YW5jZVwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9XCJcbiAgICAgIFwiaW8uaGFyYm9yLWRva3Bsb3kucm9sZVwiOiBcIndvcmtsb2FkXCJcbiAgICAgIFwidHJhZWZpay5lbmFibGVcIjogXCJ0cnVlXCJcbiAgICBcImVudHJ5cG9pbnRcIjpcbiAgICAgIC0gXCIvYmluL3NoXCJcbiAgICAgIC0gXCIvZXRjL25naW54L2xhdW5jaC5zaFwiXG4gICAgXCJjb21tYW5kXCI6IFtdXG4gICAgXCJ2b2x1bWVzXCI6XG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29uZmlnXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvZXRjL25naW54XCJcbiAgICAgICAgXCJyZWFkX29ubHlcIjogdHJ1ZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICAgICAgICBcInN1YnBhdGhcIjogXCJuZ2lueFwiXG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29udHJvbFwiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL3J1bi9oYXJib3ItY29udHJvbFwiXG4gICAgICAgIFwicmVhZF9vbmx5XCI6IHRydWVcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29uZmlnXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvaGFyYm9yX2N1c3RfY2VydFwiXG4gICAgICAgIFwicmVhZF9vbmx5XCI6IHRydWVcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgICAgICAgXCJzdWJwYXRoXCI6IFwic2hhcmVkL3RydXN0LWNlcnRpZmljYXRlc1wiXG4gICAgXCJkZXBlbmRzX29uXCI6XG4gICAgICBcImhhcmJvci1pbml0XCI6XG4gICAgICAgIFwiY29uZGl0aW9uXCI6IFwic2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XCJcbiAgICAgIFwiY29yZVwiOlxuICAgICAgICBcImNvbmRpdGlvblwiOiBcInNlcnZpY2VfaGVhbHRoeVwiXG4gICAgICBcInBvcnRhbFwiOlxuICAgICAgICBcImNvbmRpdGlvblwiOiBcInNlcnZpY2VfaGVhbHRoeVwiXG4gICAgICBcInJlZ2lzdHJ5XCI6XG4gICAgICAgIFwiY29uZGl0aW9uXCI6IFwic2VydmljZV9oZWFsdGh5XCJcbiAgICAgIFwiZXhwb3J0ZXJcIjpcbiAgICAgICAgXCJjb25kaXRpb25cIjogXCJzZXJ2aWNlX2hlYWx0aHlcIlxuICAgIFwiY2FwX2Ryb3BcIjpcbiAgICAgIC0gXCJBTExcIlxuICAgIFwiY2FwX2FkZFwiOlxuICAgICAgLSBcIkNIT1dOXCJcbiAgICAgIC0gXCJTRVRHSURcIlxuICAgICAgLSBcIlNFVFVJRFwiXG4gICAgXCJzZWN1cml0eV9vcHRcIjpcbiAgICAgIC0gXCJuby1uZXctcHJpdmlsZWdlczp0cnVlXCJcbiAgICBcIm1lbV9saW1pdFwiOiBcIiR7UFJPWFlfTUVNT1JZX0xJTUlUOi0yNTZtfVwiXG4gICAgXCJjcHVzXCI6IFwiJHtQUk9YWV9DUFVfTElNSVQ6LTEuMH1cIlxuICAgIFwic3RvcF9ncmFjZV9wZXJpb2RcIjogXCIxMjBzXCJcbiAgICBcImhlYWx0aGNoZWNrXCI6XG4gICAgICBcImludGVydmFsXCI6IFwiMTVzXCJcbiAgICAgIFwidGltZW91dFwiOiBcIjEwc1wiXG4gICAgICBcInJldHJpZXNcIjogMTBcbiAgICAgIFwic3RhcnRfcGVyaW9kXCI6IFwiNjBzXCJcbiAgICBcImxvZ2dpbmdcIjpcbiAgICAgIFwiZHJpdmVyXCI6IFwibG9jYWxcIlxuICAgICAgXCJvcHRpb25zXCI6XG4gICAgICAgIFwibWF4LXNpemVcIjogXCIke0RPQ0tFUl9MT0dfTUFYX1NJWkU6LTIwbX1cIlxuICAgICAgICBcIm1heC1maWxlXCI6IFwiJHtET0NLRVJfTE9HX01BWF9GSUxFUzotNX1cIlxuICAgIFwiZXhwb3NlXCI6XG4gICAgICAtIFwiODA4MFwiXG4gIFwidHJpdnktYWRhcHRlclwiOlxuICAgIFwiaW1hZ2VcIjogXCJnb2hhcmJvci90cml2eS1hZGFwdGVyLXBob3Rvbjp2Mi4xNS40QHNoYTI1Njo4MTNjYTgxYjRhNGVhMGY0NGY1ZmE4MWNjYTI2NDVlZWI1OGQ0YjFmNmM2NmI0MjhkZjlkNTA2MTc0YmI3MWQ5XCJcbiAgICBcInBsYXRmb3JtXCI6IFwibGludXgvYW1kNjRcIlxuICAgIFwicmVzdGFydFwiOiBcInVubGVzcy1zdG9wcGVkXCJcbiAgICBcImxhYmVsc1wiOlxuICAgICAgXCJpby5oYXJib3ItZG9rcGxveS5pbnN0YW5jZVwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9XCJcbiAgICAgIFwiaW8uaGFyYm9yLWRva3Bsb3kucm9sZVwiOiBcIndvcmtsb2FkXCJcbiAgICAgIFwidHJhZWZpay5lbmFibGVcIjogXCJmYWxzZVwiXG4gICAgXCJlbnRyeXBvaW50XCI6XG4gICAgICAtIFwiL2Jpbi9zaFwiXG4gICAgICAtIFwiL3J1bi9oYXJib3ItY29uZmlnL2xhdW5jaC5zaFwiXG4gICAgXCJjb21tYW5kXCI6IFtdXG4gICAgXCJ2b2x1bWVzXCI6XG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29uZmlnXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvcnVuL2hhcmJvci1jb25maWdcIlxuICAgICAgICBcInJlYWRfb25seVwiOiB0cnVlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgICAgIFwic3VicGF0aFwiOiBcInRyaXZ5LWFkYXB0ZXJcIlxuICAgICAgLVxuICAgICAgICBcInR5cGVcIjogXCJ2b2x1bWVcIlxuICAgICAgICBcInNvdXJjZVwiOiBcImNvbnRyb2xcIlxuICAgICAgICBcInRhcmdldFwiOiBcIi9ydW4vaGFyYm9yLWNvbnRyb2xcIlxuICAgICAgICBcInJlYWRfb25seVwiOiB0cnVlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgLVxuICAgICAgICBcInR5cGVcIjogXCJ2b2x1bWVcIlxuICAgICAgICBcInNvdXJjZVwiOiBcImNvbmZpZ1wiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL2hhcmJvcl9jdXN0X2NlcnRcIlxuICAgICAgICBcInJlYWRfb25seVwiOiB0cnVlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgICAgIFwic3VicGF0aFwiOiBcInNoYXJlZC90cnVzdC1jZXJ0aWZpY2F0ZXNcIlxuICAgICAgLVxuICAgICAgICBcInR5cGVcIjogXCJ2b2x1bWVcIlxuICAgICAgICBcInNvdXJjZVwiOiBcInRyaXZ5LWNhY2hlXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvaG9tZS9zY2FubmVyLy5jYWNoZS90cml2eVwiXG4gICAgICAgIFwicmVhZF9vbmx5XCI6IGZhbHNlXG4gICAgICAgIFwidm9sdW1lXCI6XG4gICAgICAgICAgXCJub2NvcHlcIjogdHJ1ZVxuICAgICAgLVxuICAgICAgICBcInR5cGVcIjogXCJ2b2x1bWVcIlxuICAgICAgICBcInNvdXJjZVwiOiBcInRyaXZ5LXJlcG9ydHNcIlxuICAgICAgICBcInRhcmdldFwiOiBcIi9ob21lL3NjYW5uZXIvLmNhY2hlL3JlcG9ydHNcIlxuICAgICAgICBcInJlYWRfb25seVwiOiBmYWxzZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICBcImRlcGVuZHNfb25cIjpcbiAgICAgIFwiaGFyYm9yLWluaXRcIjpcbiAgICAgICAgXCJjb25kaXRpb25cIjogXCJzZXJ2aWNlX2NvbXBsZXRlZF9zdWNjZXNzZnVsbHlcIlxuICAgICAgXCJyZWRpc1wiOlxuICAgICAgICBcImNvbmRpdGlvblwiOiBcInNlcnZpY2VfaGVhbHRoeVwiXG4gICAgXCJjYXBfZHJvcFwiOlxuICAgICAgLSBcIkFMTFwiXG4gICAgXCJjYXBfYWRkXCI6XG4gICAgICAtIFwiQ0hPV05cIlxuICAgICAgLSBcIlNFVEdJRFwiXG4gICAgICAtIFwiU0VUVUlEXCJcbiAgICBcInNlY3VyaXR5X29wdFwiOlxuICAgICAgLSBcIm5vLW5ldy1wcml2aWxlZ2VzOnRydWVcIlxuICAgIFwibWVtX2xpbWl0XCI6IFwiJHtUUklWWV9BREFQVEVSX01FTU9SWV9MSU1JVDotMTUzNm19XCJcbiAgICBcImNwdXNcIjogXCIke1RSSVZZX0FEQVBURVJfQ1BVX0xJTUlUOi0yLjB9XCJcbiAgICBcInN0b3BfZ3JhY2VfcGVyaW9kXCI6IFwiMTIwc1wiXG4gICAgXCJoZWFsdGhjaGVja1wiOlxuICAgICAgXCJpbnRlcnZhbFwiOiBcIjE1c1wiXG4gICAgICBcInRpbWVvdXRcIjogXCIxMHNcIlxuICAgICAgXCJyZXRyaWVzXCI6IDEwXG4gICAgICBcInN0YXJ0X3BlcmlvZFwiOiBcIjYwc1wiXG4gICAgXCJsb2dnaW5nXCI6XG4gICAgICBcImRyaXZlclwiOiBcImxvY2FsXCJcbiAgICAgIFwib3B0aW9uc1wiOlxuICAgICAgICBcIm1heC1zaXplXCI6IFwiJHtET0NLRVJfTE9HX01BWF9TSVpFOi0yMG19XCJcbiAgICAgICAgXCJtYXgtZmlsZVwiOiBcIiR7RE9DS0VSX0xPR19NQVhfRklMRVM6LTV9XCJcbiAgXCJleHBvcnRlclwiOlxuICAgIFwiaW1hZ2VcIjogXCJnb2hhcmJvci9oYXJib3ItZXhwb3J0ZXI6djIuMTUuNEBzaGEyNTY6OWZmZWRlMzNkYzUxOWI0YmUwMzU1OTZhNzJmMDBmMzU0NzU0YTIyYTM3NjkwNzc3MzFmODFlZTdkNjg1MmY0ZlwiXG4gICAgXCJwbGF0Zm9ybVwiOiBcImxpbnV4L2FtZDY0XCJcbiAgICBcInJlc3RhcnRcIjogXCJ1bmxlc3Mtc3RvcHBlZFwiXG4gICAgXCJsYWJlbHNcIjpcbiAgICAgIFwiaW8uaGFyYm9yLWRva3Bsb3kuaW5zdGFuY2VcIjogXCIke0hBUkJPUl9JTlNUQU5DRV9JRDo/U2V0IEhBUkJPUl9JTlNUQU5DRV9JRCBpbiBEb2twbG95IEVudmlyb25tZW50fVwiXG4gICAgICBcImlvLmhhcmJvci1kb2twbG95LnJvbGVcIjogXCJ3b3JrbG9hZFwiXG4gICAgICBcInRyYWVmaWsuZW5hYmxlXCI6IFwiZmFsc2VcIlxuICAgIFwiZW50cnlwb2ludFwiOlxuICAgICAgLSBcIi9iaW4vc2hcIlxuICAgICAgLSBcIi9ydW4vaGFyYm9yLWNvbmZpZy9sYXVuY2guc2hcIlxuICAgIFwiY29tbWFuZFwiOiBbXVxuICAgIFwidm9sdW1lc1wiOlxuICAgICAgLVxuICAgICAgICBcInR5cGVcIjogXCJ2b2x1bWVcIlxuICAgICAgICBcInNvdXJjZVwiOiBcImNvbmZpZ1wiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL3J1bi9oYXJib3ItY29uZmlnXCJcbiAgICAgICAgXCJyZWFkX29ubHlcIjogdHJ1ZVxuICAgICAgICBcInZvbHVtZVwiOlxuICAgICAgICAgIFwibm9jb3B5XCI6IHRydWVcbiAgICAgICAgICBcInN1YnBhdGhcIjogXCJleHBvcnRlclwiXG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29udHJvbFwiXG4gICAgICAgIFwidGFyZ2V0XCI6IFwiL3J1bi9oYXJib3ItY29udHJvbFwiXG4gICAgICAgIFwicmVhZF9vbmx5XCI6IHRydWVcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgICAtXG4gICAgICAgIFwidHlwZVwiOiBcInZvbHVtZVwiXG4gICAgICAgIFwic291cmNlXCI6IFwiY29uZmlnXCJcbiAgICAgICAgXCJ0YXJnZXRcIjogXCIvaGFyYm9yX2N1c3RfY2VydFwiXG4gICAgICAgIFwicmVhZF9vbmx5XCI6IHRydWVcbiAgICAgICAgXCJ2b2x1bWVcIjpcbiAgICAgICAgICBcIm5vY29weVwiOiB0cnVlXG4gICAgICAgICAgXCJzdWJwYXRoXCI6IFwic2hhcmVkL3RydXN0LWNlcnRpZmljYXRlc1wiXG4gICAgXCJkZXBlbmRzX29uXCI6XG4gICAgICBcImhhcmJvci1pbml0XCI6XG4gICAgICAgIFwiY29uZGl0aW9uXCI6IFwic2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XCJcbiAgICAgIFwiY29yZVwiOlxuICAgICAgICBcImNvbmRpdGlvblwiOiBcInNlcnZpY2VfaGVhbHRoeVwiXG4gICAgICBcInBvc3RncmVzcWxcIjpcbiAgICAgICAgXCJjb25kaXRpb25cIjogXCJzZXJ2aWNlX2hlYWx0aHlcIlxuICAgICAgXCJyZWRpc1wiOlxuICAgICAgICBcImNvbmRpdGlvblwiOiBcInNlcnZpY2VfaGVhbHRoeVwiXG4gICAgXCJjYXBfZHJvcFwiOlxuICAgICAgLSBcIkFMTFwiXG4gICAgXCJjYXBfYWRkXCI6XG4gICAgICAtIFwiQ0hPV05cIlxuICAgICAgLSBcIlNFVEdJRFwiXG4gICAgICAtIFwiU0VUVUlEXCJcbiAgICBcInNlY3VyaXR5X29wdFwiOlxuICAgICAgLSBcIm5vLW5ldy1wcml2aWxlZ2VzOnRydWVcIlxuICAgIFwibWVtX2xpbWl0XCI6IFwiJHtFWFBPUlRFUl9NRU1PUllfTElNSVQ6LTEyOG19XCJcbiAgICBcImNwdXNcIjogXCIke0VYUE9SVEVSX0NQVV9MSU1JVDotMS4wfVwiXG4gICAgXCJzdG9wX2dyYWNlX3BlcmlvZFwiOiBcIjEyMHNcIlxuICAgIFwiaGVhbHRoY2hlY2tcIjpcbiAgICAgIFwiaW50ZXJ2YWxcIjogXCIxNXNcIlxuICAgICAgXCJ0aW1lb3V0XCI6IFwiMTBzXCJcbiAgICAgIFwicmV0cmllc1wiOiAxMFxuICAgICAgXCJzdGFydF9wZXJpb2RcIjogXCI2MHNcIlxuICAgICAgXCJ0ZXN0XCI6XG4gICAgICAgIC0gXCJDTUQtU0hFTExcIlxuICAgICAgICAtIFwiY3VybCAtLWZhaWwgLXMgaHR0cDovL2xvY2FsaG9zdDo4MDgwL21ldHJpY3MgPi9kZXYvbnVsbFwiXG4gICAgXCJsb2dnaW5nXCI6XG4gICAgICBcImRyaXZlclwiOiBcImxvY2FsXCJcbiAgICAgIFwib3B0aW9uc1wiOlxuICAgICAgICBcIm1heC1zaXplXCI6IFwiJHtET0NLRVJfTE9HX01BWF9TSVpFOi0yMG19XCJcbiAgICAgICAgXCJtYXgtZmlsZVwiOiBcIiR7RE9DS0VSX0xPR19NQVhfRklMRVM6LTV9XCJcblwidm9sdW1lc1wiOlxuICBcImRhdGFcIjpcbiAgICBcIm5hbWVcIjogXCIke0hBUkJPUl9JTlNUQU5DRV9JRDo/U2V0IEhBUkJPUl9JTlNUQU5DRV9JRCBpbiBEb2twbG95IEVudmlyb25tZW50fS1kYXRhXCJcbiAgXCJkYXRhYmFzZVwiOlxuICAgIFwibmFtZVwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9LWRhdGFiYXNlXCJcbiAgXCJyZWdpc3RyeVwiOlxuICAgIFwibmFtZVwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9LXJlZ2lzdHJ5XCJcbiAgXCJyZWRpc1wiOlxuICAgIFwibmFtZVwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9LXJlZGlzXCJcbiAgXCJqb2JzXCI6XG4gICAgXCJuYW1lXCI6IFwiJHtIQVJCT1JfSU5TVEFOQ0VfSUQ6P1NldCBIQVJCT1JfSU5TVEFOQ0VfSUQgaW4gRG9rcGxveSBFbnZpcm9ubWVudH0tam9ic1wiXG4gIFwiY29uZmlnXCI6XG4gICAgXCJuYW1lXCI6IFwiJHtIQVJCT1JfSU5TVEFOQ0VfSUQ6P1NldCBIQVJCT1JfSU5TVEFOQ0VfSUQgaW4gRG9rcGxveSBFbnZpcm9ubWVudH0tY29uZmlnXCJcbiAgXCJ0cml2eS1jYWNoZVwiOlxuICAgIFwibmFtZVwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9LXRyaXZ5LWNhY2hlXCJcbiAgXCJ0cml2eS1yZXBvcnRzXCI6XG4gICAgXCJuYW1lXCI6IFwiJHtIQVJCT1JfSU5TVEFOQ0VfSUQ6P1NldCBIQVJCT1JfSU5TVEFOQ0VfSUQgaW4gRG9rcGxveSBFbnZpcm9ubWVudH0tdHJpdnktcmVwb3J0c1wiXG4gIFwiY29udHJvbFwiOlxuICAgIFwibmFtZVwiOiBcIiR7SEFSQk9SX0lOU1RBTkNFX0lEOj9TZXQgSEFSQk9SX0lOU1RBTkNFX0lEIGluIERva3Bsb3kgRW52aXJvbm1lbnR9LWNvbnRyb2xcIiIsCiAgImNvbmZpZyI6ICJbdmFyaWFibGVzXVxubWFpbl9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5pbnN0YW5jZV9pZCA9IFwiaGFyYm9yLSR7dXVpZH1cIlxuYWRtaW5fcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6MzJ9XCJcbmRiX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjMyfVwiXG5cbltjb25maWddXG5lbnYgPSBbXG4gIFwiSEFSQk9SX0lOU1RBTkNFX0lEPSR7aW5zdGFuY2VfaWR9XCIsXG4gIFwiSEFSQk9SX0hPU1ROQU1FPSR7bWFpbl9kb21haW59XCIsXG4gIFwiSEFSQk9SX0FETUlOX1BBU1NXT1JEPSR7YWRtaW5fcGFzc3dvcmR9XCIsXG4gIFwiSEFSQk9SX0RCX1BBU1NXT1JEPSR7ZGJfcGFzc3dvcmR9XCJcbl1cblxuW1tjb25maWcuZG9tYWluc11dXG5zZXJ2aWNlTmFtZSA9IFwicHJveHlcIlxucG9ydCA9IDgwODBcbmhvc3QgPSBcIiR7bWFpbl9kb21haW59XCJcbnBhdGggPSBcIi9cIlxuaHR0cHMgPSB0cnVlXG5jZXJ0aWZpY2F0ZVR5cGUgPSBcImxldHNlbmNyeXB0XCIiCn0=

Configuration

The exact Docker Compose and template configuration this template deploys.

Instructions

Harbor 2.15.4 with Trivy

This template installs Harbor on one Linux amd64 Docker host. Start with 4 vCPU, 8 GB RAM and 160 GB SSD for Harbor, plus resources for Dokploy and other apps. Docker Engine 27+ and Compose 2.35+ are required for named-volume subpaths. Use Docker Compose mode, not Docker Stack/Swarm mode.

Before the first deployment

  1. Import Harbor from the template catalogue or paste its Base64 configuration into Compose → Advanced → Import.
  2. Keep the generated HARBOR_INSTANCE_ID and both generated passwords. The instance ID is the permanent volume prefix; never reuse it for another deployment. Re-importing generates new credentials and a new volume prefix.
  3. Set the domain to a dedicated FQDN pointing to the Dokploy host. Ensure HARBOR_HOSTNAME matches the domain exactly, without a scheme, port or path. Change both before the first deployment if replacing the generated domain.
  4. Confirm domain routing uses service proxy, port 8080, path /, HTTPS and your Let's Encrypt certificate. Enable HTTP-to-HTTPS redirection in Dokploy. Do not add Basic Auth/ForwardAuth in front of Harbor.
  5. Deploy. The init service must finish with exit code 0 before workloads start. Log in at https://YOUR_DOMAIN as admin, with HARBOR_ADMIN_PASSWORD.

Dokploy supplies network isolation and Traefik routing. Do not add host ports, container names or a shared dokploy-network. Path-based hosting such as /harbor is unsupported. TLS terminates at Dokploy; internal traffic is HTTP.

Registry and scanning

Create projects and configure quotas, access, scan-on-push and retention in the Harbor UI. The template does not automatically create projects or apply policies. Trivy is registered as the default scanner; its initial vulnerability database download may take time and needs outbound access to GHCR. Set TRIVY_GITHUB_TOKEN if your environment needs an authenticated download.

User self-registration is disabled. Only admins may create projects. Default quota is 20 GiB per project; set PROJECT_QUOTA_GIB before installation to change it. Advanced resource/configuration defaults are in docker-compose.yml.

No automated backup, restore, scheduled maintenance, policy jobs or Docker socket mounts are included. Arrange an independent backup of all persistent volumes.

Restart and configuration changes

Regular redeploys preserve data and generated encryption/signing keys. Changing the domain, init code, Harbor version or generated configuration requires an explicit reconfiguration. Init fails clearly on unexpected changes.

For a configuration change, use a terminal on the deployment host in the Dokploy-generated Compose directory, with its existing Compose project name and Environment values. The commands below assume docker compose already resolves that exact deployment. Keep its volume prefix and volumes unchanged.

  1. Back up every persistent volume, then stop the deployment and scheduled redeploys.
  2. Save the new Environment values and regenerate the Dokploy Compose file without starting the workloads.
  3. Stop all services, build the new init image, run init alone, then start Harbor:
sh

Do not use down --volumes. --reconfigure refuses reachable Harbor services and preserves existing keys. It is not a database-version migration tool. Do not change HARBOR_DB_PASSWORD for an existing database: changing the env value does not change the database user's password. Similarly, changing HARBOR_ADMIN_PASSWORD does not rotate the existing admin's password; use the UI. Follow Harbor's official migration procedure before upgrading a populated install.

Missing persistent keys are a fatal error. Restore the original complete data; do not delete render-state.json or regenerate signing keys to bypass the check. Prepare errors are captured privately as prepare-error.log in the control volume and must be reviewed for sensitive data before sharing.

Acceptance checks on your Dokploy instance

  • Confirm the init service completed, all workloads are healthy and HTTPS is trusted.
  • Log in to Harbor, create a private test project and enable scan-on-push.
  • Run docker login YOUR_DOMAIN, push a small image and pull it back.
  • Run a Trivy scan and confirm a report appears after the vulnerability DB downloads.
  • Restart/redeploy and verify the project, image, credentials and signing keys persist.

Local Docker tests do not validate a public domain, certificate issuance, a full Trivy DB download or your Dokploy version's Compose/domain rewriting.

Related Templates

Self-host Harbor in minutes

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