---
## 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](https://git.umbrella.haus/ae/qnote/issues/7))
- Bulk import/export with Markdown
- Single note export with PDF
- Webhook compatibility ([#4](https://git.umbrella.haus/ae/qnote/issues/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`):
```shell
[?] 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` |