The Self-Updating CRM: One Click, No Server Access
Co-Founder, Dabster Labs · Client engagement, anonymised at the client’s preference
A video ad agency now keeps its own CRM up to date by clicking one button. No server login, no command line, no phone call to a developer they do not have. The software checks itself, tells the owner when a new version is ready, and installs it on request while showing progress on screen. Below is how we got there.
The situation
The agency runs its own CRM on a low-cost server. There is no developer and no DevOps person on staff. Self-hosted software still needs looking after: new features, fixes, and database changes all have to be applied over time. Normally that means logging into the server over SSH and running deploy commands by hand. That is exactly the kind of task the owner cannot safely do, and paying someone to babysit every release is not worth it. So in practice updates get skipped and the software drifts out of date.
What we built
A self-update system split into two halves that never hand each other more than a file. The CRM itself stays sandboxed: it has no direct access to the server’s controls. When an admin wants to update, the app writes a small request file and nothing more. A separate service running on the host picks that request up and does the real work: it pulls the new code, rebuilds, applies any database changes, and restarts the system, streaming live progress back into the app so the admin watches it happen. The admin either clicks Update now, or leaves an opt-in auto-update toggle on and lets the server keep itself current. Either way there is no SSH, and no server credentials are ever stored in the app.
What changed
- One-click updates from inside the app. The owner updates the CRM without a server login or a command line, and without waiting on anyone.
- No credentials in the app. The web side can only drop a request file, so even a compromised app cannot take over the machine.
- Updates never touch data. Each update builds, migrates, and brings the system back up. It never resets the database, so client records and the co-hosted tools stay intact.
- Broken updates fail safe. If a new build does not come up cleanly, the old working version keeps running rather than leaving the CRM down.
- A once-per-release changelog popup. Admins see what changed and can act on it, without being nagged on every visit.
How it works
The update check runs on the host using a read-only deploy key, so it can read the private code repository with no access token stored anywhere. When a new version is available, the app shows it in settings, and admins also get a dismissible popup with the changelog. Clicking Update now writes the request file; the host service sees it, runs the update, and streams live progress back to the settings screen until the new version is running. Leave the auto-update toggle on and the same thing happens on a schedule, with no clicking at all.
Where it stands
The system is live and handling releases for the agency’s CRM. Both the one-click update and the opt-in auto-update path are in production, alongside the changelog popup and the token-free check against the private repository. Because the same design ships with every copy of the product, any future instance can opt in the same way.
Work with us
Running self-hosted software without a developer on staff? We build systems that let non-technical owners stay current safely, with no server access and no risk to their data. Get in touch.
Related service: CRM Integration
Want this working in your business?
Book a free 30 minute discovery call. We map your workflows and tell you honestly what is worth automating. No commitment, no sales pressure.
Book a discovery call