Warning
This project is still in development so expect breaking changes!
kalmia-demo-fin.mp4
Kalmia is a Go tool with a web interface for managing RsPress documentation. It supports multiple versions, multiple users, and includes a markdown editor for easy edits. Please visit our website for more information on how to use Kalmia and its features.
1. Add a new "label" field for Page Group
The sidebar in Outline will display PageGroup.label instead of PageGroup.name. The underlying folder will still be created using PageGroup.name.
This change separates the display layer from the storage layer, allowing label to be used for i18n-friendly names. PageGroup.Name remains required and must be ASCII-only, since it is used as the actual folder name.
2. Change Page's Filename to use Slug, while Page Name is used for Outline's display
Similar to (1) this is to accomodate i18n-friendly names for page. While keeping storage filename ASCII.
- Go >= 1.22
- Node.js (version v20.15.0 or later)
- npm (usually comes with Node.js)
- pnpm (version v10 or later) Download pnpm using this command
npm install -g pnpm@latest-10
Refer to pnpm installation if facing any trouble installing through npm
- PostgreSQL >= 15 (If you're not using SQLite)
You can download from releases, our website or even clone the repository:
git clone https://github.com/DifuseHQ/kalmia.git
cd kalmia
Kalmia uses a Makefile to manage build processes. Here are the main commands:
- Build everything (including dependencies):
make all
- Install dependencies (including building the web application):
make deps
- Run tests:
make test
- Build for specific platforms:
make build-amd64-linux
make build-arm64-linux
make build-win64
make build-freebsd64
make build-macos-arm64
make build-macos-amd64
- Build for all supported platforms:
make build
- Clean build artifacts:
make clean
After building, you can find the executable in the dist directory. Run it with:
cd dist && ./kalmia_<version>_<platform>
Replace and with the appropriate values.
Remember there should be a config.json file in the same directory as the executable or you can specify the same with the -config flag.
You can visit the website at http://localhost:2727/admin to start using Kalmia.
We welcome contributions from the community. Please feel free to submit a Pull Request. We primarily use SQLite while developing, to setup a development environment, you can run:
npm install
npm run start
In the web/ directory and then run:
air .
In the root directory in a separate terminal to start the Go server. Make sure you have Air installed.
AGPL-3.0