All posts

Setting up Quartermaster from QM Companion in one scan

QM Companion runs on your server, finds your services and hands the whole list, keys included, to Quartermaster in one scan. Here's how to set it up, and the few things that tend to go wrong.

Adding services one at a time is fine when you've got three. At thirty it means an evening of copying API keys out of settings pages. QM Companion is a small web app you run on your own server. It finds your services and hands the whole list, addresses and keys included, to Quartermaster in one encrypted transfer.

Importing works on any plan. The free plan runs one service at a time, so the full stack really comes into its own on Pro.

What you need

  • A server that runs Docker. Companion sits alongside your other containers.
  • Quartermaster 1.2 or later on your iPhone, iPad or Mac.
  • About ten minutes the first time.

Install Companion

The full steps, including how to create the secret keys, are in the Companion README. The short version:

  1. Clone the repository onto your server.
  2. Edit docker-compose.example.yml: set the published address for port 8787, set QM_HOST, and mount the config files of the services you want it to find. Mount individual config files, not a whole appdata folder.
  3. Create the .env file with its two secrets, exactly as the README shows.
  4. Start it with the read-only profile, which is all an import needs.
docker compose -f docker-compose.example.yml up -d --build

Then open http://your-server:8787 and claim the owner account. If you didn't set a setup token, the first-run token is in the Companion log.

Hand over your stack

  1. In Companion, sign in and open Set up.
  2. Check each service's local address, and its away address if you use one. These are the addresses your phone will use, so fix anything odd here first.
  3. Create the transfer. Companion shows a QR code, and separately, a setup code.
  4. In Quartermaster on a fresh install, tap Set up with Companion on the welcome screen. On a phone that's already set up, pick QM Companion when adding a service, then Add services from Companion.
  5. Tap Scan Companion code and scan the QR. If you downloaded the setup file instead, choose Open the one-use setup file instead.
  6. Enter the setup code. Quartermaster checks every service address before it saves anything, and then you add them.

Things that trip people up

  • The transfer expires after three minutes and can only be used once. If it runs out, create a fresh one.
  • Stay in the app until it's done. Quartermaster locks the setup the moment it leaves the foreground, so switching apps to look something up means starting again with a new code.
  • Treat the QR code or file and the setup code as sensitive until the transfer is used or expires. Together, they carry your service keys.
  • Companion isn't in the middle afterwards. Once your services are saved, Quartermaster talks straight to them over your home network or Tailscale, the same as if you'd typed them in.

The live link is a separate thing

Importing is a one-off. Companion can also do something ongoing: a live link that shows your containers, stacks, updates and activity, and, if you allow it, lets you start, stop, restart or update containers. That part is Pro. It uses a separate HTTPS profile, and you pair your phone on Companion's Devices page by matching five words. Control is a second switch you approve on the server. The README's mobile connection guide has the details.

If an import won't go through, send a screenshot of the message to [email protected], or ask in the Discord.

Written while building Quartermaster, a native iOS app for self-hosted stacks.