mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
fix: directus healthchecks (fix race condition starting up), volumes for uploads & extensions, add secret/db password generation, bump version to 11.0.2
This commit is contained in:
@@ -1,47 +1,69 @@
|
|||||||
version: "3.8"
|
|
||||||
services:
|
services:
|
||||||
database:
|
database:
|
||||||
image: postgis/postgis:13-master
|
image: postgis/postgis:13-master
|
||||||
volumes:
|
volumes:
|
||||||
- directus:/var/lib/postgresql/data
|
- directus_database:/var/lib/postgresql/data
|
||||||
networks:
|
networks:
|
||||||
- dokploy-network
|
- dokploy-network
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: "directus"
|
POSTGRES_USER: "directus"
|
||||||
POSTGRES_PASSWORD: "directus"
|
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
|
||||||
POSTGRES_DB: "directus"
|
POSTGRES_DB: "directus"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "pg_isready", "--host=localhost", "--username=directus"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
start_interval: 5s
|
||||||
|
start_period: 30s
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
image: redis:6
|
image: redis:6
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "[ $$(redis-cli ping) = 'PONG' ]"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
start_interval: 5s
|
||||||
|
start_period: 30s
|
||||||
networks:
|
networks:
|
||||||
- dokploy-network
|
- dokploy-network
|
||||||
|
|
||||||
directus:
|
directus:
|
||||||
image: directus/directus:10.12.1
|
image: directus/directus:11.0.2
|
||||||
ports:
|
ports:
|
||||||
- 8055
|
- 8055
|
||||||
volumes:
|
volumes:
|
||||||
- ../files/uploads:/directus/uploads
|
- directus_uploads:/directus/uploads
|
||||||
- ../files/extensions:/directus/extensions
|
- directus_extensions:/directus/extensions
|
||||||
depends_on:
|
depends_on:
|
||||||
- cache
|
database:
|
||||||
- database
|
condition: service_healthy
|
||||||
|
cache:
|
||||||
|
condition: service_healthy
|
||||||
environment:
|
environment:
|
||||||
SECRET: "replace-with-secure-random-value"
|
SECRET: ${DIRECTUS_SECRET}
|
||||||
|
|
||||||
DB_CLIENT: "pg"
|
DB_CLIENT: "pg"
|
||||||
DB_HOST: "database"
|
DB_HOST: "database"
|
||||||
DB_PORT: "5432"
|
DB_PORT: "5432"
|
||||||
DB_DATABASE: "directus"
|
DB_DATABASE: "directus"
|
||||||
DB_USER: "directus"
|
DB_USER: "directus"
|
||||||
DB_PASSWORD: "directus"
|
DB_PASSWORD: ${DATABASE_PASSWORD}
|
||||||
|
|
||||||
CACHE_ENABLED: "true"
|
CACHE_ENABLED: "true"
|
||||||
CACHE_AUTO_PURGE: "true"
|
CACHE_AUTO_PURGE: "true"
|
||||||
CACHE_STORE: "redis"
|
CACHE_STORE: "redis"
|
||||||
REDIS: "redis://cache:6379"
|
REDIS: "redis://cache:6379"
|
||||||
|
|
||||||
|
# After first successful login, remove the admin email/password env. variables below
|
||||||
|
# as these will now be stored in the database.
|
||||||
ADMIN_EMAIL: "admin@example.com"
|
ADMIN_EMAIL: "admin@example.com"
|
||||||
ADMIN_PASSWORD: "d1r3ctu5"
|
ADMIN_PASSWORD: "d1r3ctu5"
|
||||||
volumes:
|
volumes:
|
||||||
directus:
|
directus_uploads:
|
||||||
|
directus_extensions:
|
||||||
|
directus_database:
|
||||||
|
networks:
|
||||||
|
dokploy-network:
|
||||||
|
external: true
|
||||||
@@ -3,9 +3,14 @@ import {
|
|||||||
type Schema,
|
type Schema,
|
||||||
type Template,
|
type Template,
|
||||||
generateRandomDomain,
|
generateRandomDomain,
|
||||||
|
generateBase64,
|
||||||
|
generatePassword,
|
||||||
} from "../utils";
|
} from "../utils";
|
||||||
|
|
||||||
export function generate(schema: Schema): Template {
|
export function generate(schema: Schema): Template {
|
||||||
|
const directusSecret = generateBase64(64);
|
||||||
|
const databasePassword = generatePassword();
|
||||||
|
|
||||||
const domains: DomainSchema[] = [
|
const domains: DomainSchema[] = [
|
||||||
{
|
{
|
||||||
host: generateRandomDomain(schema),
|
host: generateRandomDomain(schema),
|
||||||
@@ -14,7 +19,13 @@ export function generate(schema: Schema): Template {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const envs = [
|
||||||
|
`DATABASE_PASSWORD=${databasePassword}`,
|
||||||
|
`DIRECTUS_SECRET=${directusSecret}`,
|
||||||
|
];
|
||||||
|
|
||||||
return {
|
return {
|
||||||
domains,
|
domains,
|
||||||
|
envs,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ export const templates: TemplateData[] = [
|
|||||||
{
|
{
|
||||||
id: "directus",
|
id: "directus",
|
||||||
name: "Directus",
|
name: "Directus",
|
||||||
version: "10.12.1",
|
version: "11.0.2",
|
||||||
description:
|
description:
|
||||||
"Directus is an open source headless CMS that provides an API-first solution for building custom backends.",
|
"Directus is an open source headless CMS that provides an API-first solution for building custom backends.",
|
||||||
logo: "directus.jpg",
|
logo: "directus.jpg",
|
||||||
|
|||||||
Reference in New Issue
Block a user