I needed a personal CRM for my consulting work — just contacts, deals, and follow-ups. Built it with Rails 8 and Avo, backed entirely by SQLite (Solid Cache, Solid Queue, Solid Cable).
The interesting part is where it runs. Rails 8's Solid stack makes the whole app a single process with one database file, which means it fits on a Synology NAS. Docker container, Tailscale for access, HyperBackup and Btrfs snapshots for backups.
The post covers the non-obvious parts: Synology's SSH PATH problem with non-interactive sessions, Docker UID/permission gotchas, how Thruster's port mapping works in a non-root container, and running a local Docker registry so images stay on your network.
1 comment
[ 3.4 ms ] story [ 13.7 ms ] threadThe interesting part is where it runs. Rails 8's Solid stack makes the whole app a single process with one database file, which means it fits on a Synology NAS. Docker container, Tailscale for access, HyperBackup and Btrfs snapshots for backups.
The post covers the non-obvious parts: Synology's SSH PATH problem with non-interactive sessions, Docker UID/permission gotchas, how Thruster's port mapping works in a non-root container, and running a local Docker registry so images stay on your network.