From 4f141b01c30a4e8e35de6484879d347fac28618c Mon Sep 17 00:00:00 2001 From: Robert Perce Date: Sat, 4 Apr 2026 22:59:39 -0500 Subject: [PATCH] docs: more README instructions --- README.md | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 90fb9b5..fad7cb6 100644 --- a/README.md +++ b/README.md @@ -11,17 +11,56 @@ I think of when I see "CRM". * Last-contact-time mapping * Address as single field (plus code? lat/long? go crazy!) * Free-text-entry field + * Desired contact periodicity * Journal with Obsidian-like `[[link]]` syntax +* Contact groups (e.g. "Met with `[[Brunch Bunch]]` at the diner") * ical server for birthday reminders +## Explore + +My instance is at https://crm.rperce.net. Username "demo" and password "demo" let +you log into an ephemeral demo user if you want to poke around. + +If you want an account, contact me directly or use the "self-hosting" instructions below. + ## Planned features * Report birthdays and manage add'l fields for contacts stored on a remote CardDAV server * Act as CardDAV server for other clients * For each contact: * Arbitrary add'l yearly dates (e.g. anniversaries) that show on calendar * Relationship mapping - * Desired contact periodicity * Additional arbitrary fields (no special handling) -* Contact groups (e.g. "Met with `[[Brunch Bunch]]` at the diner") * "Named in journal but has no contact entry" detection * Email birthday reminders over SMTP + +--- + +## Development / self-hosting + +1. Clone the repo. +2. Build for your system with `./Taskfile _cargo build --release`. +3. Deploy the binary from `./target/release/mascarpone` to wherever you want that's in PATH + (or use it from here if you want) +4. In the working directory that you want the server to save its databases in, + 1. Create a user for yourself with `mascarpone set-password YOUR_USERNAME`. This will create a `users.db` file. + 2. Run `mkdir dbs`. + 3. Copy the `hashed_static` directory from the code repository. +5. Run `mascarpone serve [port]` from that working directory. The default port is 3000. + If you need to be able to bind to a host other than `0.0.0.0`, contact me directly. + +### Example systemd service file +``` +[Unit] +Description=Mascarpone CRM +After=network.target + +[Service] +Type=simple +WorkingDirectory=/var/local/mascarpone/ +ExecStart=/usr/bin/mascarpone serve +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=multi-user.target +```