Self-Host with Docker
Deploy DataPallas Server as Docker containers on Windows, Linux, or macOS — no Java installation needed.
DataPallas Server can be deployed as Docker containers on Windows, Linux, and macOS. Docker packages the server together with all its dependencies — no Java installation needed.
Table of Contents
- Prerequisites
- Just Want a Look? One Command
- Install
- First Sign-In
- What Is Running
- Where Your Data Lives
- Everyday Commands
- Upgrading
- Things Worth Knowing
Prerequisites
- Docker — Get Docker (Docker Desktop for Windows/macOS, Docker Engine for Linux)
- Compose v2 — the commands below use
docker compose, not the olderdocker-compose. It ships with Docker Desktop and with current Docker Engine.
Just Want a Look? One Command
You do not need to download anything to try DataPallas Server:
docker run --rm -p 9090:9090 flowkraft/datapallas-server:latestOpen http://localhost:9090 and sign in with burst / burst. The image is self-contained — it carries its own configuration, sample data, and report templates — so it comes up ready to use in well under a minute.
Everything is discarded when you stop the container, which is what you want for a first look. When you want to keep your work, use the full install below.
Install
-
Download DataPallas-server-docker.zip
-
Extract the zip file to your preferred location
-
Navigate to the extracted
DataPallasdirectory:cd DataPallas -
Start the containers:
docker compose up -d -
Access the web interface at
http://localhost:9090
Start it from inside the extracted DataPallas folder. Everything the server needs — your settings, sample reports, templates — ships in the folders sitting next to docker-compose.yml, and that is where the running server reads and writes them. Keep the folder together, and move it as a whole if you relocate it later.
First Sign-In
DataPallas Server comes with one account ready to go, burst with the password burst, so you can sign in the moment it starts.
Set your own password when you have a minute: open your name in the top right, then Users. Worth doing early, especially if colleagues will be using this server too.
See Users, Roles & Sign-In for the roles, for creating accounts for colleagues, and for signing in with your existing Microsoft, Okta, or Google Workspace accounts.
What Is Running
| URL | What |
|---|---|
http://localhost:9090 | DataPallas — web UI and REST API |
http://localhost:8025 | MailHog — catches every email DataPallas sends, so you can test delivery without a real mail server |
MailHog also binds SMTP on port 1025. If 9090, 8025, or 1025 is already in use on your machine, change the mapping in docker-compose.yml before starting.
Where Your Data Lives
Your work lives in the folders next to docker-compose.yml, not inside Docker. They carry across restarts, upgrades, and docker compose down — so these are the folders to back up.
You do not need to open any of them day to day; the web UI takes care of that. They are listed here so you know where things are.
| Folder | What is in it |
|---|---|
config | Your settings — connections, email, report configuration, all managed from the web UI |
templates | Report templates |
samples | Sample reports and configurations to start from |
db | Databases and sample data |
output, quarantine, backup | Generated documents, anything that could not be delivered, backups |
input-files, poll | Input documents — files dropped into poll are picked up and processed automatically |
_apps | Portals, StarterPacks, and custom apps |
logs | Log files, if you ever need to look |
scripts, temp | Custom scripts and working space |
Everyday Commands
Run these from the extracted DataPallas folder:
docker compose logs -f datapallas-server # follow the logs
docker compose restart datapallas-server # restart the server
docker compose down # stop; your folders are untouched
docker compose up -d # start again where you left offEverything else — running reports, bursting, scheduling — is done in the web UI.
Upgrading
docker-compose.yml names an exact version, so you upgrade when you choose to. To move to a newer release, edit the image: line to the version you want — or uncomment the latest line sitting next to it — then:
docker compose pull
docker compose up -dYour folders carry over as they are. A quick backup beforehand never hurts.
Things Worth Knowing
StarterPacks and Apps. docker-compose.yml shares your Docker socket with DataPallas so it can start portals, StarterPacks, and other containerized Apps for you, straight from the web UI. If you would rather not use those features, remove that line.
Sharing it with your team. DataPallas Server is built for several people at once — give everyone their own account under Users.
On a trusted network, plain http:// works fine and is a normal way to run an internal tool. One thing worth knowing: browsers allow copy-to-clipboard only over https:// or on localhost, so the Copy buttons around the app go quiet for colleagues who reach the server by hostname over plain HTTP.
On the Internet. Publishing DataPallas Server to the Internet is a normal way to run it. The self-service document portals are meant to be reached over the Internet — that is the whole point of them: your customers, employees, or partners sign in and collect their own invoices or payslips from wherever they are.
Serve it over HTTPS when you do: on plain HTTP, sign-ins and sessions travel in the clear. Most people use the reverse proxy they already run, rather than configuring certificates in DataPallas itself.
Running a job from the command line — most people never need this. Reports, bursting, and scheduling all live in the web UI. Reach for the command line only when an external tool must trigger a run: cron, Windows Task Scheduler, a CI job, or your own script.
docker compose run --rm datapallas-server datapallas.sh job burst samples/burst/Payslips.pdf -c config/my-config.xml --testlist entry1This works on Windows too, despite the .sh name — datapallas.sh runs inside the Linux container, and you are only typing a docker compose command on the host. Output goes to logs/datapallas.sh.log, not to your terminal.