Docker
This page provides installation and configuration information for Docker.

Installation

Our docker image is available on Docker Hub. You can start it by pulling and then running with the default port bound.
1
docker pull ironmansoftware/universal
2
docker run --name 'PSU' -it -p 5000:5000 ironmansoftware/universal
Copied!

Persistent Data

To create a Docker image that can persist the Universal data, you can create a dockerfile like the one below.
This dockerfile exposes port 5000, creates a /data volume, sets configuration environment variables to store the Universal repository and database in the volume and then sets the Universal.Server as the entry point to the container.

Linux

1
FROM ironmansoftware/universal:latest
2
LABEL description="Universal - The ultimate platform for building web-based IT Tools"
3
4
EXPOSE 5000
5
VOLUME ["/data"]
6
ENV Data__RepositoryPath ./data/Repository
7
ENV Data__ConnectionString ./data/database.db
8
ENV UniversalDashboard__AssetsFolder ./data/UniversalDashboard
9
ENV Logging__Path ./data/logs/log.txt
10
ENTRYPOINT ["./home/Universal/Universal.Server"]
Copied!

Windows

1
FROM ironmansoftware/universal:1.3.1-windowsservercore-1809
2
LABEL description="Universal - The ultimate platform for building web-based IT Tools"
3
4
EXPOSE 5000
5
VOLUME ["C:/data"]
6
ENV Data__RepositoryPath C:/data/Repository
7
ENV Data__ConnectionString C:/data/database.db
8
ENV UniversalDashboard__AssetsFolder C:/data/UniversalDashboard
9
ENV Logging__Path C:/data/logs/log.txt
10
ENTRYPOINT ["C:/ProgramData/Universal/Universal.Server.exe"]
Copied!
You can run a build with the build command.
1
docker build . --tag=universal-persistent
Copied!
You can start the docker container with the run command and make sure to specify the volume to mount.
1
docker run --name powershelluniversal --mount source=psudata,target=/data --rm -d -p 5000:5000/tcp universal-persistent:latest
Copied!

Time Zones

To properly support time zones on Linux when scheduling jobs, you will need to include the tzdata package in your dockerfile along with an environment variable that specifies the server time zone.
1
ENV TZ Europe/Amsterdam
2
RUN apt-get install -y tzdata
Copied!
Last modified 1mo ago