diff --git a/apps/dokploy/public/templates/outline.png b/apps/dokploy/public/templates/outline.png new file mode 100644 index 000000000..b241f01d7 Binary files /dev/null and b/apps/dokploy/public/templates/outline.png differ diff --git a/apps/dokploy/public/templates/outline.svg b/apps/dokploy/public/templates/outline.svg deleted file mode 100644 index 5dfa63d02..000000000 --- a/apps/dokploy/public/templates/outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/dokploy/public/templates/registry.png b/apps/dokploy/public/templates/registry.png new file mode 100644 index 000000000..39418022e Binary files /dev/null and b/apps/dokploy/public/templates/registry.png differ diff --git a/apps/dokploy/templates/outline/docker-compose.yml b/apps/dokploy/templates/outline/docker-compose.yml index 90ec6d975..aaf98ac0b 100644 --- a/apps/dokploy/templates/outline/docker-compose.yml +++ b/apps/dokploy/templates/outline/docker-compose.yml @@ -1,6 +1,6 @@ services: outline: - image: outlinewiki/outline:0.81.0 + image: outlinewiki/outline:0.82.0 restart: always depends_on: - postgres diff --git a/apps/dokploy/templates/registry/docker-compose.yml b/apps/dokploy/templates/registry/docker-compose.yml new file mode 100644 index 000000000..08c5c3688 --- /dev/null +++ b/apps/dokploy/templates/registry/docker-compose.yml @@ -0,0 +1,19 @@ +services: + registry: + restart: always + image: registry:2 + ports: + - 5000 + volumes: + - ../files/auth/registry.password:/auth/registry.password + - registry-data:/var/lib/registry + environment: + REGISTRY_STORAGE_DELETE_ENABLED: true + REGISTRY_HEALTH_STORAGEDRIVER_ENABLED: false + REGISTRY_HTTP_SECRET: ${REGISTRY_HTTP_SECRET} + REGISTRY_AUTH: htpasswd + REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm + REGISTRY_AUTH_HTPASSWD_PATH: /auth/registry.password + +volumes: + registry-data: \ No newline at end of file diff --git a/apps/dokploy/templates/registry/index.ts b/apps/dokploy/templates/registry/index.ts new file mode 100644 index 000000000..81965e6e2 --- /dev/null +++ b/apps/dokploy/templates/registry/index.ts @@ -0,0 +1,35 @@ +import { + type DomainSchema, + type Schema, + type Template, + generatePassword, + generateRandomDomain, +} from "../utils"; + +export function generate(schema: Schema): Template { + const domains: DomainSchema[] = [ + { + host: generateRandomDomain(schema), + port: 5000, + serviceName: "registry", + }, + ]; + + const registryHttpSecret = generatePassword(30); + + const envs = [`REGISTRY_HTTP_SECRET=${registryHttpSecret}`]; + + const mounts: Template["mounts"] = [ + { + filePath: "/auth/registry.password", + content: + "# from: docker run --rm --entrypoint htpasswd httpd:2 -Bbn docker password\ndocker:$2y$10$qWZoWev/u5PV7WneFoRAMuoGpRcAQOgUuIIdLnU7pJXogrBSY23/2\n", + }, + ]; + + return { + domains, + envs, + mounts, + }; +} diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index 17498e035..31668a6f9 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -20,7 +20,7 @@ export const templates: TemplateData[] = [ { id: "outline", name: "Outline", - version: "0.81.0", + version: "0.82.0", description: "Outline is a self-hosted knowledge base and documentation platform that allows you to build and manage your own knowledge base applications.", links: { @@ -28,7 +28,7 @@ export const templates: TemplateData[] = [ website: "https://outline.com/", docs: "https://docs.outline.com/", }, - logo: "outline.svg", + logo: "outline.png", load: () => import("./outline/index").then((m) => m.generate), tags: ["documentation", "knowledge-base", "self-hosted"], }, @@ -1439,6 +1439,21 @@ export const templates: TemplateData[] = [ tags: ["file-manager", "vdfs", "storage"], load: () => import("./spacedrive/index").then((m) => m.generate), }, + { + id: "registry", + name: "Docker Registry", + version: "2", + description: + "Distribution implementation for storing and distributing of Docker container images and artifacts.", + links: { + github: "https://github.com/distribution/distribution", + website: "https://hub.docker.com/_/registry", + docs: "https://distribution.github.io/distribution/", + }, + logo: "registry.png", + tags: ["registry", "docker", "self-hosted"], + load: () => import("./registry/index").then((m) => m.generate), + }, { id: "alist", name: "AList",