From 6de0d3be1a20491982bc1bed73e19b6216bb0fd4 Mon Sep 17 00:00:00 2001 From: N3WT DE COMPET Date: Fri, 30 May 2025 14:21:42 +0200 Subject: [PATCH] feat: Dockerisation du Docuseal --- Caddyfile | 3 ++ docker-compose.yml | 82 +++++++++++++++++--------------------------- initDocusealUsers.sh | 41 ---------------------- 3 files changed, 35 insertions(+), 91 deletions(-) create mode 100644 Caddyfile delete mode 100644 initDocusealUsers.sh diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..72a6782 --- /dev/null +++ b/Caddyfile @@ -0,0 +1,3 @@ +https://localhost:4443, https://127.0.0.1:4443 { + reverse_proxy docuseal:3000 +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 42f1e08..1f83528 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,40 +16,40 @@ services: POSTGRES_PASSWORD: postgres POSTGRES_DB: school TZ: Europe/Paris - # docuseal_db: - # image: postgres:latest - # environment: - # POSTGRES_USER: postgres - # POSTGRES_PASSWORD: postgres - # DOCUSEAL_DB_HOST: docuseal_db - # POSTGRES_DB: docuseal - # ports: - # - 5433:5432 # port différent si besoin d'accès direct depuis l'hôte + docuseal_db: + image: postgres:latest + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + DOCUSEAL_DB_HOST: docuseal_db + POSTGRES_DB: docuseal + ports: + - 5433:5432 # port différent si besoin d'accès direct depuis l'hôte - # docuseal: - # image: docuseal/docuseal:latest - # container_name: docuseal_app - # depends_on: - # - docuseal_db - # ports: - # - "3001:3000" - # environment: - # DATABASE_URL: postgresql://postgres:postgres@docuseal_db:5432/docuseal - # volumes: - # - ./docuseal:/data/docuseal + docuseal: + image: docuseal/docuseal:latest + container_name: docuseal_app + depends_on: + - docuseal_db + ports: + - "3001:3000" + environment: + DATABASE_URL: postgresql://postgres:postgres@docuseal_db:5432/docuseal + volumes: + - ./docuseal:/data/docuseal - # caddy: - # image: caddy:2 - # container_name: caddy - # restart: unless-stopped - # ports: - # - "4000:4443" - # volumes: - # - ./Caddyfile:/etc/caddy/Caddyfile - # - caddy_data:/data - # - caddy_config:/config - # depends_on: - # - docuseal + caddy: + image: caddy:2 + container_name: caddy + restart: unless-stopped + ports: + - "4000:4443" + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile + - caddy_data:/data + - caddy_config:/config + depends_on: + - docuseal backend: build: @@ -72,24 +72,6 @@ services: #- docuseal command: python start.py - # init_docuseal_users: - # build: - # context: . - # dockerfile: Dockerfile - # depends_on: - # - docuseal - # environment: - # DOCUSEAL_DB_HOST: docuseal_db - # POSTGRES_USER: postgres - # POSTGRES_PASSWORD: postgres - # USER_FIRST_NAME: n3wt - # USER_LAST_NAME: school - # USER_COMPANY: n3wt.innov - # USER_EMAIL: n3wt.school@gmail.com - # USER_PASSWORD: n3wt1234 - # volumes: - # - ./initDocusealUsers.sh:/docker-entrypoint-initdb.d/initDocusealUsers.sh - # frontend: # build: # context: ./Front-End diff --git a/initDocusealUsers.sh b/initDocusealUsers.sh deleted file mode 100644 index dc82f3a..0000000 --- a/initDocusealUsers.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -set -e - -# Attendre que le service docuseal soit prêt -until curl -s http://docuseal:3000 > /dev/null; do - echo "Waiting for docuseal to be ready..." - sleep 5 -done - -encrypt_password() { - local password=$1 - ruby -e "require 'bcrypt'; puts BCrypt::Password.create('$password')" -} - -# Mot de passe encrypté -ENCRYPTED_PASSWORD=$(encrypt_password "$USER_PASSWORD") - -# Insérer les données dans les tables accounts et users si elles n'existent pas déjà -PGPASSWORD=$POSTGRES_PASSWORD psql -v ON_ERROR_STOP=1 --host=database --port=5432 --username="$POSTGRES_USER" --dbname=docuseal <<-EOSQL - -- Vérifier l'existence du compte - DO \$\$ - BEGIN - IF NOT EXISTS (SELECT 1 FROM accounts WHERE name = '$USER_COMPANY') THEN - -- Insérer dans la table accounts - INSERT INTO accounts (name, timezone, locale, created_at, updated_at, uuid) VALUES - ('$USER_COMPANY', 'UTC', 'en', NOW(), NOW(), gen_random_uuid()); - END IF; - END - \$\$; - - -- Vérifier l'existence de l'utilisateur - DO \$\$ - BEGIN - IF NOT EXISTS (SELECT 1 FROM users WHERE email = '$USER_EMAIL') THEN - -- Insérer dans la table users - INSERT INTO users (first_name, last_name, email, encrypted_password, account_id, role, sign_in_count, failed_attempts, created_at, updated_at, uuid, otp_required_for_login) VALUES - ('$USER_FIRST_NAME', '$USER_LAST_NAME', '$USER_EMAIL', '$ENCRYPTED_PASSWORD', (SELECT id FROM accounts WHERE name = '$USER_COMPANY'), 'admin', 1, 0, NOW(), NOW(), gen_random_uuid(), false); - END IF; - END - \$\$; -EOSQL \ No newline at end of file