Merge pull request #1355 from drudge/templates/hoarder

feat: add Hoarder template
This commit is contained in:
Mauricio Siu 2025-03-07 00:03:42 -06:00 committed by GitHub
commit 36cc157566
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 101 additions and 0 deletions

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 355 354" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1,0,0,1,-232,-118)">
<path d="M565.33,118.79L253.02,118.79C241.46,118.79 232.09,128.16 232.09,139.72L232.09,450.44C232.09,462 241.46,471.37 253.02,471.37L565.33,471.37C576.89,471.37 586.26,462 586.26,450.44L586.26,139.72C586.26,128.16 576.89,118.79 565.33,118.79ZM386.85,419.57C386.85,422.58 384.4,425.03 381.39,425.03L285.11,425.03C282.1,425.03 279.65,422.58 279.65,419.57L279.65,169.43C279.65,166.42 282.1,163.96 285.11,163.96L379.87,163.96C382.88,163.96 385.33,166.41 385.33,169.43L385.33,264.64C385.33,264.64 384.81,305.61 386.85,337.76L386.85,419.58L386.85,419.57ZM537.19,419.57C537.19,423.92 532.36,426.52 528.75,424.14L484.85,395.44C482.95,394.18 480.5,394.25 478.64,395.59L440.16,423.4C438.56,424.59 436.67,424.66 435.07,424.07C433.66,423.07 432.73,421.43 432.73,419.57L432.73,225.34C437.94,224.34 443.73,223.78 450.43,223.78C483.29,223.78 537.2,242.37 537.2,294.78L537.2,419.58L537.19,419.57Z" style="fill-rule:nonzero;"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View 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:

View 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,
};
}

View File

@ -707,6 +707,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)",