2022-10-14 15:48:37 +02:00
export default [
2022-10-20 10:03:23 +02:00
{
"templateVersion" : "1.0.0" ,
2022-10-21 15:51:32 +02:00
"defaultVersion" : "latest" ,
2022-10-20 10:03:23 +02:00
"name" : "weblate" ,
"displayName" : "Weblate" ,
"description" : "" ,
"services" : {
"$$id" : {
"name" : "Weblate" ,
"depends_on" : [
"$$id-postgresql" ,
"$$id-redis"
] ,
"image" : "weblate/weblate:$$core_version" ,
"volumes" : [
"$$id-data:/app/data" ,
] ,
"environment" : [
` WEBLATE_SITE_DOMAIN= $ $ config_weblate_site_domain ` ,
` WEBLATE_ADMIN_PASSWORD= $ $ secret_weblate_admin_password ` ,
` POSTGRES_PASSWORD= $ $ secret_postgres_password ` ,
` POSTGRES_USER= $ $ config_postgres_user ` ,
2022-10-20 16:06:33 +02:00
` POSTGRES_DATABASE= $ $ config_postgres_db ` ,
2022-10-20 10:42:47 +02:00
` POSTGRES_HOST= $ $ id-postgresql ` ,
2022-10-20 10:03:23 +02:00
` POSTGRES_PORT=5432 ` ,
` REDIS_HOST= $ $ id-redis ` ,
] ,
"ports" : [
"8080"
]
} ,
"$$id-postgresql" : {
"name" : "PostgreSQL" ,
"depends_on" : [ ] ,
"image" : "postgres:14-alpine" ,
"volumes" : [
"$$id-postgresql-data:/var/lib/postgresql/data" ,
] ,
"environment" : [
"POSTGRES_USER=$$config_postgres_user" ,
"POSTGRES_PASSWORD=$$secret_postgres_password" ,
"POSTGRES_DB=$$config_postgres_db" ,
] ,
"ports" : [ ]
} ,
"$$id-redis" : {
"name" : "Redis" ,
"depends_on" : [ ] ,
"image" : "redis:7-alpine" ,
"volumes" : [
"$$id-redis-data:/data" ,
] ,
"environment" : [ ] ,
"ports" : [ ] ,
}
} ,
"variables" : [
{
"id" : "$$config_weblate_site_domain" ,
"name" : "WEBLATE_SITE_DOMAIN" ,
2022-10-20 10:42:47 +02:00
"label" : "Weblate Domain" ,
2022-10-20 10:03:23 +02:00
"defaultValue" : "$$generate_domain" ,
"description" : "" ,
} ,
{
"id" : "$$secret_weblate_admin_password" ,
"name" : "WEBLATE_ADMIN_PASSWORD" ,
"label" : "Weblate Admin Password" ,
"defaultValue" : "$$generate_password" ,
"description" : "" ,
2022-10-20 10:42:47 +02:00
"extras" : {
"isVisibleOnUI" : true ,
}
2022-10-20 10:03:23 +02:00
} ,
{
"id" : "$$config_postgres_user" ,
"name" : "POSTGRES_USER" ,
"label" : "PostgreSQL User" ,
"defaultValue" : "$$generate_username" ,
"description" : "" ,
} ,
{
"id" : "$$secret_postgres_password" ,
"name" : "POSTGRES_PASSWORD" ,
"label" : "PostgreSQL Password" ,
2022-10-20 10:42:47 +02:00
"defaultValue" : "$$generate_password" ,
2022-10-20 10:03:23 +02:00
"description" : "" ,
} ,
{
"id" : "$$config_postgres_db" ,
"name" : "POSTGRES_DB" ,
"label" : "PostgreSQL Database" ,
2022-10-20 10:42:47 +02:00
"defaultValue" : "weblate" ,
2022-10-20 10:03:23 +02:00
"description" : "" ,
} ,
2022-10-20 16:06:33 +02:00
2022-10-20 10:03:23 +02:00
]
} ,
2022-10-20 09:18:13 +02:00
{
"templateVersion" : "1.0.0" ,
2022-10-21 15:51:32 +02:00
"defaultVersion" : "2022.10.14-1a5b0965" ,
2022-10-20 09:18:13 +02:00
"name" : "searxng" ,
"displayName" : "SearXNG" ,
"description" : "" ,
"services" : {
"$$id" : {
"name" : "SearXNG" ,
"depends_on" : [
"$$id-redis"
] ,
"image" : "searxng/searxng:$$core_version" ,
"volumes" : [
2022-10-20 09:44:08 +02:00
"$$id-searxng:/etc/searxng" ,
2022-10-20 09:18:13 +02:00
] ,
"environment" : [
"SEARXNG_BASE_URL=$$config_searxng_base_url" ,
] ,
"ports" : [
"8080"
] ,
2022-10-20 09:44:08 +02:00
"cap_drop" : [ 'ALL' ] ,
"cap_add" : [ 'CHOWN' , 'SETGID' , 'SETUID' , 'DAC_OVERRIDE' ] ,
2022-10-20 09:18:13 +02:00
"extras" : {
"files" : [
{
2022-10-20 09:44:08 +02:00
source : "$$workdir/settings.yml" ,
destination : "/etc/searxng/settings.yml" ,
2022-10-20 09:18:13 +02:00
content : `
# see https : //docs.searxng.org/admin/engines/settings.html#use-default-settings
use_default_settings : true
server :
secret_key : $$secret_secret_key
limiter : true
image_proxy : true
ui :
static_use_hash : true
redis :
url : redis : //:$$secret_redis_password@$$id-redis:6379/0`
}
]
}
} ,
"$$id-redis" : {
"name" : "Redis" ,
"command" : ` redis-server --requirepass $ $ secret_redis_password --save "" --appendonly "no" ` ,
"depends_on" : [ ] ,
"image" : "redis:7-alpine" ,
"volumes" : [
"$$id-redis-data:/data" ,
] ,
"environment" : [
"REDIS_PASSWORD=$$secret_redis_password" ,
] ,
"ports" : [ ] ,
"cap_drop" : [ 'ALL' ] ,
"cap_add" : [ 'SETGID' , 'SETUID' , 'DAC_OVERRIDE' ] ,
}
} ,
"variables" : [
{
"id" : "$$config_searxng_base_url" ,
"name" : "SEARXNG_BASE_URL" ,
"label" : "SearXNG Base URL" ,
"defaultValue" : "$$generate_fqdn" ,
"description" : "" ,
} ,
{
"id" : "$$secret_secret_key" ,
"name" : "SECRET_KEY" ,
"label" : "Secret Key" ,
"defaultValue" : "$$generate_passphrase" ,
"description" : "" ,
} ,
{
"id" : "$$secret_redis_password" ,
"name" : "REDIS_PASSWORD" ,
"label" : "Redis Password" ,
"defaultValue" : "$$generate_password" ,
"description" : "" ,
}
]
} ,
2022-10-19 14:59:38 +02:00
{
"templateVersion" : "1.0.0" ,
2022-10-21 15:51:32 +02:00
"defaultVersion" : "v2.0.6" ,
2022-10-19 14:59:38 +02:00
"name" : "glitchtip" ,
"displayName" : "GlitchTip" ,
"description" : "" ,
"services" : {
"$$id" : {
"name" : "GlitchTip" ,
"depends_on" : [
2022-10-20 09:18:13 +02:00
"$$id-postgresql" ,
"$$id-redis"
2022-10-19 14:59:38 +02:00
] ,
"image" : "glitchtip/glitchtip:$$core_version" ,
"volumes" : [ ] ,
"environment" : [
"PORT=3000" ,
"GLITCHTIP_DOMAIN=$$config_glitchtip_domain" ,
"SECRET_KEY=$$secret_secret_key" ,
"DATABASE_URL=$$secret_database_url" ,
"REDIS_URL=$$secret_redis_url" ,
"DEFAULT_FROM_EMAIL=$$config_default_from_email" ,
"EMAIL_HOST=$$config_email_host" ,
"EMAIL_PORT=$$config_email_port" ,
"EMAIL_HOST_USER=$$config_email_host_user" ,
"EMAIL_HOST_PASSWORD=$$secret_email_host_password" ,
"EMAIL_USE_TLS=$$config_email_use_tls" ,
"EMAIL_USE_SSL=$$config_email_use_ssl" ,
"EMAIL_BACKEND=$$config_email_backend" ,
"MAILGUN_API_KEY=$$secret_mailgun_api_key" ,
"SENDGRID_API_KEY=$$secret_sendgrid_api_key" ,
"ENABLE_OPEN_USER_REGISTRATION=$$config_enable_open_user_registration" ,
"DJANGO_SUPERUSER_EMAIL=$$config_django_superuser_email" ,
"DJANGO_SUPERUSER_PASSWORD=$$secret_django_superuser_password" ,
"DJANGO_SUPERUSER_USERNAME=$$config_django_superuser_username" ,
] ,
"ports" : [
"8000"
]
} ,
"$$id-postgresql" : {
"name" : "PostgreSQL" ,
"depends_on" : [ ] ,
"image" : "postgres:12-alpine" ,
"volumes" : [
"$$id-postgresql-data:/var/lib/postgresql/data" ,
] ,
"environment" : [
"POSTGRES_USER=$$config_postgres_user" ,
"POSTGRES_PASSWORD=$$secret_postgres_password" ,
"POSTGRES_DB=$$config_postgres_db" ,
] ,
"ports" : [ ]
} ,
"$$id-redis" : {
"name" : "Redis" ,
"depends_on" : [ ] ,
"image" : "redis:7-alpine" ,
"volumes" : [
"$$id-postgresql-redis-data:/data" ,
] ,
"environment" : [ ] ,
"ports" : [ ]
}
} ,
"variables" : [
{
"id" : "$$config_glitchtip_domain" ,
"name" : "GLITCHTIP_DOMAIN" ,
2022-10-20 09:18:13 +02:00
"label" : "GlitchTip Domain" ,
2022-10-19 14:59:38 +02:00
"defaultValue" : "$$generate_fqdn" ,
"description" : "" ,
} ,
{
"id" : "$$secret_database_url" ,
"name" : "DATABASE_URL" ,
"label" : "Database URL for PostgreSQL" ,
"defaultValue" : "postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db" ,
"description" : "" ,
} ,
{
"id" : "$$secret_redis_url" ,
"name" : "REDIS_URL" ,
"label" : "Redis URL" ,
"defaultValue" : "redis://$$id-redis:6379/0" ,
"description" : "" ,
} ,
{
"id" : "$$config_default_from_email" ,
"name" : "DEFAULT_FROM_EMAIL" ,
"label" : "Default Email Address" ,
"defaultValue" : "noreply@example.com" ,
"description" : "" ,
} ,
{
"id" : "$$config_email_host" ,
"name" : "EMAIL_HOST" ,
"label" : "Email SMTP Host" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$config_email_port" ,
"name" : "EMAIL_PORT" ,
"label" : "Email SMTP Port" ,
"defaultValue" : "25" ,
"description" : "" ,
} ,
{
"id" : "$$config_email_host_user" ,
"name" : "EMAIL_HOST_USER" ,
"label" : "Email SMTP User" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$secret_email_host_password" ,
"name" : "EMAIL_HOST_PASSWORD" ,
"label" : "Email SMTP Password" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$config_email_use_tls" ,
"name" : "EMAIL_USE_TLS" ,
"label" : "Email Use TLS" ,
"defaultValue" : "false" ,
"description" : "" ,
} ,
{
"id" : "$$config_email_use_ssl" ,
"name" : "EMAIL_USE_SSL" ,
"label" : "Email Use SSL" ,
"defaultValue" : "false" ,
"description" : "" ,
} ,
{
"id" : "$$secret_email_smtp_password" ,
"name" : "EMAIL_SMTP_PASSWORD" ,
"label" : "SMTP Password" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$config_email_backend" ,
"name" : "EMAIL_BACKEND" ,
"label" : "Email Backend" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$secret_mailgun_api_key" ,
"name" : "MAILGUN_API_KEY" ,
"label" : "Mailgun API Key" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$secret_sendgrid_api_key" ,
"name" : "SENDGRID_API_KEY" ,
"label" : "Sendgrid API Key" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$config_enable_open_user_registration" ,
"name" : "ENABLE_OPEN_USER_REGISTRATION" ,
"label" : "Enable Open User Registration" ,
"defaultValue" : "true" ,
"description" : "" ,
} ,
{
"id" : "$$config_django_superuser_email" ,
"name" : "DJANGO_SUPERUSER_EMAIL" ,
"label" : "Django Superuser Email" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$config_django_superuser_username" ,
"name" : "DJANGO_SUPERUSER_USERNAME" ,
"label" : "Django Superuser Username" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$secret_django_superuser_password" ,
"name" : "DJANGO_SUPERUSER_PASSWORD" ,
"label" : "Django Superuser Password" ,
"defaultValue" : "$$generate_password" ,
"description" : "" ,
} ,
{
"id" : "$$config_postgres_user" ,
"name" : "POSTGRES_USER" ,
"label" : "PostgreSQL User" ,
"defaultValue" : "$$generate_username" ,
"description" : "" ,
} ,
{
"id" : "$$secret_postgres_password" ,
"name" : "POSTGRES_PASSWORD" ,
"label" : "PostgreSQL Password" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$config_postgres_db" ,
"name" : "POSTGRES_DB" ,
"label" : "PostgreSQL Database" ,
"defaultValue" : "hasura" ,
"description" : "" ,
} ,
]
} ,
2022-10-19 13:14:39 +02:00
{
"templateVersion" : "1.0.0" ,
2022-10-21 15:51:32 +02:00
"defaultVersion" : "v2.13.0" ,
2022-10-19 13:14:39 +02:00
"name" : "hasura" ,
"displayName" : "Hasura" ,
"description" : "Instant realtime GraphQL APIs on any Postgres application, existing or new." ,
"services" : {
"$$id" : {
"name" : "Hasura" ,
"depends_on" : [
"$$id-postgresql"
] ,
"image" : "hasura/graphql-engine:$$core_version" ,
"volumes" : [ ] ,
"environment" : [
2022-10-19 14:15:48 +02:00
"HASURA_GRAPHQL_ENABLE_CONSOLE=$$config_hasura_graphql_enable_console" ,
"HASURA_GRAPHQL_METADATA_DATABASE_URL=$$secret_hasura_graphql_metadata_database_url" ,
"HASURA_GRAPHQL_ADMIN_PASSWORD=$$secret_hasura_graphql_admin_password" ,
2022-10-19 13:14:39 +02:00
] ,
"ports" : [
"8080"
]
} ,
"$$id-postgresql" : {
"name" : "PostgreSQL" ,
"depends_on" : [ ] ,
"image" : "postgres:12-alpine" ,
"volumes" : [
"$$id-postgresql-data:/var/lib/postgresql/data" ,
] ,
"environment" : [
"POSTGRES_USER=$$config_postgres_user" ,
"POSTGRES_PASSWORD=$$secret_postgres_password" ,
"POSTGRES_DB=$$config_postgres_db" ,
] ,
"ports" : [ ]
}
} ,
"variables" : [
{
2022-10-19 14:15:48 +02:00
"id" : "$$config_hasura_graphql_enable_console" ,
"name" : "HASURA_GRAPHQL_ENABLE_CONSOLE" ,
"label" : "Enable Hasura Console" ,
"defaultValue" : "true" ,
"description" : "" ,
} ,
{
"id" : "$$secret_hasura_graphql_metadata_database_url" ,
2022-10-19 13:14:39 +02:00
"name" : "HASURA_GRAPHQL_METADATA_DATABASE_URL" ,
"label" : "Hasura Metadata Database URL" ,
"defaultValue" : "postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db" ,
"description" : ""
} ,
{
2022-10-19 14:15:48 +02:00
"id" : "$$secret_hasura_graphql_admin_password" ,
2022-10-19 13:14:39 +02:00
"name" : "HASURA_GRAPHQL_ADMIN_PASSWORD" ,
"label" : "Hasura Admin Password" ,
"defaultValue" : "$$generate_password" ,
2022-10-19 14:15:48 +02:00
"description" : "" ,
"extras" : {
"isVisibleOnUI" : true ,
}
2022-10-19 13:14:39 +02:00
} ,
{
"id" : "$$config_postgres_user" ,
"name" : "POSTGRES_USER" ,
"label" : "PostgreSQL User" ,
"defaultValue" : "$$generate_username" ,
"description" : "" ,
} ,
{
"id" : "$$secret_postgres_password" ,
"name" : "POSTGRES_PASSWORD" ,
"label" : "PostgreSQL Password" ,
"defaultValue" : "$$generate_password" ,
"description" : "" ,
} ,
{
"id" : "$$config_postgres_db" ,
"name" : "POSTGRES_DB" ,
"label" : "PostgreSQL Database" ,
"defaultValue" : "hasura" ,
"description" : "" ,
} ,
]
} ,
2022-10-19 11:26:27 +02:00
{
"templateVersion" : "1.0.0" ,
2022-10-21 15:51:32 +02:00
"defaultVersion" : "postgresql-v1.38.0" ,
2022-10-19 11:26:27 +02:00
"name" : "umami" ,
"displayName" : "Umami" ,
"description" : "Umami is a simple, easy to use, self-hosted web analytics solution. The goal is to provide you with a friendly privacy-focused alternative to Google Analytics." ,
"services" : {
"$$id" : {
"name" : "Umami" ,
"documentation" : "Official docs are [here](https://umami.is/docs/getting-started)" ,
"depends_on" : [
"$$id-postgresql"
] ,
"image" : "ghcr.io/umami-software/umami:$$core_version" ,
"volumes" : [ ] ,
"environment" : [
2022-10-19 12:00:43 +02:00
"ADMIN_PASSWORD=$$secret_admin_password" ,
2022-10-19 11:26:27 +02:00
"DATABASE_URL=$$secret_database_url" ,
"DATABASE_TYPE=postgresql" ,
"HASH_SALT=$$secret_hash_salt" ,
] ,
"ports" : [
"3000"
]
} ,
"$$id-postgresql" : {
"name" : "PostgreSQL" ,
"documentation" : "Official docs are [here](https://umami.is/docs/getting-started)" ,
"depends_on" : [ ] ,
"image" : "postgres:12-alpine" ,
"volumes" : [
"$$id-postgresql-data:/var/lib/postgresql/data" ,
] ,
"environment" : [
"POSTGRES_USER=$$config_postgres_user" ,
"POSTGRES_PASSWORD=$$secret_postgres_password" ,
"POSTGRES_DB=$$config_postgres_db" ,
] ,
"ports" : [ ] ,
"extras" : {
"files" : [
{
source : "$$workdir/schema.postgresql.sql" ,
2022-10-19 12:00:43 +02:00
destination : "/docker-entrypoint-initdb.d/schema.postgresql.sql" ,
content : `
2022-10-19 11:26:27 +02:00
-- CreateTable
CREATE TABLE "account" (
"user_id" SERIAL NOT NULL ,
"username" VARCHAR ( 255 ) NOT NULL ,
"password" VARCHAR ( 60 ) NOT NULL ,
"is_admin" BOOLEAN NOT NULL DEFAULT false ,
"created_at" TIMESTAMPTZ ( 6 ) DEFAULT CURRENT_TIMESTAMP ,
"updated_at" TIMESTAMPTZ ( 6 ) DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY ( "user_id" )
) ;
-- CreateTable
CREATE TABLE "event" (
"event_id" SERIAL NOT NULL ,
"website_id" INTEGER NOT NULL ,
"session_id" INTEGER NOT NULL ,
"created_at" TIMESTAMPTZ ( 6 ) DEFAULT CURRENT_TIMESTAMP ,
"url" VARCHAR ( 500 ) NOT NULL ,
"event_type" VARCHAR ( 50 ) NOT NULL ,
"event_value" VARCHAR ( 50 ) NOT NULL ,
PRIMARY KEY ( "event_id" )
) ;
-- CreateTable
CREATE TABLE "pageview" (
"view_id" SERIAL NOT NULL ,
"website_id" INTEGER NOT NULL ,
"session_id" INTEGER NOT NULL ,
"created_at" TIMESTAMPTZ ( 6 ) DEFAULT CURRENT_TIMESTAMP ,
"url" VARCHAR ( 500 ) NOT NULL ,
"referrer" VARCHAR ( 500 ) ,
PRIMARY KEY ( "view_id" )
) ;
-- CreateTable
CREATE TABLE "session" (
"session_id" SERIAL NOT NULL ,
"session_uuid" UUID NOT NULL ,
"website_id" INTEGER NOT NULL ,
"created_at" TIMESTAMPTZ ( 6 ) DEFAULT CURRENT_TIMESTAMP ,
"hostname" VARCHAR ( 100 ) ,
"browser" VARCHAR ( 20 ) ,
"os" VARCHAR ( 20 ) ,
"device" VARCHAR ( 20 ) ,
"screen" VARCHAR ( 11 ) ,
"language" VARCHAR ( 35 ) ,
"country" CHAR ( 2 ) ,
PRIMARY KEY ( "session_id" )
) ;
-- CreateTable
CREATE TABLE "website" (
"website_id" SERIAL NOT NULL ,
"website_uuid" UUID NOT NULL ,
"user_id" INTEGER NOT NULL ,
"name" VARCHAR ( 100 ) NOT NULL ,
"domain" VARCHAR ( 500 ) ,
"share_id" VARCHAR ( 64 ) ,
"created_at" TIMESTAMPTZ ( 6 ) DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY ( "website_id" )
) ;
-- CreateIndex
CREATE UNIQUE INDEX "account.username_unique" ON "account" ( "username" ) ;
-- CreateIndex
CREATE INDEX "event_created_at_idx" ON "event" ( "created_at" ) ;
-- CreateIndex
CREATE INDEX "event_session_id_idx" ON "event" ( "session_id" ) ;
-- CreateIndex
CREATE INDEX "event_website_id_idx" ON "event" ( "website_id" ) ;
-- CreateIndex
CREATE INDEX "pageview_created_at_idx" ON "pageview" ( "created_at" ) ;
-- CreateIndex
CREATE INDEX "pageview_session_id_idx" ON "pageview" ( "session_id" ) ;
-- CreateIndex
CREATE INDEX "pageview_website_id_created_at_idx" ON "pageview" ( "website_id" , "created_at" ) ;
-- CreateIndex
CREATE INDEX "pageview_website_id_idx" ON "pageview" ( "website_id" ) ;
-- CreateIndex
CREATE INDEX "pageview_website_id_session_id_created_at_idx" ON "pageview" ( "website_id" , "session_id" , "created_at" ) ;
-- CreateIndex
CREATE UNIQUE INDEX "session.session_uuid_unique" ON "session" ( "session_uuid" ) ;
-- CreateIndex
CREATE INDEX "session_created_at_idx" ON "session" ( "created_at" ) ;
-- CreateIndex
CREATE INDEX "session_website_id_idx" ON "session" ( "website_id" ) ;
-- CreateIndex
CREATE UNIQUE INDEX "website.website_uuid_unique" ON "website" ( "website_uuid" ) ;
-- CreateIndex
CREATE UNIQUE INDEX "website.share_id_unique" ON "website" ( "share_id" ) ;
-- CreateIndex
CREATE INDEX "website_user_id_idx" ON "website" ( "user_id" ) ;
-- AddForeignKey
ALTER TABLE "event" ADD FOREIGN KEY ( "session_id" ) REFERENCES "session" ( "session_id" ) ON DELETE CASCADE ON UPDATE CASCADE ;
-- AddForeignKey
ALTER TABLE "event" ADD FOREIGN KEY ( "website_id" ) REFERENCES "website" ( "website_id" ) ON DELETE CASCADE ON UPDATE CASCADE ;
-- AddForeignKey
ALTER TABLE "pageview" ADD FOREIGN KEY ( "session_id" ) REFERENCES "session" ( "session_id" ) ON DELETE CASCADE ON UPDATE CASCADE ;
-- AddForeignKey
ALTER TABLE "pageview" ADD FOREIGN KEY ( "website_id" ) REFERENCES "website" ( "website_id" ) ON DELETE CASCADE ON UPDATE CASCADE ;
-- AddForeignKey
ALTER TABLE "session" ADD FOREIGN KEY ( "website_id" ) REFERENCES "website" ( "website_id" ) ON DELETE CASCADE ON UPDATE CASCADE ;
-- AddForeignKey
ALTER TABLE "website" ADD FOREIGN KEY ( "user_id" ) REFERENCES "account" ( "user_id" ) ON DELETE CASCADE ON UPDATE CASCADE ;
2022-10-19 12:00:43 +02:00
insert into account ( username , password , is_admin ) values ( 'admin' , '$$hashed$$secret_admin_password' , true ) ; `
2022-10-19 11:26:27 +02:00
} ,
]
}
}
} ,
"variables" : [
{
"id" : "$$secret_database_url" ,
"name" : "DATABASE_URL" ,
"label" : "Database URL for PostgreSQL" ,
"defaultValue" : "postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db" ,
"description" : "" ,
} ,
{
"id" : "$$secret_hash_salt" ,
"name" : "HASH_SALT" ,
"label" : "Hash Salt" ,
"defaultValue" : "$$generate_passphrase" ,
"description" : "" ,
} ,
{
"id" : "$$config_postgres_user" ,
"name" : "POSTGRES_USER" ,
"label" : "PostgreSQL User" ,
"defaultValue" : "$$generate_username" ,
"description" : "" ,
} ,
{
2022-10-19 12:00:43 +02:00
"id" : "$$secret_postgres_password" ,
2022-10-19 11:26:27 +02:00
"name" : "POSTGRES_PASSWORD" ,
"label" : "PostgreSQL Password" ,
"defaultValue" : "$$generate_password" ,
"description" : "" ,
} ,
{
"id" : "$$config_postgres_db" ,
"name" : "POSTGRES_DB" ,
"label" : "PostgreSQL Database" ,
"defaultValue" : "umami" ,
"description" : "" ,
} ,
{
"id" : "$$secret_admin_password" ,
"name" : "ADMIN_PASSWORD" ,
2022-10-19 13:14:39 +02:00
"label" : "Initial Admin Password" ,
2022-10-19 12:00:43 +02:00
"defaultValue" : "$$generate_password" ,
2022-10-19 11:26:27 +02:00
"description" : "" ,
2022-10-19 12:00:43 +02:00
"extras" : {
"isVisibleOnUI" : true ,
}
2022-10-19 11:26:27 +02:00
} ,
]
} ,
2022-10-19 10:29:08 +02:00
{
"templateVersion" : "1.0.0" ,
2022-10-21 15:51:32 +02:00
"defaultVersion" : "v0.29.1" ,
2022-10-19 10:29:08 +02:00
"name" : "meilisearch" ,
"displayName" : "MeiliSearch" ,
"description" : "MeiliSearch is a lightning Fast, Ultra Relevant, and Typo-Tolerant Search Engine" ,
"services" : {
"$$id" : {
"name" : "MeiliSearch" ,
"documentation" : "https://docs.meilisearch.com/" ,
2022-10-19 11:26:27 +02:00
"depends_on" : [ ] ,
2022-10-19 10:29:08 +02:00
"image" : "getmeili/meilisearch:$$core_version" ,
"volumes" : [
"$$id-datams:/meili_data/data.ms" ,
"$$id-data:/meili_data" ,
"$$id-snapshot:/snapshot" ,
"$$id-dump:/dumps"
] ,
"environment" : [
"MEILI_MASTER_KEY=$$secret_meili_master_key" ,
] ,
"ports" : [
"7700"
]
}
} ,
"variables" : [
{
"id" : "$$secret_meili_master_key" ,
"name" : "MEILI_MASTER_KEY" ,
"label" : "Master Key" ,
"defaultValue" : "$$generate_passphrase" ,
2022-10-19 10:55:16 +02:00
"description" : "" ,
"extras" : {
"isVisibleOnUI" : true ,
}
2022-10-19 10:29:08 +02:00
}
]
} ,
2022-10-19 10:07:04 +02:00
{
"templateVersion" : "1.0.0" ,
2022-10-21 15:51:32 +02:00
"defaultVersion" : "latest" ,
2022-10-19 10:07:04 +02:00
"name" : "ghost" ,
"displayName" : "Ghost" ,
"description" : "Ghost is a free and open source blogging platform written in JavaScript and distributed under the MIT License" ,
"services" : {
"$$id" : {
"name" : "Ghost" ,
"documentation" : "Taken from https://docs.ghost.org/" ,
"depends_on" : [
2022-10-19 11:26:27 +02:00
"$$id-mariadb"
2022-10-19 10:07:04 +02:00
] ,
"image" : "bitnami/ghost:$$core_version" ,
"volumes" : [
"$$id-ghost:/bitnami/ghost" ,
] ,
"environment" : [
"url=$$config_url" ,
"GHOST_HOST=$$config_ghost_host" ,
"GHOST_ENABLE_HTTPS=$$config_ghost_enable_https" ,
"GHOST_EMAIL=$$config_ghost_email" ,
2022-10-19 10:24:53 +02:00
"GHOST_PASSWORD=$$secret_ghost_password" ,
2022-10-19 10:07:04 +02:00
"GHOST_DATABASE_HOST=$$config_ghost_database_host" ,
"GHOST_DATABASE_USER=$$config_mariadb_user" ,
2022-10-19 10:24:53 +02:00
"GHOST_DATABASE_PASSWORD=$$secret_ghost_database_password" ,
2022-10-19 10:07:04 +02:00
"GHOST_DATABASE_NAME=$$config_mariadb_database" ,
2022-10-19 10:24:53 +02:00
"GHOST_DATABASE_PORT_NUMBER=3306" ,
2022-10-19 10:07:04 +02:00
] ,
"ports" : [
"2368"
]
} ,
"$$id-mariadb" : {
"name" : "MariaDB" ,
"depends_on" : [ ] ,
"image" : "bitnami/mariadb:latest" ,
"volumes" : [
"$$id-mariadb:/bitnami/mariadb" ,
] ,
"environment" : [
"MARIADB_USER=$$config_mariadb_user" ,
"MARIADB_PASSWORD=$$secret_mariadb_password" ,
"MARIADB_DATABASE=$$config_mariadb_database" ,
"MARIADB_ROOT_USER=$$config_mariadb_root_user" ,
"MARIADB_ROOT_PASSWORD=$$secret_mariadb_root_password"
] ,
"ports" : [ ]
}
} ,
"variables" : [
{
"id" : "$$config_url" ,
"name" : "url" ,
"label" : "URL" ,
"defaultValue" : "$$generate_fqdn" ,
"description" : ""
} ,
{
"id" : "$$config_ghost_host" ,
"name" : "GHOST_HOST" ,
"label" : "Ghost Host" ,
"defaultValue" : "" ,
"description" : ""
} ,
{
"id" : "$$config_ghost_enable_https" ,
"name" : "GHOST_ENABLE_HTTPS" ,
"label" : "Ghost Enable HTTPS" ,
2022-10-19 10:24:53 +02:00
"defaultValue" : "no" ,
2022-10-19 10:07:04 +02:00
"description" : ""
} ,
{
"id" : "$$config_ghost_email" ,
"name" : "GHOST_EMAIL" ,
2022-10-19 10:24:53 +02:00
"label" : "Ghost Default Email" ,
2022-10-19 10:07:04 +02:00
"defaultValue" : "admin@example.com" ,
"description" : ""
} ,
2022-10-19 10:24:53 +02:00
{
"id" : "$$secret_ghost_password" ,
"name" : "GHOST_PASSWORD" ,
"label" : "Ghost Default Password" ,
"defaultValue" : "$$generate_password" ,
"description" : ""
} ,
2022-10-19 10:07:04 +02:00
{
"id" : "$$config_ghost_database_host" ,
"name" : "GHOST_DATABASE_HOST" ,
"label" : "Ghost Database Host" ,
"defaultValue" : "$$id-mariadb" ,
"description" : ""
} ,
{
"id" : "$$config_ghost_database_user" ,
"name" : "GHOST_DATABASE_USER" ,
"label" : "MariaDB User" ,
"defaultValue" : "$$config_mariadb_user" ,
"description" : ""
} ,
{
2022-10-19 10:24:53 +02:00
"id" : "$$secret_ghost_database_password" ,
2022-10-19 10:07:04 +02:00
"name" : "GHOST_DATABASE_PASSWORD" ,
"label" : "MariaDB Password" ,
2022-10-19 10:24:53 +02:00
"defaultValue" : "$$secret_mariadb_password" ,
2022-10-19 10:07:04 +02:00
"description" : ""
} ,
{
"id" : "$$config_ghost_database_name" ,
"name" : "GHOST_DATABASE_NAME" ,
"label" : "MariaDB Database" ,
"defaultValue" : "$$config_mariadb_database" ,
"description" : ""
} ,
{
"id" : "$$config_mariadb_user" ,
"name" : "MARIADB_USER" ,
"label" : "MariaDB User" ,
"defaultValue" : "$$generate_username" ,
"description" : ""
} ,
{
"id" : "$$secret_mariadb_password" ,
"name" : "MARIADB_PASSWORD" ,
"label" : "MariaDB Password" ,
"defaultValue" : "$$generate_password" ,
"description" : ""
} ,
{
"id" : "$$config_mariadb_database" ,
"name" : "MARIADB_DATABASE" ,
"label" : "MariaDB Database" ,
"defaultValue" : "ghost" ,
"description" : ""
} ,
{
"id" : "$$config_mariadb_root_user" ,
"name" : "MARIADB_ROOT_USER" ,
"label" : "MariaDB Root User" ,
"defaultValue" : "$$generate_username" ,
"description" : ""
} ,
{
"id" : "$$secret_mariadb_root_password" ,
"name" : "MARIADB_ROOT_PASSWORD" ,
"label" : "MariaDB Root Password" ,
"defaultValue" : "$$generate_password" ,
"description" : ""
} ,
]
} ,
2022-10-18 15:01:18 +02:00
{
"templateVersion" : "1.0.0" ,
2022-10-21 15:51:32 +02:00
"defaultVersion" : "php8.1" ,
2022-10-18 15:01:18 +02:00
"name" : "wordpress" ,
"displayName" : "WordPress" ,
"description" : "WordPress is a content management system based on PHP." ,
"services" : {
"$$id" : {
"name" : "WordPress" ,
"documentation" : " Taken from https://docs.docker.com/compose/wordpress/" ,
"depends_on" : [
2022-10-19 11:26:27 +02:00
"$$id-mysql"
2022-10-18 15:01:18 +02:00
] ,
"image" : "wordpress:$$core_version" ,
"volumes" : [
"$$id-wordpress-data:/var/www/html" ,
] ,
"environment" : [
"WORDPRESS_DB_HOST=$$config_wordpress_db_host" ,
2022-10-18 15:17:59 +02:00
"WORDPRESS_DB_USER=$$config_mysql_user" ,
"WORDPRESS_DB_PASSWORD=$$secret_mysql_password" ,
"WORDPRESS_DB_NAME=$$config_mysql_database" ,
2022-10-18 15:01:18 +02:00
"WORDPRESS_CONFIG_EXTRA=$$config_wordpress_config_extra"
] ,
"ports" : [
"80"
]
} ,
"$$id-mysql" : {
"name" : "MySQL" ,
"depends_on" : [ ] ,
"image" : "mysql:5.7" ,
"volumes" : [
"$$id-mysql-data:/var/lib/mysql" ,
] ,
"environment" : [
"MYSQL_ROOT_PASSWORD=$$secret_mysql_root_password" ,
"MYSQL_ROOT_USER=$$config_mysql_root_user" ,
"MYSQL_DATABASE=$$config_mysql_database" ,
"MYSQL_USER=$$config_mysql_user" ,
"MYSQL_PASSWORD=$$secret_mysql_password" ,
] ,
"ports" : [ ]
}
} ,
"variables" : [
{
"id" : "$$config_wordpress_db_host" ,
"name" : "WORDPRESS_DB_HOST" ,
"label" : "WordPress DB Host" ,
"defaultValue" : "$$id-mysql" ,
"description" : ""
} ,
{
"id" : "$$config_wordpress_db_user" ,
"name" : "WORDPRESS_DB_USER" ,
"label" : "WordPress DB User" ,
"defaultValue" : "$$config_mysql_user" ,
"description" : ""
} ,
{
"id" : "$$secret_wordpress_db_password" ,
"name" : "WORDPRESS_DB_PASSWORD" ,
"label" : "WordPress DB Password" ,
"defaultValue" : "$$secret_mysql_password" ,
"description" : ""
} ,
{
"id" : "$$config_wordpress_db_name" ,
"name" : "WORDPRESS_DB_NAME" ,
"label" : "WordPress DB Name" ,
"defaultValue" : "$$config_mysql_database" ,
"description" : ""
} ,
{
"id" : "$$config_wordpress_config_extra" ,
"name" : "WORDPRESS_CONFIG_EXTRA" ,
"label" : "WordPress Config Extra" ,
"defaultValue" : "" ,
"description" : ""
} ,
{
"id" : "$$secret_mysql_root_password" ,
"name" : "MYSQL_ROOT_PASSWORD" ,
"label" : "MySQL Root Password" ,
"defaultValue" : "$$generate_password" ,
"description" : ""
} ,
{
"id" : "$$config_mysql_root_user" ,
"name" : "MYSQL_ROOT_USER" ,
"label" : "MySQL Root User" ,
"defaultValue" : "$$generate_username" ,
"description" : ""
} ,
{
"id" : "$$config_mysql_database" ,
"name" : "MYSQL_DATABASE" ,
"label" : "MySQL Database" ,
"defaultValue" : "wordpress" ,
"description" : ""
} ,
{
"id" : "$$config_mysql_user" ,
"name" : "MYSQL_USER" ,
"label" : "MySQL User" ,
"defaultValue" : "$$generate_username" ,
"description" : ""
} ,
{
"id" : "$$secret_mysql_password" ,
"name" : "MYSQL_PASSWORD" ,
"label" : "MySQL Password" ,
"defaultValue" : "$$generate_password" ,
"description" : ""
}
]
} ,
2022-10-18 14:34:10 +02:00
{
"templateVersion" : "1.0.0" ,
2022-10-21 15:51:32 +02:00
"defaultVersion" : "4.7.1" ,
2022-10-18 14:45:30 +02:00
"name" : "vscodeserver" ,
"displayName" : "VSCode Server" ,
"description" : "vscode-server by Coder is VS Code running on a remote server, accessible through the browser." ,
2022-10-18 14:34:10 +02:00
"services" : {
"$$id" : {
2022-10-18 14:45:30 +02:00
"name" : "VSCode Server" ,
2022-10-18 14:34:10 +02:00
"documentation" : "Taken from https://github.com/coder/code-server/. " ,
"depends_on" : [ ] ,
"image" : "codercom/code-server:$$core_version" ,
"volumes" : [
"$$id-config-data:/home/coder/.local/share/code-server" ,
"$$id-vscodeserver-data:/home/coder" ,
"$$id-keys-directory:/root/.ssh" ,
"$$id-theme-and-plugin-directory:/root/.local/share/code-server"
] ,
"environment" : [
"PASSWORD=$$secret_password" ,
] ,
"ports" : [
"8080"
]
}
} ,
"variables" : [
{
"id" : "$$secret_password" ,
"name" : "PASSWORD" ,
"label" : "Password" ,
"defaultValue" : "$$generate_password" ,
2022-10-18 14:45:30 +02:00
"description" : "" ,
"extras" : {
"isVisibleOnUI" : true ,
}
2022-10-18 14:34:10 +02:00
}
]
} ,
2022-10-18 13:52:47 +02:00
{
"templateVersion" : "1.0.0" ,
2022-10-21 15:51:32 +02:00
"defaultVersion" : "RELEASE.2022-10-15T19-57-03Z" ,
2022-10-18 14:12:33 +02:00
"name" : "minio" ,
"displayName" : "MinIO" ,
"description" : " MinIO is a cloud storage server compatible with Amazon S3" ,
"services" : {
"$$id" : {
"name" : "MinIO" ,
"command" : "server /data --console-address :9001" ,
"documentation" : "Taken from https://docs.min.io/docs/minio-docker-quickstart-guide.html" ,
"depends_on" : [ ] ,
"image" : "minio/minio:$$core_version" ,
"volumes" : [
"$$id-data-write:/files" ,
] ,
"environment" : [
"MINIO_SERVER_URL=$$config_minio_server_url" ,
"MINIO_BROWSER_REDIRECT_URL=$$config_minio_browser_redirect_url" ,
"MINIO_DOMAIN=$$config_minio_domain" ,
"MINIO_ROOT_USER=$$config_minio_root_user" ,
2022-10-18 14:34:10 +02:00
"MINIO_ROOT_PASSWORD=$$secret_minio_root_user_password"
2022-10-18 14:12:33 +02:00
] ,
"ports" : [
"9001" ,
"9000"
]
}
} ,
"variables" : [
{
"id" : "$$config_server_url" ,
"name" : "MINIO_SERVER_URL" ,
2022-10-18 14:34:10 +02:00
"label" : "Server/Console URL" ,
2022-10-18 14:12:33 +02:00
"defaultValue" : "" ,
"description" : "" ,
2022-10-18 14:34:10 +02:00
"extras" : {
"required" : true
}
2022-10-18 14:12:33 +02:00
} ,
{
"id" : "$$config_browser_redirect_url" ,
"name" : "MINIO_BROWSER_REDIRECT_URL" ,
"label" : "Browser Redirect URL" ,
"defaultValue" : "$$generate_fqdn" ,
"description" : "" ,
} ,
{
"id" : "$$config_minio_domain" ,
"name" : "MINIO_DOMAIN" ,
"label" : "Domain" ,
"defaultValue" : "$$generate_domain" ,
"description" : "" ,
} ,
{
"id" : "$$config_minio_root_user" ,
"name" : "MINIO_ROOT_USER" ,
"label" : "Root User" ,
"defaultValue" : "$$generate_username" ,
"description" : "" ,
} ,
{
"id" : "$$secret_minio_root_user_password" ,
"name" : "MINIO_ROOT_PASSWORD" ,
"label" : "Root User Password" ,
"defaultValue" : "$$generate_password" ,
"description" : "" ,
2022-10-18 14:34:10 +02:00
}
2022-10-18 14:12:33 +02:00
]
} ,
{
"templateVersion" : "1.0.0" ,
2022-10-21 15:51:32 +02:00
"defaultVersion" : "0.21.1" ,
2022-10-18 13:52:47 +02:00
"name" : "fider" ,
"displayName" : "Fider" ,
"description" : "Fider is a platform to collect and organize customer feedback." ,
"services" : {
"$$id" : {
"name" : "Fider" ,
"image" : "getfider/fider:$$core_version" ,
"documentation" : "Taken from https://hub.docker.com/r/getfider/fider/" ,
"depends_on" : [
'$$id-postgresql'
] ,
"environment" : [
"BASE_URL=$$config_base_url" ,
"JWT_SECRET=$$secret_jwt_secret" ,
"EMAIL_NOREPLY=$$config_email_noreply" ,
2022-10-19 14:59:38 +02:00
"EMAIL_MAILGUN_API=$$secret_email_mailgun_api" ,
2022-10-18 13:52:47 +02:00
"EMAIL_MAILGUN_REGION=$$config_email_mailgun_region" ,
"EMAIL_MAILGUN_DOMAIN=$$config_email_mailgun_domain" ,
"EMAIL_SMTP_HOST=$$config_email_smtp_host" ,
"EMAIL_SMTP_PORT=$$config_email_smtp_port" ,
"EMAIL_SMTP_USER=$$config_email_smtp_user" ,
"EMAIL_SMTP_PASSWORD=$$secret_email_smtp_password" ,
"EMAIL_SMTP_ENABLE_STARTTLS=$$config_email_smtp_enable_starttls" ,
] ,
"ports" : [
"3000"
]
} ,
"$$id-postgresql" : {
"name" : "PostgreSQL" ,
"documentation" : "Taken from https://hub.docker.com/r/getfider/fider/" ,
"depends_on" : [ ] ,
"image" : "postgres:12-alpine" ,
"volumes" : [
"$$id-postgresql-data:/var/lib/postgresql/data"
] ,
"environment" : [
"POSTGRES_USER=$$config_postgres_user" ,
"POSTGRES_PASSWORD=$$secret_postgres_password" ,
"POSTGRES_DB=$$config_postgres_db" ,
]
}
} ,
"variables" : [
{
"id" : "$$config_base_url" ,
"name" : "BASE_URL" ,
"label" : "Base URL" ,
"defaultValue" : "$$generate_fqdn" ,
"description" : "" ,
} ,
{
"id" : "$$secret_database_url" ,
"name" : "DATABASE_URL" ,
"label" : "Database URL for PostgreSQL" ,
"defaultValue" : "postgresql://$$config_postgres_user:$$secret_postgres_password@$$id-postgresql:5432/$$config_postgres_db" ,
"description" : "" ,
} ,
{
"id" : "$$secret_jwt_secret" ,
"name" : "JWT_SECRET" ,
"label" : "JWT Secret" ,
"defaultValue" : "$$generate_passphrase" ,
"description" : "" ,
} ,
{
"id" : "$$config_email_noreply" ,
"name" : "EMAIL_NOREPLY" ,
"label" : "No Reply Email Address" ,
"defaultValue" : "noreply@example.com" ,
"description" : "" ,
} ,
{
2022-10-19 14:59:38 +02:00
"id" : "$$secret_email_mailgun_api" ,
"name" : "EMAIL_MAILGUN_API" ,
2022-10-18 13:52:47 +02:00
"label" : "Mailgun API Key" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$config_email_mailgun_region" ,
"name" : "EMAIL_MAILGUN_REGION" ,
"label" : "Mailgun Region" ,
"defaultValue" : "EU" ,
"description" : "" ,
} ,
{
"id" : "$$config_email_mailgun_domain" ,
"name" : "EMAIL_MAILGUN_DOMAIN" ,
"label" : "Mailgun Domain" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$config_email_smtp_host" ,
"name" : "EMAIL_SMTP_HOST" ,
"label" : "SMTP Host" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$config_email_smtp_port" ,
"name" : "EMAIL_SMTP_PORT" ,
"label" : "SMTP Port" ,
"defaultValue" : "587" ,
"description" : "" ,
} ,
{
"id" : "$$config_email_smtp_user" ,
"name" : "EMAIL_SMTP_USER" ,
"label" : "SMTP User" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$secret_email_smtp_password" ,
"name" : "EMAIL_SMTP_PASSWORD" ,
"label" : "SMTP Password" ,
"defaultValue" : "" ,
"description" : "" ,
} ,
{
"id" : "$$config_email_smtp_enable_starttls" ,
"name" : "EMAIL_SMTP_ENABLE_STARTTLS" ,
"label" : "SMTP Enable StartTLS" ,
"defaultValue" : "false" ,
"description" : "" ,
} ,
{
"id" : "$$config_postgres_user" ,
"name" : "POSTGRES_USER" ,
"label" : "PostgreSQL User" ,
"defaultValue" : "$$generate_username" ,
"description" : "" ,
} ,
{
"id" : "$$secret_postgres_password" ,
"name" : "POSTGRES_PASSWORD" ,
"label" : "PostgreSQL Password" ,
"defaultValue" : "$$generate_password" ,
"description" : "" ,
} ,
{
"id" : "$$config_postgres_db" ,
"name" : "POSTGRES_DB" ,
"label" : "PostgreSQL Database" ,
"defaultValue" : "$$generate_username" ,
"description" : "" ,
} ,
]
} ,
2022-10-14 15:48:37 +02:00
{
"templateVersion" : "1.0.0" ,
2022-10-21 15:51:32 +02:00
"defaultVersion" : "0.198.1" ,
2022-10-14 15:48:37 +02:00
"name" : "n8n" ,
"displayName" : "n8n.io" ,
"description" : "n8n is a free and open node based Workflow Automation Tool." ,
"services" : {
"$$id" : {
2022-10-17 15:43:57 +02:00
"name" : "N8n" ,
2022-10-14 15:48:37 +02:00
"documentation" : "Taken from https://hub.docker.com/r/n8nio/n8n" ,
"depends_on" : [ ] ,
"image" : "n8nio/n8n:$$core_version" ,
"volumes" : [
"$$id-data:/root/.n8n" ,
"$$id-data-write:/files" ,
"/var/run/docker.sock:/var/run/docker.sock"
] ,
"environment" : [
2022-10-17 15:43:57 +02:00
"WEBHOOK_URL=$$config_webhook_url"
2022-10-14 15:48:37 +02:00
] ,
"ports" : [
"5678"
]
}
} ,
2022-10-17 15:43:57 +02:00
"variables" : [
{
"id" : "$$config_webhook_url" ,
"name" : "WEBHOOK_URL" ,
"label" : "Webhook URL" ,
"defaultValue" : "$$generate_fqdn" ,
"description" : "" ,
} ]
2022-10-14 15:48:37 +02:00
} ,
{
"templateVersion" : "1.0.0" ,
2022-10-21 15:51:32 +02:00
"defaultVersion" : "stable" ,
2022-10-14 15:48:37 +02:00
"name" : "plausibleanalytics" ,
"displayName" : "PlausibleAnalytics" ,
"description" : "Plausible is a lightweight and open-source website analytics tool." ,
"services" : {
"$$id" : {
2022-10-17 15:43:57 +02:00
"name" : "Plausible Analytics" ,
2022-10-14 15:48:37 +02:00
"documentation" : "Taken from https://plausible.io/" ,
2022-10-18 11:32:38 +02:00
"command" : 'sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh db init-admin && /entrypoint.sh run"' ,
2022-10-14 15:48:37 +02:00
"depends_on" : [
"$$id-postgresql" ,
"$$id-clickhouse"
] ,
"image" : "plausible/analytics:$$core_version" ,
"environment" : [
2022-10-17 15:43:57 +02:00
"ADMIN_USER_EMAIL=$$config_admin_user_email" ,
"ADMIN_USER_NAME=$$config_admin_user_name" ,
2022-10-18 11:32:38 +02:00
"ADMIN_USER_PWD=$$secret_admin_user_pwd" ,
2022-10-17 15:43:57 +02:00
"BASE_URL=$$config_base_url" ,
"SECRET_KEY_BASE=$$secret_secret_key_base" ,
"DISABLE_AUTH=$$config_disable_auth" ,
"DISABLE_REGISTRATION=$$config_disable_registration" ,
"DATABASE_URL=$$secret_database_url" ,
"CLICKHOUSE_DATABASE_URL=$$secret_clickhouse_database_url" ,
2022-10-14 15:48:37 +02:00
] ,
"ports" : [
"8000"
] ,
} ,
"$$id-postgresql" : {
2022-10-17 15:43:57 +02:00
"name" : "PostgreSQL" ,
2022-10-14 15:48:37 +02:00
"documentation" : "Taken from https://plausible.io/" ,
"image" : "bitnami/postgresql:13.2.0" ,
2022-10-18 11:32:38 +02:00
"volumes" : [
2022-10-18 12:02:09 +02:00
'$$id-postgresql-data:/bitnami/postgresql' ,
2022-10-18 11:32:38 +02:00
] ,
2022-10-14 15:48:37 +02:00
"environment" : [
"POSTGRESQL_PASSWORD=$$secret_postgresql_password" ,
2022-10-17 15:43:57 +02:00
"POSTGRESQL_USERNAME=$$config_postgresql_username" ,
"POSTGRESQL_DATABASE=$$config_postgresql_database" ,
2022-10-14 15:48:37 +02:00
] ,
} ,
"$$id-clickhouse" : {
2022-10-17 15:43:57 +02:00
"name" : "Clickhouse" ,
2022-10-14 15:48:37 +02:00
"documentation" : "Taken from https://plausible.io/" ,
2022-10-18 11:32:38 +02:00
"volumes" : [
'$$id-clickhouse-data:/var/lib/clickhouse' ,
] ,
2022-10-14 15:48:37 +02:00
"image" : "yandex/clickhouse-server:21.3.2.5" ,
"ulimits" : {
"nofile" : {
"soft" : 262144 ,
"hard" : 262144
}
} ,
"extras" : {
2022-10-18 11:32:38 +02:00
"files" : [
2022-10-14 15:48:37 +02:00
{
2022-10-18 11:32:38 +02:00
source : "$$workdir/clickhouse-config.xml" ,
destination : '/etc/clickhouse-server/users.d/logging.xml' ,
2022-10-14 15:48:37 +02:00
content : '<yandex><logger><level>warning</level><console>true</console></logger><query_thread_log remove="remove"/><query_log remove="remove"/><text_log remove="remove"/><trace_log remove="remove"/><metric_log remove="remove"/><asynchronous_metric_log remove="remove"/><session_log remove="remove"/><part_log remove="remove"/></yandex>'
} ,
{
2022-10-18 11:32:38 +02:00
source : "$$workdir/clickhouse-user-config.xml" ,
destination : '/etc/clickhouse-server/config.d/logging.xml' ,
2022-10-14 15:48:37 +02:00
content : '<yandex><profiles><default><log_queries>0</log_queries><log_query_threads>0</log_query_threads></default></profiles></yandex>'
} ,
{
2022-10-18 11:32:38 +02:00
source : "$$workdir/init.query" ,
destination : '/docker-entrypoint-initdb.d/init.query' ,
2022-10-14 15:48:37 +02:00
content : 'CREATE DATABASE IF NOT EXISTS plausible;'
} ,
{
2022-10-18 11:32:38 +02:00
source : "$$workdir/init-db.sh" ,
destination : '/docker-entrypoint-initdb.d/init-db.sh' ,
2022-10-14 15:48:37 +02:00
content : 'clickhouse client --queries-file /docker-entrypoint-initdb.d/init.query'
}
]
}
} ,
} ,
"variables" : [
{
2022-10-17 15:43:57 +02:00
"id" : "$$config_base_url" ,
"name" : "BASE_URL" ,
"label" : "Base URL" ,
"defaultValue" : "$$generate_fqdn" ,
"description" : "You must set this to the FQDN of the Plausible Analytics instance. This is used to generate the links to the Plausible Analytics instance." ,
} ,
{
"id" : "$$secret_database_url" ,
"name" : "DATABASE_URL" ,
"label" : "Database URL for PostgreSQL" ,
"defaultValue" : "postgresql://$$config_postgresql_username:$$secret_postgresql_password@$$id-postgresql:5432/$$config_postgresql_database" ,
"description" : "" ,
} ,
{
"id" : "$$secret_clickhouse_database_url" ,
"name" : "CLICKHOUSE_DATABASE_URL" ,
"label" : "Database URL for Clickhouse" ,
"defaultValue" : "http://$$id-clickhouse:8123/plausible" ,
"description" : "" ,
} ,
{
"id" : "$$config_admin_user_email" ,
"name" : "ADMIN_USER_EMAIL" ,
"label" : "Admin Email Address" ,
2022-10-14 15:48:37 +02:00
"defaultValue" : "admin@example.com" ,
"description" : "This is the admin email. Please change it." ,
} ,
{
2022-10-17 15:43:57 +02:00
"id" : "$$config_admin_user_name" ,
"name" : "ADMIN_USER_NAME" ,
"label" : "Admin User Name" ,
2022-10-14 15:54:19 +02:00
"defaultValue" : "$$generate_username" ,
2022-10-14 15:48:37 +02:00
"description" : "This is the admin username. Please change it." ,
} ,
{
2022-10-18 11:32:38 +02:00
"id" : "$$secret_admin_user_pwd" ,
"name" : "ADMIN_USER_PWD" ,
2022-10-17 15:43:57 +02:00
"label" : "Admin User Password" ,
"defaultValue" : "$$generate_password" ,
2022-10-14 15:48:37 +02:00
"description" : "This is the admin password. Please change it." ,
2022-10-18 11:32:38 +02:00
"extras" : {
2022-10-20 10:42:47 +02:00
"isVisibleOnUI" : true ,
2022-10-18 11:32:38 +02:00
}
2022-10-14 15:48:37 +02:00
} ,
{
"id" : "$$secret_secret_key_base" ,
2022-10-17 15:43:57 +02:00
"name" : "SECRET_KEY_BASE" ,
2022-10-14 15:48:37 +02:00
"label" : "Secret Key Base" ,
2022-10-17 15:43:57 +02:00
"defaultValue" : "$$generate_passphrase" ,
2022-10-14 15:48:37 +02:00
"description" : "" ,
2022-10-20 16:06:33 +02:00
2022-10-14 15:48:37 +02:00
} ,
{
2022-10-17 15:43:57 +02:00
"id" : "$$config_disable_auth" ,
"name" : "DISABLE_AUTH" ,
"label" : "Disable Authentication" ,
2022-10-14 15:48:37 +02:00
"defaultValue" : "false" ,
"description" : "" ,
} ,
{
2022-10-17 15:43:57 +02:00
"id" : "$$config_disable_registration" ,
"name" : "DISABLE_REGISTRATION" ,
2022-10-14 15:48:37 +02:00
"label" : "Disable Registration" ,
"defaultValue" : "true" ,
"description" : "" ,
} ,
{
2022-10-17 15:43:57 +02:00
"id" : "$$config_postgresql_username" ,
"name" : "POSTGRESQL_USERNAME" ,
2022-10-14 15:48:37 +02:00
"label" : "PostgreSQL Username" ,
"defaultValue" : "postgresql" ,
"description" : "" ,
} ,
{
"id" : "$$secret_postgresql_password" ,
2022-10-17 15:43:57 +02:00
"name" : "POSTGRESQL_PASSWORD" ,
2022-10-14 15:48:37 +02:00
"label" : "PostgreSQL Password" ,
2022-10-14 15:54:19 +02:00
"defaultValue" : "$$generate_password" ,
2022-10-14 15:48:37 +02:00
"description" : "" ,
}
,
{
2022-10-17 15:43:57 +02:00
"id" : "$$config_postgresql_database" ,
"name" : "POSTGRESQL_DATABASE" ,
2022-10-14 15:48:37 +02:00
"label" : "PostgreSQL Database" ,
"defaultValue" : "plausible" ,
"description" : "" ,
2022-10-17 15:43:57 +02:00
} ,
{
"id" : "$$config_scriptName" ,
"name" : "SCRIPT_NAME" ,
"label" : "Custom Script Name" ,
"defaultValue" : "plausible.js" ,
"description" : "This is the default script name." ,
} ,
2022-10-14 15:48:37 +02:00
]
}
]