Persistent Database
This topic provides steps to set up Elsa Server and Studio with a PostgreSQL database using Docker Compose. PostgreSQL is used as an example - other database engines are supported as well, including MySql and SQL Server.
Docker Compose Configuration
Below is the Docker Compose file used to set up Elsa with PostgreSQL:
services:
postgres:
image: postgres:latest
command: -c 'max_connections=2000'
environment:
POSTGRES_USER: elsa
POSTGRES_PASSWORD: elsa
POSTGRES_DB: elsa
volumes:
- postgres-data:/var/lib/postgresql/data
ports:
- "5432:5432"
elsa-server-and-studio:
image: elsaworkflows/elsa-server-and-studio-v3-5:latest
pull_policy: always
environment:
ASPNETCORE_ENVIRONMENT: Development
HTTP_PORTS: 8080
HTTP__BASEURL: http://localhost:14000
DATABASEPROVIDER: PostgreSql
CONNECTIONSTRINGS__POSTGRESQL: Server=postgres;Username=elsa;Database=elsa;Port=5432;Password=elsa;SSLMode=Prefer;MaxPoolSize=2000;Timeout=60
ports:
- "14000:8080"
depends_on:
- postgres
volumes:
postgres-data:Configuration Details
The Docker Compose file defines two services:
PostgreSQL Service: A PostgreSQL database container configured with the following settings:
User:
elsaPassword:
elsaDatabase:
elsaMax Connections:
2000
Elsa Server + Studio: A container running Elsa Server and Studio, configured to use PostgreSQL as the database provider.
Environment Variables: Defines
DATABASEPROVIDERasPostgreSqland the PostgreSQL connection string inCONNECTIONSTRINGS__POSTGRESQL.Ports: Maps port
14000on the host to8080in the container.
Supported Database Providers
Elsa supports multiple database providers, which can be configured using the DATABASEPROVIDER environment variable:
SqlServerSqlite(default)MySqlPostgreSql
In this setup, PostgreSql is used as the database provider.
Running the Services
To run the services defined in the Docker Compose file, use the following command:
docker-compose upOnce the services are running, you can access Elsa Studio by navigating to http://localhost:14000.
Last updated