added template

This commit is contained in:
Daniel Gietmann
2024-11-27 03:44:18 +01:00
parent fabe946526
commit 19d897f3ad
4 changed files with 133 additions and 8 deletions

View File

@@ -0,0 +1 @@
<svg data-name="Ebene 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 266 266"><defs><linearGradient id="a" x1="45.04" y1="231.72" x2="231.72" y2="45.04" gradientUnits="userSpaceOnUse" gradientTransform="translate(-5.38 -5.38)"><stop offset="0" stop-color="#fff"/><stop offset="0" stop-color="#b8edff"/><stop offset="1" stop-color="#d4b8ff"/></linearGradient></defs><circle cx="133" cy="133" r="132" style="fill:url(#a)"/><path data-name="Logo Pfad" d="m224.19 176.51-4 24.19M41.91 177.5l14.81 14m95.76-137.65L56.62 191.31a.09.09 0 0 0 .07.15l163.41 9.37a.09.09 0 0 0 .09-.13L152.62 53.87a.1.1 0 0 0-.14-.02zm-19.74-13.29L41.8 177.31a.13.13 0 0 0 .11.19l182.18-.8a.12.12 0 0 0 .1-.19L132.95 40.56a.12.12 0 0 0-.21 0zm.11-.16 19.77 13.32" style="fill:none;stroke:#1d1d1b;stroke-miterlimit:10;stroke-width:6px"/></svg>

After

Width:  |  Height:  |  Size: 819 B

View File

@@ -0,0 +1,78 @@
services:
photoprism:
image: photoprism/photoprism:latest
stop_grace_period: 10s
depends_on:
- mariadb
security_opt:
- seccomp:unconfined
- apparmor:unconfined
networks:
- dokploy-network
environment:
PHOTOPRISM_ADMIN_USER: "admin"
PHOTOPRISM_ADMIN_PASSWORD: ${ADMIN_PASSWORD}
PHOTOPRISM_AUTH_MODE: "password"
PHOTOPRISM_SITE_URL: "http://localhost:2342/"
PHOTOPRISM_DISABLE_TLS: "false"
PHOTOPRISM_DEFAULT_TLS: "false"
PHOTOPRISM_ORIGINALS_LIMIT: 5000 # file size limit for originals in MB (increase for high-res video)
PHOTOPRISM_HTTP_COMPRESSION: "gzip"
PHOTOPRISM_LOG_LEVEL: "info" # log level: trace, debug, info, warning, error, fatal, or panic
PHOTOPRISM_READONLY: "false"
PHOTOPRISM_EXPERIMENTAL: "false"
PHOTOPRISM_DISABLE_CHOWN: "false"
PHOTOPRISM_DISABLE_WEBDAV: "false"
PHOTOPRISM_DISABLE_SETTINGS: "false"
PHOTOPRISM_DISABLE_TENSORFLOW: "false"
PHOTOPRISM_DISABLE_FACES: "false"
PHOTOPRISM_DISABLE_CLASSIFICATION: "false"
PHOTOPRISM_DISABLE_VECTORS: "false"
PHOTOPRISM_DISABLE_RAW: "false"
PHOTOPRISM_RAW_PRESETS: "false"
PHOTOPRISM_SIDECAR_YAML: "true"
PHOTOPRISM_BACKUP_ALBUMS: "true"
PHOTOPRISM_BACKUP_DATABASE: "true"
PHOTOPRISM_BACKUP_SCHEDULE: "daily"
PHOTOPRISM_INDEX_SCHEDULE: ""
PHOTOPRISM_AUTO_INDEX: 300
PHOTOPRISM_AUTO_IMPORT: -1
PHOTOPRISM_DETECT_NSFW: "false"
PHOTOPRISM_UPLOAD_NSFW: "true"
PHOTOPRISM_DATABASE_DRIVER: "mysql"
PHOTOPRISM_DATABASE_SERVER: "mariadb:3306"
PHOTOPRISM_DATABASE_NAME: "photoprism"
PHOTOPRISM_DATABASE_USER: "photoprism"
PHOTOPRISM_DATABASE_PASSWORD: "insecure"
PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App"
PHOTOPRISM_SITE_DESCRIPTION: ""
PHOTOPRISM_SITE_AUTHOR: ""
working_dir:
"/photoprism"
volumes:
- pictures:/photoprism/originals
- storage-data:/photoprism/storage
mariadb:
image: mariadb:11
restart: unless-stopped
stop_grace_period: 5s
networks:
- dokploy-network
security_opt:
- seccomp:unconfined
- apparmor:unconfined
volumes:
- db-data:/var/lib/mysql
environment:
MARIADB_AUTO_UPGRADE: "1"
MARIADB_INITDB_SKIP_TZINFO: "1"
MARIADB_DATABASE: "photoprism"
MARIADB_USER: "photoprism"
MARIADB_PASSWORD: "insecure"
MARIADB_ROOT_PASSWORD: "insecure"
volumes:
db-data:
storage-data:
pictures:

View File

@@ -0,0 +1,31 @@
import {
type DomainSchema,
type Schema,
type Template,
generateHash,
generatePassword,
generateRandomDomain,
} from "../utils";
export function generate(schema: Schema): Template {
const randomDomain = generateRandomDomain(schema);
const randomPassword = generatePassword();
const domains: DomainSchema[] = [
{
host: randomDomain,
port: 2342,
serviceName: "photoprism",
},
];
const envs = [
`BASE_URL=http://${randomDomain}`,
`ADMIN_PASSWORD=${randomPassword}`,
];
return {
envs,
domains,
};
}

View File

@@ -881,8 +881,8 @@ export const templates: TemplateData[] = [
},
tags: ["forum", "community", "discussion"],
load: () => import("./discourse/index").then((m) => m.generate),
},
{
},
{
id: "immich",
name: "Immich",
version: "v1.121.0",
@@ -896,8 +896,8 @@ export const templates: TemplateData[] = [
},
tags: ["photos", "videos", "backup", "media"],
load: () => import("./immich/index").then((m) => m.generate),
},
{
},
{
id: "twenty",
name: "Twenty CRM",
version: "latest",
@@ -911,8 +911,8 @@ export const templates: TemplateData[] = [
},
tags: ["crm", "sales", "business"],
load: () => import("./twenty/index").then((m) => m.generate),
},
{
},
{
id: "yourls",
name: "YOURLS",
version: "1.9.2",
@@ -926,8 +926,8 @@ export const templates: TemplateData[] = [
},
tags: ["url-shortener", "php"],
load: () => import("./yourls/index").then((m) => m.generate),
},
{
},
{
id: "ryot",
name: "Ryot",
version: "v7.10",
@@ -942,4 +942,19 @@ export const templates: TemplateData[] = [
tags: ["media", "tracking", "self-hosted"],
load: () => import("./ryot/index").then((m) => m.generate),
},
{
id: "photoprism",
name: "Photoprism",
version: "latest",
description:
"PhotoPrism® is an AI-Powered Photos App for the Decentralized Web. It makes use of the latest technologies to tag and find pictures automatically without getting in your way.",
logo: "photoprism.svg",
links: {
github: "https://github.com/photoprism/photoprism",
website: "https://www.photoprism.app/",
docs: "https://docs.photoprism.app/",
},
tags: ["media", "photos", "self-hosted"],
load: () => import("./photoprism/index").then((m) => m.generate),
},
];