Skip to content

bachhh/Kalmia

 
 

Repository files navigation

Kalmia

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.

Change from upstream

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.

Pipeline

Build Pipeline

Limitations

Requirements

  • 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)

Installation

You can download from releases, our website or even clone the repository:

git clone https://github.com/DifuseHQ/kalmia.git
cd kalmia

Building

Kalmia uses a Makefile to manage build processes. Here are the main commands:

  1. Build everything (including dependencies):
make all
  1. Install dependencies (including building the web application):
make deps
  1. Run tests:
make test
  1. 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
  1. Build for all supported platforms:
make build
  1. Clean build artifacts:
make clean

Usage

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.

Contributing

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.

License

AGPL-3.0

About

A documentation CMS written in go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 50.1%
  • Go 43.9%
  • JavaScript 3.9%
  • CSS 1.3%
  • Makefile 0.4%
  • Dockerfile 0.2%
  • HTML 0.2%