diff --git a/apps/dokploy/public/templates/actualbudget.png b/apps/dokploy/public/templates/actualbudget.png new file mode 100644 index 00000000..fd539fe0 Binary files /dev/null and b/apps/dokploy/public/templates/actualbudget.png differ diff --git a/apps/dokploy/templates/actualbudget/docker-compose.yml b/apps/dokploy/templates/actualbudget/docker-compose.yml new file mode 100644 index 00000000..388a9f0b --- /dev/null +++ b/apps/dokploy/templates/actualbudget/docker-compose.yml @@ -0,0 +1,12 @@ +services: + actualbudget: + image: docker.io/actualbudget/actual-server:latest + environment: + # See all options at https://actualbudget.org/docs/config + - ACTUAL_PORT=5006 + volumes: + - actual-data:/data + restart: unless-stopped + +volumes: + actual-data: diff --git a/apps/dokploy/templates/actualbudget/index.ts b/apps/dokploy/templates/actualbudget/index.ts new file mode 100644 index 00000000..33b6fea1 --- /dev/null +++ b/apps/dokploy/templates/actualbudget/index.ts @@ -0,0 +1,20 @@ +import { + type DomainSchema, + type Schema, + type Template, + generateRandomDomain, +} from "../utils"; + +export function generate(schema: Schema): Template { + const domains: DomainSchema[] = [ + { + host: generateRandomDomain(schema), + port: 5006, + serviceName: "actualbudget", + }, + ]; + + return { + domains, + }; +} diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index 1060a664..a0fbdb1b 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -1209,6 +1209,21 @@ export const templates: TemplateData[] = [ tags: ["api", "backend", "pdf", "tools"], load: () => import("./gotenberg/index").then((m) => m.generate), }, + { + id: "actualbudget", + name: "Actual Budget", + version: "latest", + description: + "A super fast and privacy-focused app for managing your finances.", + logo: "actualbudget.png", + links: { + github: "https://github.com/actualbudget/actual", + website: "https://actualbudget.org", + docs: "https://actualbudget.org/docs", + }, + tags: ["budgeting", "finance", "money"], + load: () => import("./actualbudget/index").then((m) => m.generate), + }, { id: "conduit", name: "Conduit",