A self-hosted CRM costs a small server and a few hours a year. Here is what you need, what it costs, and how backups and updates work.
Four things. The installer takes care of the rest.
Docker runs Postgres, the API, the web app and the agent side by side. 2 GB works for one user and leaves little room. The images are built for amd64 and arm64.
For the images, the database and the backups. Years of mailbox history fit with room to spare, because the text of an email is small.
The installer sets Docker up when it is missing. On macOS it starts OrbStack or Docker Desktop, and installs OrbStack when neither is there.
Point a DNS record at the server and open ports 80 and 443. The bundled Caddy fetches a certificate. Behind your own reverse proxy, answer one question and Caddy stays off.
The software is free under the AGPL. The server is the whole bill. A virtual server with 4 GB of RAM is a standard size at every hosting provider. There is no per seat price, so the bill stays the same when the whole team signs in.
AI is optional and pay as you go. With OpenRouter you buy prepaid credits and the agent spends them per token. Without a key the CRM costs nothing beyond the server.
The install is one session at a terminal. Updates are two commands in the deploy folder: docker compose pull, then docker compose up -d. The API applies database migrations when it starts. Read the changelog first, and make a dump before you pull.
Everything lives in the postgres-data volume and in deploy/.env. Without that .env file the database cannot be opened again, so back up both. A nightly pg_dump is one cron line, and the docs print it.
It installs into ~/reloop/deploy, generates the secrets with openssl, writes deploy/.env with permissions 600, pulls the images and creates the owner account. Running it again keeps your .env file and never touches the database volume. The command is on the get started page.
A hosted CRM gives you no server to run and a support desk to call. If nobody on the team will open a terminal, wait for the hosted Reloop CRM. It is not open yet. The comparison with HubSpot lays the two side by side.
No. The installer sets Docker up and starts everything. Two Docker Compose commands cover updates, and the docs show them.
Yes. Press Enter at the domain question and the app opens at http://localhost:3000. Sign-in works there, because the session cookie drops the secure prefix on plain http.
Restore the last pg_dump and deploy/.env on a new server, then run the installer again. Without the .env file the database cannot be opened, so back up both.
Set RELOOP_VERSION in deploy/.env to a version number. Updates then wait until you change it.