mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
feat: add Hoarder template
This commit is contained in:
45
apps/dokploy/templates/hoarder/docker-compose.yml
Normal file
45
apps/dokploy/templates/hoarder/docker-compose.yml
Normal file
@@ -0,0 +1,45 @@
|
||||
services:
|
||||
web:
|
||||
image: ghcr.io/hoarder-app/hoarder:0.22.0
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- hoarder-data:/data
|
||||
ports:
|
||||
- 3000
|
||||
environment:
|
||||
- DISABLE_SIGNUPS
|
||||
- NEXTAUTH_URL
|
||||
- NEXTAUTH_SECRET
|
||||
- MEILI_ADDR=http://meilisearch:7700
|
||||
- BROWSER_WEB_URL=http://chrome:9222
|
||||
- DATA_DIR=/data
|
||||
chrome:
|
||||
image: gcr.io/zenika-hub/alpine-chrome:124
|
||||
restart: unless-stopped
|
||||
command:
|
||||
- --no-sandbox
|
||||
- --disable-gpu
|
||||
- --disable-dev-shm-usage
|
||||
- --remote-debugging-address=0.0.0.0
|
||||
- --remote-debugging-port=9222
|
||||
- --hide-scrollbars
|
||||
meilisearch:
|
||||
image: getmeili/meilisearch:v1.6
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- MEILI_MASTER_KEY
|
||||
- MEILI_NO_ANALYTICS="true"
|
||||
volumes:
|
||||
- meilisearch-data:/meili_data
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- curl
|
||||
- '-f'
|
||||
- 'http://127.0.0.1:7700/health'
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 15
|
||||
volumes:
|
||||
meilisearch-data:
|
||||
hoarder-data:
|
||||
34
apps/dokploy/templates/hoarder/index.ts
Normal file
34
apps/dokploy/templates/hoarder/index.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const postgresPassword = generatePassword();
|
||||
const nextSecret = generateBase64(32);
|
||||
const meiliMasterKey = generateBase64(32);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 3000,
|
||||
serviceName: "web",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`NEXTAUTH_SECRET=${nextSecret}`,
|
||||
`MEILI_MASTER_KEY=${meiliMasterKey}`,
|
||||
`NEXTAUTH_URL=http://${mainDomain}`,
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
@@ -677,6 +677,21 @@ export const templates: TemplateData[] = [
|
||||
tags: ["self-hosted", "open-source", "manager"],
|
||||
load: () => import("./hi-events/index").then((m) => m.generate),
|
||||
},
|
||||
{
|
||||
id: "hoarder",
|
||||
name: "Hoarder",
|
||||
version: "0.22.0",
|
||||
description:
|
||||
'Hoarder is an open source "Bookmark Everything" app that uses AI for automatically tagging the content you throw at it.',
|
||||
logo: "hoarder.svg",
|
||||
links: {
|
||||
github: "https://github.com/hoarder/hoarder",
|
||||
website: "https://hoarder.app/",
|
||||
docs: "https://docs.hoarder.app/",
|
||||
},
|
||||
tags: ["self-hosted", "bookmarks", "link-sharing"],
|
||||
load: () => import("./hoarder/index").then((m) => m.generate),
|
||||
},
|
||||
{
|
||||
id: "windows",
|
||||
name: "Windows (dockerized)",
|
||||
|
||||
Reference in New Issue
Block a user