mirror of
https://github.com/andwati/dokploy.git
synced 2026-11-11 22:45:18 +00:00
Merge branch 'canary' into template-erpnext
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
version: '3.3'
|
||||
services:
|
||||
alist:
|
||||
image: xhofe/alist:v3.41.0
|
||||
volumes:
|
||||
- alist-data:/opt/alist/data
|
||||
environment:
|
||||
- PUID=0
|
||||
- PGID=0
|
||||
- UMASK=022
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
alist-data:
|
||||
@@ -0,0 +1,22 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 5244,
|
||||
serviceName: "alist",
|
||||
},
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
services:
|
||||
app:
|
||||
image: ghcr.io/maybe-finance/maybe:sha-68c570eed8810fd59b5b33cca51bbad5eabb4cb4
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ../files/uploads:/app/uploads
|
||||
environment:
|
||||
DATABASE_URL: postgresql://maybe:maybe@db:5432/maybe
|
||||
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
|
||||
SELF_HOSTED: true
|
||||
SYNTH_API_KEY: ${SYNTH_API_KEY}
|
||||
RAILS_FORCE_SSL: "false"
|
||||
RAILS_ASSUME_SSL: "false"
|
||||
GOOD_JOB_EXECUTION_MODE: async
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
|
||||
db:
|
||||
image: postgres:16
|
||||
restart: always
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
networks:
|
||||
- dokploy-network
|
||||
volumes:
|
||||
- db-data:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_DB: maybe
|
||||
POSTGRES_USER: maybe
|
||||
POSTGRES_PASSWORD: maybe
|
||||
|
||||
volumes:
|
||||
db-data:
|
||||
@@ -0,0 +1,43 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const secretKeyBase = generateBase64(64);
|
||||
const synthApiKey = generateBase64(32);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 3000,
|
||||
serviceName: "app",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`SECRET_KEY_BASE=${secretKeyBase}`,
|
||||
"SELF_HOSTED=true",
|
||||
`SYNTH_API_KEY=${synthApiKey}`,
|
||||
"RAILS_FORCE_SSL=false",
|
||||
"RAILS_ASSUME_SSL=false",
|
||||
"GOOD_JOB_EXECUTION_MODE=async",
|
||||
];
|
||||
|
||||
const mounts: Template["mounts"] = [
|
||||
{
|
||||
filePath: "./uploads",
|
||||
content: "This is where user uploads will be stored",
|
||||
},
|
||||
];
|
||||
|
||||
return {
|
||||
envs,
|
||||
mounts,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
services:
|
||||
server:
|
||||
image: ghcr.io/spacedriveapp/spacedrive/server:latest
|
||||
ports:
|
||||
- 8080
|
||||
environment:
|
||||
- SD_AUTH=${SD_USERNAME}:${SD_PASSWORD}
|
||||
volumes:
|
||||
- /var/spacedrive:/var/spacedrive
|
||||
@@ -0,0 +1,28 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const randomDomain = generateRandomDomain(schema);
|
||||
const secretKey = generatePassword();
|
||||
const randomUsername = "admin"; // Default username
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: randomDomain,
|
||||
port: 8080,
|
||||
serviceName: "server",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [`SD_USERNAME=${randomUsername}`, `SD_PASSWORD=${secretKey}`];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
@@ -13,8 +13,11 @@ services:
|
||||
image: amancevice/superset
|
||||
restart: always
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
- superset_postgres
|
||||
- superset_redis
|
||||
volumes:
|
||||
# This superset_config.py can be edited in Dokploy's UI Advanced -> Volume Mount
|
||||
- ../files/superset/superset_config.py:/etc/superset/superset_config.py
|
||||
environment:
|
||||
SECRET_KEY: ${SECRET_KEY}
|
||||
MAPBOX_API_KEY: ${MAPBOX_API_KEY}
|
||||
@@ -22,11 +25,11 @@ services:
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
||||
volumes:
|
||||
# Note: superset_config.py can be edited in Dokploy's UI Volume Mount
|
||||
- ../files/superset/superset_config.py:/etc/superset/superset_config.py
|
||||
# Ensure the hosts matches your service names below.
|
||||
POSTGRES_HOST: superset_postgres
|
||||
REDIS_HOST: superset_redis
|
||||
|
||||
db:
|
||||
superset_postgres:
|
||||
image: postgres
|
||||
restart: always
|
||||
environment:
|
||||
@@ -34,7 +37,7 @@ services:
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: ${POSTGRES_DB}
|
||||
volumes:
|
||||
- postgres:/var/lib/postgresql/data
|
||||
- superset_postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 30s
|
||||
@@ -43,11 +46,11 @@ services:
|
||||
networks:
|
||||
- dokploy-network
|
||||
|
||||
redis:
|
||||
superset_redis:
|
||||
image: redis
|
||||
restart: always
|
||||
volumes:
|
||||
- redis:/data
|
||||
- superset_redis_data:/data
|
||||
command: redis-server --requirepass ${REDIS_PASSWORD}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
@@ -58,5 +61,5 @@ services:
|
||||
- dokploy-network
|
||||
|
||||
volumes:
|
||||
postgres:
|
||||
redis:
|
||||
superset_postgres_data:
|
||||
superset_redis_data:
|
||||
|
||||
@@ -47,13 +47,13 @@ CACHE_CONFIG = {
|
||||
"CACHE_REDIS_HOST": "redis",
|
||||
"CACHE_REDIS_PORT": 6379,
|
||||
"CACHE_REDIS_DB": 1,
|
||||
"CACHE_REDIS_URL": f"redis://:{os.getenv('REDIS_PASSWORD')}@redis:6379/1",
|
||||
"CACHE_REDIS_URL": f"redis://:{os.getenv('REDIS_PASSWORD')}@{os.getenv('REDIS_HOST')}:6379/1",
|
||||
}
|
||||
|
||||
FILTER_STATE_CACHE_CONFIG = {**CACHE_CONFIG, "CACHE_KEY_PREFIX": "superset_filter_"}
|
||||
EXPLORE_FORM_DATA_CACHE_CONFIG = {**CACHE_CONFIG, "CACHE_KEY_PREFIX": "superset_explore_form_"}
|
||||
|
||||
SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{os.getenv('POSTGRES_USER')}:{os.getenv('POSTGRES_PASSWORD')}@db:5432/{os.getenv('POSTGRES_DB')}"
|
||||
SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{os.getenv('POSTGRES_USER')}:{os.getenv('POSTGRES_PASSWORD')}@{os.getenv('POSTGRES_HOST')}:5432/{os.getenv('POSTGRES_DB')}"
|
||||
SQLALCHEMY_TRACK_MODIFICATIONS = True
|
||||
`.trim(),
|
||||
},
|
||||
|
||||
@@ -538,7 +538,7 @@ export const templates: TemplateData[] = [
|
||||
website: "https://filebrowser.org/",
|
||||
docs: "https://filebrowser.org/",
|
||||
},
|
||||
tags: ["file", "manager"],
|
||||
tags: ["file-manager", "storage"],
|
||||
load: () => import("./filebrowser/index").then((m) => m.generate),
|
||||
},
|
||||
{
|
||||
@@ -834,7 +834,7 @@ export const templates: TemplateData[] = [
|
||||
website: "https://nextcloud.com/",
|
||||
docs: "https://docs.nextcloud.com/",
|
||||
},
|
||||
tags: ["file", "sync"],
|
||||
tags: ["file-manager", "sync"],
|
||||
load: () => import("./nextcloud-aio/index").then((m) => m.generate),
|
||||
},
|
||||
{
|
||||
@@ -1363,4 +1363,49 @@ export const templates: TemplateData[] = [
|
||||
],
|
||||
load: () => import("./erpnext/index").then((m) => m.generate),
|
||||
},
|
||||
{
|
||||
id: "maybe",
|
||||
name: "Maybe",
|
||||
version: "latest",
|
||||
description:
|
||||
"Maybe is a self-hosted finance tracking application designed to simplify budgeting and expenses.",
|
||||
logo: "maybe.svg",
|
||||
links: {
|
||||
github: "https://github.com/maybe-finance/maybe",
|
||||
website: "https://maybe.finance/",
|
||||
docs: "https://docs.maybe.finance/",
|
||||
},
|
||||
tags: ["finance", "self-hosted"],
|
||||
load: () => import("./maybe/index").then((m) => m.generate),
|
||||
},
|
||||
{
|
||||
id: "spacedrive",
|
||||
name: "Spacedrive",
|
||||
version: "latest",
|
||||
description:
|
||||
"Spacedrive is a cross-platform file manager. It connects your devices together to help you organize files from anywhere. powered by a virtual distributed filesystem (VDFS) written in Rust. Organize files across many devices in one place.",
|
||||
links: {
|
||||
github: "https://github.com/spacedriveapp/spacedrive",
|
||||
website: "https://spacedrive.com/",
|
||||
docs: "https://www.spacedrive.com/docs/product/getting-started/introduction",
|
||||
},
|
||||
logo: "spacedrive.png",
|
||||
tags: ["file-manager", "vdfs", "storage"],
|
||||
load: () => import("./spacedrive/index").then((m) => m.generate),
|
||||
},
|
||||
{
|
||||
id: "alist",
|
||||
name: "AList",
|
||||
version: "v3.41.0",
|
||||
description:
|
||||
"🗂️A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs.",
|
||||
logo: "alist.svg",
|
||||
links: {
|
||||
github: "https://github.com/AlistGo/alist",
|
||||
website: "https://alist.nn.ci",
|
||||
docs: "https://alist.nn.ci/guide/install/docker.html",
|
||||
},
|
||||
tags: ["file", "webdav", "storage"],
|
||||
load: () => import("./alist/index").then((m) => m.generate),
|
||||
},
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user