Features

Available:

  • Markdown support (Github flavored)
  • Note version history
  • Automatic note expiration via @exp: title prefixes
  • Keyboard navigation support
  • User account administration

Waiting to be implemented:

  • Import/export of notes (#7)
    • Bulk import/export with Markdown
    • Single note export with PDF
  • Webhook compatibility (#4)

Usage

The app can be run in two modes:

  • Combined/fullstack (docker-compose-full.yml)
    • Frontend published to 0.0.0.0:3000 (DOMAIN must be set to the "server's" IP address when accessing e.g. from local network, otherwise the authentication cookies won't be sent correctly by client's browser)
  • Dockerized backend & Vite dev server (docker-compose-back.yml)
    • Frontend published to localhost:5173
    • Golang server and Postgres database are containerized and the frontend can be run in development mode with npm run dev

The ./scripts/run_dev.sh -h output can be used as a reference of running each of the available modes (combined, separate frontend and backend, or purging data from previous test runs with -p or -q):

[?] usage: ./scripts/run_dev.sh [-h|-f|-p]
	-f run both frontend and backend (default: false)
	-p purge any existing database artifacts (default: false)
	-q only purge old data without building/spawning any new containers (default: false)

Configuration

Variable Description Default
PG_* Postgres credentials qnote (user and DB name)
*_SECRET Backend secrets -
ADMIN_* Initial admin account credentials -
ACCOUNT_CREATION_ENABLED Boolean to toggle registration 0
LOG_LEVEL Server log level info
APP_ENV Boolean to toggle production security features (HTTPS for CSRF & CORS) production
DOMAIN Domain of authentication cookies localhost
FRONTEND_URL CORS frontend URL http://localhost:3000
Description
Lightweight note-taking solution with Markdown and versioning support
Readme MIT 2.3 MiB
Languages
Go 42.2%
Svelte 27.7%
TypeScript 16.8%
CSS 10.9%
Shell 1.2%
Other 1.2%