Replaces the upstream Notesium README with librenotes-specific content: project description, multi-tenant goals, build/run instructions referencing cmd/librenotes, Nix-based dev setup, fork attribution, and MIT license note. CI badge points at the workflow that #5 will create. Module path and directory layout match the structure landed in the previous fork commit. Closes #37. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
75 lines
2.0 KiB
Markdown
75 lines
2.0 KiB
Markdown
# librenotes
|
|
|
|
[](https://git.librete.ch/public/librenotes/actions)
|
|
|
|
Cloud-native, multi-tenant notes application. A fork of
|
|
[Notesium](https://github.com/alonswartz/notesium) extended with
|
|
authentication, per-user data isolation, sync, and PWA support so it can
|
|
run as a hosted service at [librenot.es](https://librenot.es).
|
|
|
|
## Features
|
|
|
|
- Markdown notes with bi-directional links (Zettelkasten / evergreen notes)
|
|
- Embedded web app — no Electron, no Node runtime, single static binary
|
|
- Multi-tenant backend with magic-link authentication (in development)
|
|
- Offline-capable PWA with background sync (planned, Phase 4)
|
|
|
|
## Build
|
|
|
|
Requires Go 1.20 or later.
|
|
|
|
```sh
|
|
go build ./cmd/librenotes
|
|
```
|
|
|
|
This produces a `librenotes` binary in the current directory. The web
|
|
frontend and shell completion are embedded into the binary at compile
|
|
time, so no extra files are needed at runtime.
|
|
|
|
A Makefile with `build`, `test`, `run`, and `clean` targets is provided
|
|
for convenience:
|
|
|
|
```sh
|
|
make build
|
|
make test
|
|
```
|
|
|
|
## Run
|
|
|
|
```sh
|
|
./librenotes web --notes-dir ~/notes
|
|
```
|
|
|
|
See `./librenotes help` for the full command list.
|
|
|
|
## Development setup
|
|
|
|
A Nix flake provides a reproducible development environment with Go,
|
|
build tools, and the project CLIs:
|
|
|
|
```sh
|
|
nix develop
|
|
```
|
|
|
|
The repository layout follows the standard Go project structure:
|
|
|
|
```
|
|
cmd/librenotes/ Binary entry point
|
|
internal/notesium/ Core notes package (forked from Notesium)
|
|
internal/notesium/web/ Embedded frontend assets
|
|
```
|
|
|
|
The Go module path is `git.librete.ch/public/librenotes`.
|
|
|
|
## Fork attribution
|
|
|
|
librenotes is a fork of [Notesium](https://github.com/alonswartz/notesium)
|
|
by Alon Swartz, used and redistributed under the MIT License. See
|
|
[NOTICE](./NOTICE) for the upstream commit hash at fork time and
|
|
instructions for tracking upstream changes.
|
|
|
|
## License
|
|
|
|
MIT — see [LICENSE](./LICENSE). Copyright is shared between the original
|
|
Notesium author and the librenotes contributors.
|