mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
Merge pull request #371 from freidev/canary
feat(template): add Aptabase template with ClickHouse and PostgreSQLCanary
This commit is contained in:
5
apps/dokploy/public/templates/aptabase.svg
Normal file
5
apps/dokploy/public/templates/aptabase.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg class="w-12 text-primary" viewBox="0 0 1000 760" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill="#1a61ff"
|
||||
d="M626.7 177.36c-55.8-98.4-197.59-98.4-253.39 0L112.97 636.44H500c0-51.67 41.88-93.55 93.55-93.55h22.09l57.82 93.55h213.57L626.69 177.37Zm-11.06 365.52-70.21-123.82c-20.01-35.28-70.84-35.28-90.85 0l-70.21 123.82H273.58l181.01-319.19c20.01-35.28 70.84-35.28 90.85 0l181.01 319.19H615.66Z"
|
||||
style="--darkreader-inline-fill:currentColor" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 465 B |
51
apps/dokploy/templates/aptabase/docker-compose.yml
Normal file
51
apps/dokploy/templates/aptabase/docker-compose.yml
Normal file
@@ -0,0 +1,51 @@
|
||||
services:
|
||||
aptabase_db:
|
||||
image: postgres:15-alpine
|
||||
restart: always
|
||||
volumes:
|
||||
- db-data:/var/lib/postgresql/data
|
||||
environment:
|
||||
POSTGRES_USER: aptabase
|
||||
POSTGRES_PASSWORD: sTr0NGp4ssw0rd
|
||||
networks:
|
||||
- dokploy-network
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U aptabase"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
aptabase_events_db:
|
||||
image: clickhouse/clickhouse-server:23.8.16.16-alpine
|
||||
restart: always
|
||||
volumes:
|
||||
- events-db-data:/var/lib/clickhouse
|
||||
environment:
|
||||
CLICKHOUSE_USER: aptabase
|
||||
CLICKHOUSE_PASSWORD: sTr0NGp4ssw0rd
|
||||
ulimits:
|
||||
nofile:
|
||||
soft: 262144
|
||||
hard: 262144
|
||||
networks:
|
||||
- dokploy-network
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -f http://localhost:8123 || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
aptabase:
|
||||
image: ghcr.io/aptabase/aptabase:main
|
||||
restart: always
|
||||
environment:
|
||||
BASE_URL: http://${APTABASE_HOST}
|
||||
AUTH_SECRET: ${AUTH_SECRET}
|
||||
DATABASE_URL: Server=aptabase_db;Port=5432;User Id=aptabase;Password=sTr0NGp4ssw0rd;Database=aptabase
|
||||
CLICKHOUSE_URL: Host=aptabase_events_db;Port=8123;Username=aptabase;Password=sTr0NGp4ssw0rd
|
||||
|
||||
volumes:
|
||||
db-data:
|
||||
driver: local
|
||||
events-db-data:
|
||||
driver: local
|
||||
27
apps/dokploy/templates/aptabase/index.ts
Normal file
27
apps/dokploy/templates/aptabase/index.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const authSecret = generateBase64(32);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 8080,
|
||||
serviceName: "aptabase",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [`APTABASE_HOST=${mainDomain}`, `AUTH_SECRET=${authSecret}`];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
@@ -423,4 +423,19 @@ export const templates: TemplateData[] = [
|
||||
tags: ["chat"],
|
||||
load: () => import("./soketi/index").then((m) => m.generate),
|
||||
},
|
||||
{
|
||||
id: "aptabase",
|
||||
name: "Aptabase",
|
||||
version: "v1.0.0",
|
||||
description:
|
||||
"Aptabase is a self-hosted web analytics platform that lets you track website traffic and user behavior.",
|
||||
logo: "aptabase.svg",
|
||||
links: {
|
||||
github: "https://github.com/aptabase/aptabase",
|
||||
website: "https://aptabase.com/",
|
||||
docs: "https://github.com/aptabase/aptabase/blob/main/README.md",
|
||||
},
|
||||
tags: ["analytics", "self-hosted"],
|
||||
load: () => import("./aptabase/index").then((m) => m.generate),
|
||||
},
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user