Skip to content

Repository files navigation

Nucleus-notes logo

Nucleus-notes

A small, self-hosted notes and to-do workspace for a founding team.
One Go binary, one SQLite file, no external services.

Nucleus-notes dashboard

Everyone shares one board: daily notes, future goals, pinned references, and a to-do list that the whole team picks up and finishes together. It runs from a single binary, keeps everything in one SQLite file next to it, and has no build step for the front end. It comes in a dark glass theme and a clean light theme.

Features

  • Notes, goals, pinned. Write freely. Anyone can edit or delete, every edit is snapshotted, and deletes go to a recoverable trash.
  • Collaborative to-dos. Turn any note into a task. Anyone can pick it up, so several people can work the same thing, and you can see who finished it.
  • Threads and reactions. Comment on any note, react with emoji, attach files up to 20 MB.
  • Team at a glance. Click a teammate to spotlight their work everywhere. Click a calendar day to see just that day. A recent-activity bar shows the latest changes across the board.
  • Search. Full-text search over everything (SQLite FTS5).
  • Login built in. Email magic-link style accounts with hashed passwords, sessions, CSRF, and rate limiting. No SSO to set up.

Quick start

git clone https://github.com/stexz01/nucleus-notes.git && cd nucleus-notes
go build -o nucleus . && ./nucleus
# open http://127.0.0.1:8787

First run seeds five founder accounts. Their passwords are printed to the log and saved to data/initial-credentials.txt. Sign in and change them from the avatar menu.

Or with Docker:

docker compose up -d --build

Try the demo

NUCLEUS_DEMO=1 NUCLEUS_ADMIN_PASSWORD=demo1234 ./nucleus

This fills a fresh board with example notes, goals, pinned links and to-dos, so you can see how it looks. Sign in as aarav / demo1234.

Configuration

Variable Default Purpose
NUCLEUS_ADDR 127.0.0.1:8787 Listen address
NUCLEUS_DATA_DIR data Where the SQLite file and uploads live
NUCLEUS_SECURE_COOKIE 0 Set 1 when served over HTTPS
NUCLEUS_ADMIN_PASSWORD (random) Pin the first admin's password on first run
NUCLEUS_DEMO (off) Seed demo content on an empty board

Put a TLS reverse proxy in front for anything beyond localhost, and set NUCLEUS_SECURE_COOKIE=1.

Light and dark

Dark Light
dark light

Toggle from the icon in the top-right corner. Your choice is remembered.

Stack

Go standard library, modernc.org/sqlite (pure Go, no CGO), and bcrypt. The front end is plain HTML, CSS and JavaScript, embedded into the binary. That is the whole dependency list.

License

MIT. See LICENSE.

About

A small, self-hosted notes and to-do workspace for a founding team. One Go binary, one SQLite file.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages