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)
- Frontend published to
- 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
- Frontend published to
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 |
Languages
Go
42.2%
Svelte
27.7%
TypeScript
16.8%
CSS
10.9%
Shell
1.2%
Other
1.2%