ops-1 (Openship VPS)
The Backpack services box, what runs on it, and how it was built.
The first Backpack-owned server: Hostinger VPS KVM 2 (2 vCPU, 8 GB, 100 GB NVMe), Ubuntu 24.04, hostname ops-1.backpackops.com, IP 177.7.46.8, hPanel VPS id 1840425. Purpose per ADR 08: Openship trial substrate, running the mail server and per-client service spin-ups. Client static sites stay on Vercel.
Access
- SSH: key auth (local key ~/.ssh/backpack_ops on the workstation). Root password auth still enabled; rotate the root password when convenient since the initial one transited chat.
- Openship dashboard: localhost-only on the box (auth mode: none). Reach it through an SSH tunnel:
ssh -L 3001:localhost:3001 -L 4000:localhost:4000 root@177.7.46.8, then http://localhost:3001. Do not expose 3001/4000 publicly until Openship auth is configured. - Firewall (ufw): 22, 80, 443, and mail ports 25/587/465/143/993 open. API port 4000 is deliberately not allowed.
Stack
- Openship installed via npm (Node 22). The curl installer’s bun path corrupted its own entry script; the npm tarball is fine. CLI authed with a personal access token stored at /root/.openship-cli-token.
- The box is registered in Openship as server “ops-1” targeting 127.0.0.1. The CLI’s key-path SSH auth is broken (Invalid auth configuration); password auth works and is what the server entry uses.
- Known packaging bug: the npm dist omits dist/server/lua/*.lua; the files were fetched from the GitHub repo (packages/adapters/src/infra/lua/) into place. Re-apply after
openship updateif OpenResty installs fail with ENOENT site_logger.lua. - Mail stack: iRedMail via
openship mail setup, domain backpackops.com, hostname mail.backpackops.com.
DNS and mail identity
- A records: mail.backpackops.com and ops-1.backpackops.com point at the box (Spaceship-managed zone).
- PTR: 177.7.46.8 resolves to mail.backpackops.com, set via the Hostinger API (POST /api/vps/v1/virtual-machines/1840425/ptr/1596701).
- The backpackops.com apex MX stays on Google Workspace (that is the owner’s mailbox). The mail server is for fleet transactional sending; client sending domains get added per client. Never change the apex MX.