Self-Hosted Print Shop Software

Run your shop management software on your own server. Node 22 and SQLite, no build step, Docker or bare metal, one database file to back up. What self-hosting PrintShopCRM actually involves.

Start your free 30-day trial · See pricing · Sign in

No credit card required. The app itself lives at pro.printshopcrm.com.

Self-hosting means your customer list, your pricing and your job history sit on a machine you control, and keep working whether or not any vendor is still around. PrintShopCRM is built to make that genuinely easy rather than theoretically possible.

This page is the practical version: what it runs on, what installing it involves, and what you are responsible for afterwards.

What it runs on

The application is deliberately small. There is no build step, no Postgres, no Redis and no message queue to operate.

  • Node.js 22 and SQLite, with four runtime dependencies. About 14 MB installed.
  • Linux, macOS and Windows are all covered by automated tests on every change.
  • A cheap VPS, an old PC in the office, or a Docker host. A dozen shops run in roughly 40 MB of RAM.
  • One SQLite database file per shop, so backup and restore are a file copy rather than a database dump.

Ways to install it

Pick whichever matches how you already work. All of them are documented in the repository and verified by CI.

  • Directly with Node: clone the repository, npm install, npm start. Roughly three seconds on a cold cache.
  • Docker: a multi-architecture image at ghcr.io/colelundstrom/printshopcrm, for Intel and ARM.
  • Docker Compose, with a compose file in the repository.
  • A plain VPS with nginx, systemd and SSL, step by step in INSTALL.md, plus Fly and Render blueprints.

The one mistake worth avoiding

If you take nothing else from this page, take this. Every deployment guide in the project leads with it because it is the failure that hurts.

  • Mount a persistent volume for the data directory. Without one, a container redeploy brings the app back as an empty shop, silently, with no error.
  • Keep uploaded artwork on a persistent path outside the release directory, so a redeploy cannot strand customer files.
  • Set a real backup schedule before you rely on it, and restore from that backup once to prove it works.

What you are responsible for

This is the trade you are making in exchange for control, and it is worth being clear-eyed about it.

  • Keeping the server patched and the application updated.
  • Backups, and occasionally testing that they restore.
  • TLS certificates, which the install guide automates with certbot.
  • If none of that appeals, hosting is available and the software is identical either way.

Common Questions

Do I need to be a developer to self-host it?

You need to be comfortable in a terminal. Install is two commands. If that is not you, there is a Docker image, and beyond that we offer hosting so you never touch a server.

How do I back it up?

Copy the database file. It is one SQLite file per shop, plus the uploads directory for artwork. The repository also ships a backup script with retention and optional off-site upload to your own Google Drive.

Can I move it between machines later?

Yes. Copy the data directory to the new machine and start the application there. There is no licence server to re-authorise and no activation to transfer.

Is self-hosting secure?

The application ships with login throttling, role separation, HttpOnly and SameSite session cookies, and Secure cookies over HTTPS. The rest is ordinary server hygiene: keep it patched, use TLS, restrict SSH.

What about updates?

Pull the new version and restart. Database migrations apply automatically on open, and releases are tagged with notes describing what changed.

Related Workflows

Related reading