Docker compose installation
This guide walks through the available templates and how to get up and running in just two steps.
Prerequisites
Section titled “Prerequisites”Installation steps
Section titled “Installation steps”Start by creating a directory for the project and downloading the docker-compose.yml from GitHub:
mkdir ~/dataramen-composecurl -fsSL https://raw.githubusercontent.com/OleksandrDemian/dataramen/refs/heads/main/workspaces/docker/compose/default/docker-compose.yml -o ~/dataramen-compose/docker-compose.ymlNow you can run docker compose up from the ~/dataramen-compose folder:
cd ~/dataramen-composedocker compose up -dAvailable templates
Section titled “Available templates”The steps above use the default configuration, which relies on a local SQLite database stored on a mounted volume.
DataRamen also supports PostgreSQL and MySQL as application databases — a better choice if you anticipate migrating to a remotely hosted database later.
MySQL template
mkdir -p ~/dataramen-compose/mysqlcd ~/dataramen-compose/mysql
curl -fsSL https://raw.githubusercontent.com/OleksandrDemian/dataramen/refs/heads/main/workspaces/docker/compose/mysql/docker-compose.yml -o ./docker-compose.yml
docker compose up -dPostgres template
mkdir -p ~/dataramen-compose/postgrescd ~/dataramen-compose/postgres
curl -fsSL https://raw.githubusercontent.com/OleksandrDemian/dataramen/refs/heads/main/workspaces/docker/compose/postgres/docker-compose.yml -o ./docker-compose.yml
docker compose up -dWhat these commands do:
- Create the
~/dataramen-compose/postgresdirectory (the-pflag creates parent directories as needed) - Change into the newly created directory
- Download the
docker-compose.ymlfile from GitHub - Start the containers in detached mode
- The application will be available at http://localhost:4466 (the default port — adjust if you modified the configuration)
Writing a custom Docker Compose file
Section titled “Writing a custom Docker Compose file”Use the following docker-compose.yml as a starting point for a custom configuration:
version: "3.9"
name: "dataramen"services: dataramen: image: ghcr.io/oleksandrdemian/dataramen:latest container_name: app environment: SYMM_ENCRYPTION_KEY: "" JWT_SECRET: "" JWT_REFRESH_SECRET: "" SERVER_VERSION: "" ALLOWED_ORIGINS: "" APP_DB_TYPE: "" APP_DB_DATABASE: "" APP_DB_HOST: "" APP_DB_USERNAME: "" APP_DB_PASSWORD: "" APP_DB_PORT: "" APP_DB_SCHEMA: "" APP_DB_LOGGING: "" ports: - "4466:3000" volumes: - dataramen_data:/data restart: no
volumes: dataramen_data: name: dataramen_dataSee the Environment Variables guide for a full reference.
You can also supply environment variables via an .env file:
version: "3.9"
name: "dataramen"services: dataramen: image: ghcr.io/oleksandrdemian/dataramen:latest container_name: app env_file: .env ports: - "4466:3000" volumes: - dataramen_data:/data restart: no
volumes: dataramen_data: name: dataramen_data