Run Design Studio on your own server

Keep your team’s designs, photos and accounts on your own infrastructure. The usual install is one Docker Compose bundle, with its own database, file storage and automatic HTTPS. The same server also runs behind your own proxy, next to a database you already have, as a normal process, or on Kubernetes.

Docker 24+ · Database & file storage included · Automatic HTTPS · Linux x86-64 & arm64

5 steps · about 10 minutes

Set up a server for your team

Run Design Studio on a Linux server with your own domain. HTTPS certificates are issued and renewed automatically.

This guide is the Docker Compose bundle. A proxy you already run is the Your proxy tab. A database and bucket you already have are the Your database tab. Kubernetes and a process install are in the Guide menu above.
1

Point your domain at the server

Create these DNS records with your domain provider:

TypeNamePoints toUsed for
A (and AAAA for IPv6)studio.example.comYour server’s IP addressDesign Studio
A / AAAA (optional)live.example.comYour server’s IP addressLive Q&A address for audiences

Make sure Docker is installed on the server: Docker Engine 24+ with the Compose plugin v2.20+ (check with docker compose version).

2

Download the server bundle

The bundle contains everything needed to run Design Studio: the server image, the Docker Compose file and a settings template.

Server bundle · x86-64 Server bundle · arm64

Most servers are x86-64. Choose arm64 for Graviton, Ampere or Raspberry Pi servers. Not sure? Run uname -m: x86_64 means x86-64, aarch64 or arm64 means arm64.

Copy it to your server, then unpack it and load the image:

Terminal
unzip design-studio-server-*.zip
cd design-studio-server
docker load -i design-studio-image.tar.gz
cp .env.example .env
chmod 600 .env
3

Fill in .env

Create three different random secrets, one each for SESSION_SECRET, POSTGRES_PASSWORD and S3_SECRET_KEY:

Run once per secret
openssl rand -hex 32

Then open .env and set:

.env
PUBLIC_URL=https://studio.example.com

SESSION_SECRET=<secret 1>
POSTGRES_PASSWORD=<secret 2>
S3_SECRET_KEY=<secret 3>

TRUST_PROXY=true

# Email for sign-up verification and password reset (see the Email tab)
SMTP_HOST=smtp.example-provider.com
SMTP_USER=...
SMTP_PASS=...
SMTP_FROM=Design Studio <no-reply@studio.example.com>

Keep .env private and keep a copy somewhere safe: you need the same secrets to restore a backup.

4

Start Design Studio

Terminal
docker compose --profile https up -d

# Every service should show "healthy" (create-bucket shows "exited (0)")
docker compose ps
Already have a proxy or tunnel? If a load balancer, reverse proxy or tunnel (such as Cloudflare Tunnel) already provides HTTPS, leave out --profile https and forward it to http://127.0.0.1:8080 on the server.
5

Sign up and connect the app

Open https://studio.example.com, create your account and make a design. Then install the desktop app and enter studio.example.com when it asks for your server (see the Desktop app tab).

Health check: curl -fsS https://studio.example.com/healthz prints ok when the server is ready.