Forget-Me-Not/README.md

35 lines
2.2 KiB
Markdown
Raw Normal View History

2025-05-18 11:11:58 -05:00
# Forget-Me-Not
2025-05-18 10:56:56 -05:00
2025-05-18 09:56:47 -05:00
A single-user-per-instance web application for creating/editing Reminders that can repeat in various ways. Supports email and XMPP notifications. It is written in [Nim](https://nim-lng.org) using the [Guildenstern](https://github.com/olliNiinivaara/GuildenStern) multi-threaded server library and the muti-threaded [SQLiteral](https://github.com/olliNiinivaara/SQLiteral) SQLite API library.
2025-05-18 11:11:58 -05:00
2025-05-18 11:14:10 -05:00
## System Package Dependencies
2025-05-18 10:56:56 -05:00
2025-05-18 09:56:47 -05:00
curl: send any due Reminders by running the following Curl command from /etc/periodic/15min or similar cron mechanism.
2025-05-18 11:13:07 -05:00
2025-05-18 09:56:47 -05:00
-- curl -d "send_reminders_key=your-string-key" -X POST http://127.0.0.1:your-apps-post-port-num/send-reminders
2025-05-18 11:13:07 -05:00
2025-05-18 09:56:47 -05:00
-- set your send_reminders_key in /post_handlers/send_reminders_post_handler.nim
2025-05-18 11:13:07 -05:00
xmppc: Forget-Me-Not uses this program to send the XMPP messages. If you only ever intend to use email notifications then you don't need it. see xmppc docs about using a default config so Forget-Me-Not can just use that.
2025-05-18 11:13:07 -05:00
2025-05-18 09:56:47 -05:00
libsodium: This is used to hash user passwords when creating a Forget-Me-Not user with /dev/create_user.nim. See comments in fmn_gs.nim.
2025-05-18 11:13:07 -05:00
2025-05-18 09:56:47 -05:00
sqlite3: for the database.
2025-05-18 11:13:07 -05:00
2025-05-18 09:56:47 -05:00
nim: to compile binary. We used nim 2.2.4 at the time of writing this.
2025-05-18 11:11:58 -05:00
2025-05-18 11:14:10 -05:00
## Compiling and running
2025-05-18 10:56:56 -05:00
-- Until the next release, you can install any non std/lib Nim package dependencies listed in Forget_Me_Not.nimble with Nimble.
2025-05-18 11:13:07 -05:00
2025-05-18 09:56:47 -05:00
-- compile with `nim c --cc:clang --mm:atomicArc -d:ssl --d:release fmn_gs.nim`. Remove `--cc:clang` to use gcc instead.
2025-05-18 11:13:07 -05:00
2025-05-18 09:56:47 -05:00
-- automate starting with openrc, systemd, or similar.
2025-05-18 11:13:07 -05:00
2025-05-18 09:56:47 -05:00
-- use nginx (or similar) as reverse proxy and for serving assets.
2025-05-18 11:13:07 -05:00
2025-05-18 09:56:47 -05:00
-- we will try to add some example configs for some of this as time allows, assuming user interest.
2025-05-18 11:11:58 -05:00
-- locally, we installed tailwindcss cli in the `dev` folder and run `./tailwindcss -i fmn.css -o ../assets/css/fmn.css -w -m` from there to create the production css file in assets/css. You can do the same, if you wanted to tweak anything.
2025-05-18 10:56:56 -05:00
-- In some cases, you may have to manually edit nimword and/or nim-libsodium to add the libsodium.so version your distro has installed. If you have libsodium installed, and Forget-Me-Not still won't run, run it in the foreground to get the error message, and take a look at that.