diff --git a/apps/dokploy/public/templates/pocket-id.svg b/apps/dokploy/public/templates/pocket-id.svg new file mode 100644 index 00000000..0ee89b14 --- /dev/null +++ b/apps/dokploy/public/templates/pocket-id.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/dokploy/templates/pocket-id/docker-compose.yml b/apps/dokploy/templates/pocket-id/docker-compose.yml new file mode 100644 index 00000000..f9385143 --- /dev/null +++ b/apps/dokploy/templates/pocket-id/docker-compose.yml @@ -0,0 +1,21 @@ +services: + pocket-id: + image: ghcr.io/pocket-id/pocket-id:v0.35.1 + restart: unless-stopped + environment: + - PUBLIC_UI_CONFIG_DISABLED + - PUBLIC_APP_URL + - TRUST_PROXY + ports: + - 80 + volumes: + - pocket-id-data:/app/backend/data + healthcheck: + test: "curl -f http://localhost/health" + interval: 1m30s + timeout: 5s + retries: 2 + start_period: 10s + +volumes: + pocket-id-data: diff --git a/apps/dokploy/templates/pocket-id/index.ts b/apps/dokploy/templates/pocket-id/index.ts new file mode 100644 index 00000000..9a9faa2a --- /dev/null +++ b/apps/dokploy/templates/pocket-id/index.ts @@ -0,0 +1,29 @@ +import { + type DomainSchema, + type Schema, + type Template, + generateRandomDomain, +} from "../utils"; + +export function generate(schema: Schema): Template { + const mainDomain = generateRandomDomain(schema); + + const domains: DomainSchema[] = [ + { + host: mainDomain, + port: 80, + serviceName: "pocket-id", + }, + ]; + + const envs = [ + "PUBLIC_UI_CONFIG_DISABLED=false", + `PUBLIC_APP_URL=http://${mainDomain}`, + "TRUST_PROXY=true", + ]; + + return { + domains, + envs, + }; +} diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index 871738b6..dc5205ef 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -1123,6 +1123,21 @@ export const templates: TemplateData[] = [ tags: ["identity", "auth"], load: () => import("./logto/index").then((m) => m.generate), }, + { + id: "pocket-id", + name: "Pocket ID", + version: "0.35.1", + description: + "A simple and easy-to-use OIDC provider that allows users to authenticate with their passkeys to your services.", + logo: "pocket-id.svg", + links: { + github: "https://github.com/pocket-id/pocket-id", + website: "https://pocket-id.org/", + docs: "https://pocket-id.org/docs", + }, + tags: ["identity", "auth"], + load: () => import("./pocket-id/index").then((m) => m.generate), + }, { id: "penpot", name: "Penpot",