[Unit] # Freezmo — the daily review reminder. # # Reminders are personal: each browser composes the notification text from its # own notes (how many cards are due, in which deck, in the user's language) and # stores it with its push subscription. This oneshot sends exactly that text to # every device, falling back to the generic PUSH_REMINDER_TITLE/_BODY for a # subscription that has none. It reads the same shared env and data directory # as the production service, so it sees the subscriptions the app wrote. # # Install (per user, together with the timer): # cp ~/freezmo/deploy/freezmo-reminders.{service,timer} ~/.config/systemd/user/ # systemctl --user daemon-reload # systemctl --user enable --now freezmo-reminders.timer # Logs: journalctl --user -u freezmo-reminders -n 20 Description=Freezmo daily review reminder Documentation=file://%h/freezmo/README.md After=network-online.target Wants=network-online.target [Service] Type=oneshot # The release's server directory, so `.freezmo/push` is the exact directory the # running app writes subscriptions to (the standalone server has no .env file # handling of its own — the env comes from EnvironmentFile, like the service). WorkingDirectory=%h/freezmo-prod/current/server Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin EnvironmentFile=-%h/freezmo-prod/shared/env.local ExecStart=/bin/node %h/freezmo-prod/current/src/scripts/send-reminders.mjs