mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
Merge branch 'canary' into feat/migration-templates
This commit is contained in:
@@ -7,7 +7,7 @@ import {
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainServiceHash = generateHash(schema.projectName);
|
||||
const _mainServiceHash = generateHash(schema.projectName);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainServiceHash = generateHash(schema.projectName);
|
||||
const _mainServiceHash = generateHash(schema.projectName);
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { Schema, Template } from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
export function generate(_schema: Schema): Template {
|
||||
const envs = [`CLOUDFLARE_TUNNEL_TOKEN="<INSERT TOKEN>"`];
|
||||
|
||||
return {
|
||||
|
||||
96
apps/dokploy/templates/datalens/docker-compose.yml
Normal file
96
apps/dokploy/templates/datalens/docker-compose.yml
Normal file
@@ -0,0 +1,96 @@
|
||||
services:
|
||||
pg-compeng:
|
||||
image: postgres:16-alpine
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_PASSWORD: "postgres"
|
||||
POSTGRES_DB: postgres
|
||||
POSTGRES_USER: postgres
|
||||
|
||||
control-api:
|
||||
image: ghcr.io/datalens-tech/datalens-control-api:0.2192.0
|
||||
restart: always
|
||||
environment:
|
||||
BI_API_UWSGI_WORKERS_COUNT: 4
|
||||
CONNECTOR_AVAILABILITY_VISIBLE: "clickhouse,postgres,chyt,ydb,mysql,greenplum,mssql,appmetrica_api,metrika_api"
|
||||
RQE_FORCE_OFF: 1
|
||||
DL_CRY_ACTUAL_KEY_ID: key_1
|
||||
DL_CRY_KEY_VAL_ID_key_1: "h1ZpilcYLYRdWp7Nk8X1M1kBPiUi8rdjz9oBfHyUKIk="
|
||||
RQE_SECRET_KEY: ""
|
||||
US_HOST: "http://us:8083"
|
||||
US_MASTER_TOKEN: "fake-us-master-token"
|
||||
depends_on:
|
||||
- us
|
||||
|
||||
data-api:
|
||||
container_name: datalens-data-api
|
||||
image: ghcr.io/datalens-tech/datalens-data-api:0.2192.0
|
||||
restart: always
|
||||
environment:
|
||||
GUNICORN_WORKERS_COUNT: 5
|
||||
RQE_FORCE_OFF: 1
|
||||
CACHES_ON: 0
|
||||
MUTATIONS_CACHES_ON: 0
|
||||
RQE_SECRET_KEY: ""
|
||||
DL_CRY_ACTUAL_KEY_ID: key_1
|
||||
DL_CRY_KEY_VAL_ID_key_1: "h1ZpilcYLYRdWp7Nk8X1M1kBPiUi8rdjz9oBfHyUKIk="
|
||||
BI_COMPENG_PG_ON: 1
|
||||
BI_COMPENG_PG_URL: "postgresql://postgres:postgres@pg-compeng:5432/postgres"
|
||||
US_HOST: "http://us:8083"
|
||||
US_MASTER_TOKEN: "fake-us-master-token"
|
||||
depends_on:
|
||||
- us
|
||||
- pg-compeng
|
||||
|
||||
pg-us:
|
||||
container_name: datalens-pg-us
|
||||
image: postgres:16-alpine
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_DB: us-db-ci_purgeable
|
||||
POSTGRES_USER: us
|
||||
POSTGRES_PASSWORD: us
|
||||
volumes:
|
||||
- ${VOLUME_US:-./metadata}:/var/lib/postgresql/data
|
||||
|
||||
us:
|
||||
image: ghcr.io/datalens-tech/datalens-us:0.310.0
|
||||
restart: always
|
||||
depends_on:
|
||||
- pg-us
|
||||
environment:
|
||||
APP_INSTALLATION: "opensource"
|
||||
APP_ENV: "prod"
|
||||
MASTER_TOKEN: "fake-us-master-token"
|
||||
POSTGRES_DSN_LIST: ${METADATA_POSTGRES_DSN_LIST:-postgres://us:us@pg-us:5432/us-db-ci_purgeable}
|
||||
SKIP_INSTALL_DB_EXTENSIONS: ${METADATA_SKIP_INSTALL_DB_EXTENSIONS:-0}
|
||||
USE_DEMO_DATA: ${USE_DEMO_DATA:-0}
|
||||
HC: ${HC:-0}
|
||||
NODE_EXTRA_CA_CERTS: /certs/root.crt
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
volumes:
|
||||
- ./certs:/certs
|
||||
|
||||
datalens:
|
||||
image: ghcr.io/datalens-tech/datalens-ui:0.2601.0
|
||||
restart: always
|
||||
ports:
|
||||
- ${UI_PORT:-8080}:8080
|
||||
depends_on:
|
||||
- us
|
||||
- control-api
|
||||
- data-api
|
||||
environment:
|
||||
APP_MODE: "full"
|
||||
APP_ENV: "production"
|
||||
APP_INSTALLATION: "opensource"
|
||||
AUTH_POLICY: "disabled"
|
||||
US_ENDPOINT: "http://us:8083"
|
||||
BI_API_ENDPOINT: "http://control-api:8080"
|
||||
BI_DATA_ENDPOINT: "http://data-api:8080"
|
||||
US_MASTER_TOKEN: "fake-us-master-token"
|
||||
NODE_EXTRA_CA_CERTS: "/usr/local/share/ca-certificates/cert.pem"
|
||||
HC: ${HC:-0}
|
||||
YANDEX_MAP_ENABLED: ${YANDEX_MAP_ENABLED:-0}
|
||||
YANDEX_MAP_TOKEN: ${YANDEX_MAP_TOKEN:-0}
|
||||
23
apps/dokploy/templates/datalens/index.ts
Normal file
23
apps/dokploy/templates/datalens/index.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: generateRandomDomain(schema),
|
||||
port: 8080,
|
||||
serviceName: "datalens",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = ["HC=1"];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const secretKeyBase = generateBase64(64);
|
||||
const _secretKeyBase = generateBase64(64);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
|
||||
@@ -2,7 +2,6 @@ import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateHash,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateHash,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
|
||||
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,
|
||||
};
|
||||
}
|
||||
@@ -11,7 +11,7 @@ export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const dbPassword = generatePassword();
|
||||
const dbUser = "immich";
|
||||
const appSecret = generateBase64(32);
|
||||
const _appSecret = generateBase64(32);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
|
||||
@@ -41,7 +41,9 @@ services:
|
||||
- setup
|
||||
volumes:
|
||||
- ../files/config.toml:/listmonk/config.toml
|
||||
- listmonk-uploads:/listmonk/uploads
|
||||
|
||||
volumes:
|
||||
listmonk-uploads:
|
||||
listmonk-data:
|
||||
driver: local
|
||||
|
||||
@@ -2,8 +2,6 @@ import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateHash,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# This is an UNOFFICIAL production docker image build for Superset:
|
||||
# - https://github.com/amancevice/docker-superset
|
||||
|
||||
|
||||
|
||||
# ## SETUP INSTRUCTIONS
|
||||
#
|
||||
# After deploying this image, you will need to run one of the two
|
||||
@@ -10,7 +10,7 @@
|
||||
# $ superset-init # Initialise database only
|
||||
#
|
||||
# You will be prompted to enter the credentials for the admin user.
|
||||
|
||||
|
||||
|
||||
# ## NETWORK INSTRUCTIONS
|
||||
#
|
||||
@@ -66,7 +66,7 @@ services:
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
superset_redis:
|
||||
superset_redis:
|
||||
image: redis
|
||||
restart: always
|
||||
volumes:
|
||||
|
||||
@@ -93,6 +93,20 @@ export const templates: TemplateData[] = [
|
||||
tags: ["monitoring"],
|
||||
load: () => import("./grafana/index").then((m) => m.generate),
|
||||
},
|
||||
{
|
||||
id: "datalens",
|
||||
name: "DataLens",
|
||||
version: "1.23.0",
|
||||
description: "A modern, scalable business intelligence and data visualization system.",
|
||||
logo: "datalens.svg",
|
||||
links: {
|
||||
github: "https://github.com/datalens-tech/datalens",
|
||||
website: "https://datalens.tech/",
|
||||
docs: "https://datalens.tech/docs/",
|
||||
},
|
||||
tags: ["analytics", "self-hosted", "bi", "monitoring"],
|
||||
load: () => import("./datalens/index").then((m) => m.generate),
|
||||
},
|
||||
{
|
||||
id: "directus",
|
||||
name: "Directus",
|
||||
@@ -692,6 +706,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)",
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { Secrets } from "@/components/ui/secrets";
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { Schema, Template } from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
export function generate(_schema: Schema): Template {
|
||||
const mounts: Template["mounts"] = [
|
||||
{
|
||||
filePath: "init-mongo.sh",
|
||||
|
||||
@@ -3,7 +3,6 @@ import {
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generateHash,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
|
||||
@@ -17,15 +17,17 @@ services:
|
||||
retries: 5
|
||||
|
||||
zipline:
|
||||
image: ghcr.io/diced/zipline:3.7.9
|
||||
image: ghcr.io/diced/zipline:4
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- CORE_RETURN_HTTPS=${ZIPLINE_RETURN_HTTPS}
|
||||
- CORE_SECRET=${ZIPLINE_SECRET}
|
||||
- CORE_HOST=0.0.0.0
|
||||
- CORE_HOSTNAME=0.0.0.0
|
||||
- CORE_PORT=${ZIPLINE_PORT}
|
||||
- CORE_DATABASE_URL=postgres://postgres:postgres@postgres/postgres
|
||||
- DATABASE_URL=postgres://postgres:postgres@postgres/postgres
|
||||
- CORE_LOGGER=${ZIPLINE_LOGGER}
|
||||
- DATASOURCE_TYPE=local
|
||||
- DATASOURCE_LOCAL_DIRECTORY=./uploads
|
||||
volumes:
|
||||
- "../files/uploads:/zipline/uploads"
|
||||
- "../files/public:/zipline/public"
|
||||
|
||||
Reference in New Issue
Block a user