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:
Ben Bristow
2024-09-02 21:06:37 +01:00
parent 9bac042498
commit a6c7c3b031
3 changed files with 45 additions and 12 deletions

View File

@@ -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

View File

@@ -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,
}; };
} }

View File

@@ -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",