Self-Hosted Digital Signage Software: Complete Guide (2026)

Why you might want to self-host your digital signage CMS, what you need to do it well, and how to deploy ScreenTinker on your own server.

Why self-host digital signage?

Most digital signage products are cloud-only. That works for many businesses, but there are real reasons to keep the server in-house:

What you need

Hardware / VPS

A modest Linux server is enough for most deployments:

An on-prem VM works just as well as a cloud VPS - in fact, on-prem is often the whole point.

Software prerequisites

Deploying ScreenTinker

Detailed setup is in the GitHub README. Quick version:

git clone https://github.com/screentinker/screentinker.git
cd screentinker/server
npm install
cp .env.example .env
# edit .env with your domain, JWT_SECRET, and SELF_HOSTED=true
node server.js

Set SELF_HOSTED=true in the env. This unlocks the enterprise plan for your account, disables subscription expiry checks, and skips Stripe entirely. It is meant for the operator-controlled deployment case.

Reverse proxy and TLS

ScreenTinker listens on HTTP/HTTPS directly, but in production you typically front it with nginx or Caddy for TLS termination, gzip, and rate limiting. A minimal Caddyfile:

signage.example.com {
  reverse_proxy localhost:3001
}

Caddy handles Let's Encrypt automatically. nginx works too if your team prefers it.

Running as a service

Use systemd to keep the process alive across reboots. A unit file at /etc/systemd/system/screentinker.service:

[Unit]
Description=ScreenTinker Digital Signage Server
After=network.target

[Service]
WorkingDirectory=/opt/screentinker/server
ExecStart=/usr/bin/node server.js
EnvironmentFile=/opt/screentinker/.env
Restart=always
User=screentinker

[Install]
WantedBy=multi-user.target

Enable with systemctl enable --now screentinker.

Backups

The state lives in two places:

A nightly tarball of those two paths gives you a full restore point. Pair with offsite sync (rclone, restic) for disaster recovery.

Self-hosted vs cloud-hosted comparison

ConcernScreenTinker self-hostedCloud-only signage products
Data locationYour serverVendor's cloud
Recurring per-screen costNone$5-15/screen/month
Server cost$5-50/month flatNone (included)
Internet required for managementNo (LAN works)Yes
Source code accessYes (MIT)Closed
Air-gapped deploymentPossibleNot possible
Vendor lock-in riskNone (you own it)High
Update / patch responsibilityYoursVendor
Initial setup time~1 hour~5 minutes

When the cloud is the right answer

Self-hosting is not free of cost - it requires someone who can run a Linux server, monitor it, and apply security updates. If your screen count is small (under ~10) and you do not have IT capacity, the managed cloud version is probably the right choice. ScreenTinker's hosted plans start at $39/mo for 5 devices.

Try the cloud version first

Use the hosted version to get familiar, then deploy on your own server when you are ready.

Start Free View on GitHub