|
||
---|---|---|
assets | ||
dev | ||
helpers | ||
models | ||
post_handlers | ||
templates | ||
CHANGELOG.md | ||
COPYING | ||
Forget_Me_Not.nimble | ||
README.md | ||
fmn_gs.nim |
README.md
Forget-Me-Not
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 using the Guildenstern multi-threaded server library and the muti-threaded SQLiteral SQLite API library.
System Package Dependencies
curl: send any due Reminders by running the following Curl command from /etc/periodic/15min or similar cron mechanism.
-- curl -d "send_reminders_key=your-string-key" -X POST http://127.0.0.1:your-apps-post-port-num/send-reminders
-- set your send_reminders_key in /post_handlers/send_reminders_post_handler.nim
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.
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.
sqlite3: for the database.
nim: to compile binary. We used nim 2.2.4 at the time of writing this.
Compiling and running
-- Install any non std/lib Nim package dependencies imported in the Forget-Me-Not source code with Nimble.
-- compile with nim c --cc:clang --mm:atomicArc -d:ssl --d:release fmn_gs.nim
. Remove --cc:clang
to use gcc instead.
-- automate starting with openrc, systemd, or similar.
-- use nginx (or similar) as reverse proxy and for serving assets.
-- we will try to add some example configs for some of this as time allows, assuming user interest.
Or use ITwrx web hosted instance.
-- We will add a Forget-Me-Not project page to ITwrx.org along with hosting plan.