mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
added template
This commit is contained in:
1
apps/dokploy/public/templates/photoprism.svg
Normal file
1
apps/dokploy/public/templates/photoprism.svg
Normal 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 |
78
apps/dokploy/templates/photoprism/docker-compose.yml
Normal file
78
apps/dokploy/templates/photoprism/docker-compose.yml
Normal 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:
|
||||
31
apps/dokploy/templates/photoprism/index.ts
Normal file
31
apps/dokploy/templates/photoprism/index.ts
Normal 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,
|
||||
};
|
||||
}
|
||||
@@ -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),
|
||||
},
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user