From f204561f5ff216bbe1e38e9509089cb198e10a5f Mon Sep 17 00:00:00 2001 From: Simon C Date: Fri, 8 Oct 2021 12:30:49 +0200 Subject: [PATCH] feat(Directus): Add new service --- README.md | 1 + directus/.env | 30 ++++++++++++++++++++++++ directus/README.md | 18 +++++++++++++++ directus/docker-compose.yml | 46 +++++++++++++++++++++++++++++++++++++ 4 files changed, 95 insertions(+) create mode 100644 directus/.env create mode 100644 directus/README.md create mode 100644 directus/docker-compose.yml diff --git a/README.md b/README.md index 05c3ba0..538cbe0 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ Vous trouverez dans ce dépôt l'ensemble des services Open Source que j'utilise - [HedgeDoc](./hedgedoc) : Prise de note en Markdown collaborative en temps réel - [Nextcloud](./nextcloud) : Site d'hébergement de fichiers et une plateforme de collaboration +- [Directus](./directus) : Permet d'administrer une base de données ### Pour les devs / ops diff --git a/directus/.env b/directus/.env new file mode 100644 index 0000000..b9c3c90 --- /dev/null +++ b/directus/.env @@ -0,0 +1,30 @@ +######## +# DOCKER + +#DOCKER_CONTEXT= +#DOCKER_HOST= +SERVICES_DIR=.. +COMPOSE_FILE=./docker-compose.yml:${SERVICES_DIR}/postgres/docker-compose.yml:${SERVICES_DIR}/redis/docker-compose.yml:${SERVICES_DIR}/traefik/docker-compose.network.yml +#COMPOSE_PROJECT_NAME= + +########## +# DIRECTUS +# +# see https://github.com/directus/directus/blob/main/api/example.env + +DIRECTUS_DOMAIN=directus.cool.life +DIRECTUS_KEY=255d861b-5ea1-5996-9aa3-922530ec40b1 +DIRECTUS_SECRET=6116487b-cda1-52c2-b5b5-c8022c45e263 +DIRECTUS_ADMIN_EMAIL=admin@example.com +DIRECTUS_ADMIN_PASSWORD=d1r3ctu5 +# DIRECTUS_PUID= +# DIRECTUS_PGID= + +########## +# POSTGRES + +POSTGRES_USER=user-example +POSTGRES_PASSWORD=password-example +POSTGRES_DB=postgres-database-name-example +POSTGRES_CONTAINER_NAME=directus-postgres +POSTGRES_VOLUME_NAME=directus-postgres diff --git a/directus/README.md b/directus/README.md new file mode 100644 index 0000000..acea0b2 --- /dev/null +++ b/directus/README.md @@ -0,0 +1,18 @@ +# Directus + +> Directus wraps your new or existing SQL database with a realtime GraphQL+REST API for developers, and an intuitive admin app for non-technical users. + +## Configuration + +[De nombreuses variables d'environnement][documentation] peuvent être précisé pour configurer Directus. + +## Liens + +- [Site officiel][website] +- [Github][github] +- [L'image Docker][docker] + +[website]: https://directus.io/ +[docker]: https://hub.docker.com/r/directus/directus +[github]: https://github.com/directus/directus/ +[documentation]: https://docs.directus.io/reference/environment-variables/ diff --git a/directus/docker-compose.yml b/directus/docker-compose.yml new file mode 100644 index 0000000..f93b670 --- /dev/null +++ b/directus/docker-compose.yml @@ -0,0 +1,46 @@ +--- +version: "3.8" + +volumes: + directus: + name: ${DIRECTUS_VOLUME_NAME:-directus} + +services: + directus: + container_name: ${DIRECTUS_CONTAINER_NAME:-directus} + image: ${DIRECTUS_IMAGE:-directus/directus:9.0.0-rc.95} + restart: always + volumes: + - directus:/directus/uploads + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + depends_on: + - postgres + - redis + environment: + KEY: ${DIRECTUS_KEY:?err} + SECRET: ${DIRECTUS_SECRET:?err} + TELEMETRY: false + + ADMIN_EMAIL: ${DIRECTUS_ADMIN_EMAIL:?err} + ADMIN_PASSWORD: ${DIRECTUS_ADMIN_PASSWORD:?err} + PUBLIC_URL: ${DIRECTUS_PUBLIC_URL:?err} + + DB_CLIENT: 'pg' + DB_HOST: ${POSTGRES_CONTAINER_NAME:-postgres} + DB_PORT: '5432' + DB_DATABASE: ${POSTGRES_DB:?err} + DB_USER: ${POSTGRES_USER:?err} + DB_PASSWORD: ${POSTGRES_PASSWORD:?err} + + CACHE_ENABLED: 'true' + CACHE_STORE: 'redis' + CACHE_REDIS: 'redis://${REDIS_CONTAINER_NAME:-redis}:6379' + + PUID: ${DIRECTUS_PUID:-1000} + PGID: ${DIRECTUS_PGID:-1000} + labels: + traefik.enable: 'true' + traefik.docker.network: ${TRAEFIK_NETWORK_NAME:-traefik} + traefik.http.routers.directus.rule: 'Host(`${DIRECTUS_DOMAIN:?err}`)' + traefik.http.routers.directus.entrypoints: 'web'