mascarpone/README.md

67 lines
2.1 KiB
Markdown
Raw Normal View History

2025-10-14 08:26:18 -05:00
# Mascarpone CRM
I always write "cream cheese" on my grocery list as "crm chs", so that's what
I think of when I see "CRM".
2025-11-27 13:45:21 -06:00
## Current features
* In-app contacts
* For each contact:
* Names
* Birthday
* Last-contact-time mapping
2025-11-28 08:40:43 -06:00
* Address as single field (plus code? lat/long? go crazy!)
* Free-text-entry field
2026-04-04 22:59:39 -05:00
* Desired contact periodicity
2025-11-27 13:45:21 -06:00
* Journal with Obsidian-like `[[link]]` syntax
2026-04-04 22:59:39 -05:00
* Contact groups (e.g. "Met with `[[Brunch Bunch]]` at the diner")
2025-11-27 13:45:21 -06:00
* ical server for birthday reminders
2025-10-14 08:26:18 -05:00
2026-04-04 22:59:39 -05:00
## 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.
2025-11-27 13:45:21 -06:00
## Planned features
* Report birthdays and manage add'l fields for contacts stored on a remote CardDAV server
2025-10-14 08:26:18 -05:00
* Act as CardDAV server for other clients
* For each contact:
2025-11-27 13:45:21 -06:00
* Arbitrary add'l yearly dates (e.g. anniversaries) that show on calendar
2025-10-14 08:26:18 -05:00
* Relationship mapping
2025-11-27 13:45:21 -06:00
* Additional arbitrary fields (no special handling)
2025-10-14 08:26:18 -05:00
* "Named in journal but has no contact entry" detection
* Email birthday reminders over SMTP
2026-04-04 22:59:39 -05:00
---
## 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
```