Installation¶
Docker Compose¶
Installing docker compose is the recommended way of installing Docuisine.
Requirements:
You can use this docker compose with further configuration, but it is recommended to change certain variables for security and host machine compatibility purposes.
# This docker-compose file is a production-ready setup for the Docuisine backend service
# It defines services for the backend application and a PostgreSQL database
services:
frontend:
image: iragca/docuisine:frontend
container_name: docuisine-frontend
restart: always
ports:
- "${DOCUISINE_FRONTEND_PORT:-3000}:3000"
environment:
BACKEND_URL: http://backend:7000
IMAGE_HOST: http://s3:9000/docuisine-images
APP_VERSION: prod
depends_on:
backend:
condition: service_healthy
s3:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:3000/index.html > /dev/null || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 10s
backend:
image: iragca/docuisine:backend
container_name: docuisine-backend
restart: always
ports:
- "${DOCUISINE_BACKEND_PORT:-7000}:7000"
env_file:
- .env
environment:
DATABASE_URL: postgresql+psycopg2://${POSTGRES_USER:-user}:${POSTGRES_PASSWORD:-password}@db:5432/${POSTGRES_DB:-docuisine}
S3_ENDPOINT_URL: http://s3:9000
depends_on:
db:
condition: service_healthy
s3:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "python3 health_check.py || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 10s
db:
hostname: localhost
image: postgres:18.1
container_name: docuisine-db
restart: always
ports:
- "${POSTGRES_PORT:-5432}:5432"
env_file:
- .env
environment:
POSTGRES_USER: ${POSTGRES_USER:-user}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password}
POSTGRES_DB: ${POSTGRES_DB:-docuisine}
volumes:
- docuisine_db_data:/var/lib/postgresql/
healthcheck:
test:
[
"CMD-SHELL",
"pg_isready -U ${POSTGRES_USER:-user} -d ${POSTGRES_DB:-docuisine} -h localhost -p 5432",
]
interval: 5s
timeout: 3s
retries: 5
start_period: 30s
s3:
image: minio/minio:RELEASE.2025-09-07T16-13-09Z-cpuv1
container_name: docuisine-s3
ports:
- "${S3_PORT:-9000}:9000" # S3 API
- "${S3_CONSOLE_PORT:-9001}:9001" # Web Console
environment:
MINIO_ROOT_USER: ${S3_ACCESS_KEY:-s3user}
MINIO_ROOT_PASSWORD: ${S3_SECRET_KEY:-s3password}
volumes:
- docuisine_minio_data:/data
command: server /data --console-address ":9001"
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
volumes:
docuisine_db_data:
docuisine_minio_data:
Example Usage¶
There are many ways to use a docker-compose.yml file, but this guide demonstrates a basic and recommended approach.
This approach allows you to quickly run Docuisine without manually creating files.
All required configuration files are downloaded directly from the repository.
- Create or choose a directory where Docuisine will live.
- Open a command-line interface and navigate to that directory (ex.
cd path/to/folder). - Download the Docker Compose file.
- Download the example environment file and rename it to
.env. - Start the application in detached mode
docker compose up -d, or alternatively remove-dfor debugging purposes. - Once the containers are running, the application should be accessible on the configured port.
Example
cd path/to/folder
curl -f -O https://raw.githubusercontent.com/docuisine/docuisine/refs/heads/master/docs/docs/assets/user-guide/docker-compose.yml
curl -f -o .env https://raw.githubusercontent.com/docuisine/docuisine/refs/heads/master/docs/docs/assets/user-guide/.env.example
docker compose up -d
Docuisine is now accessible at http://localhost:3000. If port configuration was set to 3000.
Environment Variables¶
These environment variables are recommended to be customized as you see fit.
## It is recommended to change the default values host machine compatibility purposes.
DOCUISINE_FRONTEND_PORT=3000 # This is where you can access the web client
## It is recommended to change the default values for security purposes.
POSTGRES_PASSWORD=password
POSTGRES_USER=user
S3_ACCESS_KEY=minioadmin
S3_SECRET_KEY=minioadmin
JWT_SECRET_KEY=4e9db3a3f86d82cb45f552b9e24e7a652fbb5d3565a3f60a798f904cee6b235b # Replace with random letters and numbers
Info
These variables can be left as is, but you can change them if you know what you are doing.
Source¶
You can run Docuisine directly from the GitHub repository.
Requirements:
Firstly, clone the repo.
Then make a duplicate of .env.example and then rename it .env
Make sure to edit these variables for security and host machine compatibility purposes.
Info
These variables can be left as is, but you can change them if you know what you are doing.
Finally, build and run with docker compose.