Legal
Last updated 31 August 2026
Nodum is an open-source project. nodum.md is one instance of it, hosted and paid for by one person on their own server, and offered to anyone who is comfortable keeping their notes there. It is not a company, and there is no team behind it.
If you would rather not trust someone else’s server — a reasonable position — the whole thing runs with one Docker Compose command on hardware you control, and this document then describes nothing, because no data reaches me at all. Read the source.
Your account. Email address, display name, and a hash of your password — never the password itself. If you sign in with Google instead, the email address and name Google returns.
What you write. Notes, folders, tags, canvases and uploaded attachments. These are stored so they can be given back to you. They are not read, mined, analysed or used to train anything.
Operational records. Server logs of requests, including IP address, kept so the service can be run and abused less easily — rate limiting needs to know who is asking.
Nothing else. There is no analytics, no advertising, no tracking pixels, no third-party scripts and no cookies beyond the one that keeps you signed in. This is not a policy position so much as a description: none of that code exists in the project.
Connecting a Google account is entirely optional and off until you choose it. If you never connect one, this section does not apply to you.
| Permission | Used for |
|---|---|
| openid, email | Telling one connected account from another, and showing you which one is connected. |
| calendar.events.readonly | Reading your events so each one can become a note. This is the narrow scope — not calendar.readonly, which would also expose settings and sharing rules. |
| calendar.calendarlist.readonly | Listing which calendars exist, so you can choose which ones to sync. |
| gmail.readonly | Reading mail threads so each becomes a note. Not enabled on nodum.md. It is available only to people running their own server, for the reason given below. |
Events and threads are turned into ordinary markdown notes inside your own vault, on the same server, alongside everything else you write. That is the entire purpose. The data is not sent anywhere else, shown to anyone else, or used for any other feature.
Every permission requested is read-only. Nodum has no ability to create, change or delete anything in your calendar or mailbox, and would not be able to if asked.
Google issues a token that lets the sync keep running in the background. It is encrypted before being written to the database, with a key held only in the server’s configuration, and it never appears in any page, API response or log.
Nodum’s use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. Specifically: data obtained through these permissions is used only to provide the sync feature you asked for, is never sold, is never transferred to others except as needed to run the service or where the law requires it, is never used for advertising, and is never read by a human except with your explicit permission — for example, if you ask for help with a problem.
Settings → Connections → Disconnect withdraws the permission at Google and removes the stored token. You can also revoke it directly at myaccount.google.com/permissions, which has the same effect.
Notes already created from your calendar are kept. They are in your vault, you may have written under them, and deleting them is not a decision a disconnect should make for you. Delete them yourself whenever you like — they are ordinary notes.
On a rented server in the European Union, together with an object store for attachments. Everything sits within the same deployment; there is no separate analytics warehouse or backup service holding a second copy elsewhere.
Traffic is encrypted in transit. Passwords are hashed, and stored secrets — Google tokens and any AI provider key you add — are encrypted at rest.
Nobody, other than the services needed to keep the server running:
Your data is not sold, rented or shared for advertising, and there is no arrangement under which it could be. If a valid legal order ever compelled disclosure, you would be told unless telling you were itself unlawful.
Publishing a note or a vault creates a public link, and the content becomes readable by anyone who has it — including search engines. That is the feature working as intended, but it is worth stating plainly: it is the one action here that makes your writing public. Unpublishing removes the link.
Export. Settings → Vault → Export gives you a zip of your notes as plain markdown files. They are yours in a format nothing here owns, at any time, without asking.
Deletion. Settings → Account → Delete account removes your account, vaults, notes and uploaded files, deletes attachments from the object store, and withdraws any Google permission before the record of it disappears — so you are not left with a standing grant that nobody can revoke.
Retention. Content is kept while your account exists and removed when you delete it. Server logs are kept for a short period for operational reasons and then rotate away. Backups, if taken, may hold deleted data briefly until they age out.
If you are in the UK or the EU, data protection law gives you rights of access, correction, deletion, portability and objection. Export and account deletion are built into the product so you can exercise the main ones yourself, immediately, without writing to anyone. For anything else, use the contact below.
Nodum is not intended for children under 13, and accounts are not knowingly created for them.
If this policy changes in a way that affects what happens to your data, the date at the top changes and the change is described in the release notes. The document’s history is public in the repository, so you can see exactly what changed and when.
Questions about any of this, or about your data specifically: privacy@nodum.md.
For bugs and feature requests the repository is a better place, and public discussion helps everyone.
See also the Terms of Service.