Khonsubase is a lightweight project management and knowledgebase collaboration tool written in rust.
This project's aim is to provide an easy-to-self-host solution that requires few resources to run.
This project was originally dreamed up years ago, but work only began in 2021. As such, it is not ready to be used by anyone. As of writing this, there isn't anything to use except a Login form. Once a link to an issue tracker for this project hosted on base.khonsulabs.com is available, then you might consider using it!
Khonsubase is born out of the desires of the primary author, Jon. As part of attempting to develop an MMO, it becomes overwhelming to organize task management for a codebase spread across multiple open source projects. I wanted a solution that could provide an issue tracker for anyone to use for my open-source projects, but also had powerful project management features that minimized manual issue management.
GitHub Issues is a great product because of how lightweight and easy it is. However, it doesn't support blocking issues (outside of manually doing it in the issue's description), and multi-project management is very lightweight. There are excellent solutions that don't offer public views into a subset of projects. And, there are a lot of solutions that aren't that great, but I won't name any.
As someone who ran his own tech team at a company he co-founded, Jon never really fell in love with any of the project management software that he tried, and most felt prohibitively expensive compared to the open-source software we were using at the time.
- Easy to deploy in a self-hosted environment
- Lightweight and performant
- Multilingual support
- Support Open and Closed source projects
- Support Confidential issue reporting
- Issue/Bug tracking with dependencies and unlimited hierarchy
- Personal task list management with private tasks and a unified Up Next view
- Markdown-based Knowledgebase
- Simple JSON-based RESTful API that exposes all of the data
This project is being dogfooded for Khonsu Labs, and so a majority of the feature development will be based on those needs and wants. However, if you have a feature idea, don't hestitate to request it.
- PostgreSQL 11+ (Might work with previous versions, but is untested)
- (for attachments) Amazon S3-compatible Storage Bucket
-
Install libpq-dev:
sudo apt install libpq-dev
-
Create a user in postgres, e.g.:
CREATE ROLE baseuser LOGIN PASSWORD 'SecretPassword' CONNECTION LIMIT -1;
-
Create a database in postgres with the user created being the owner:
CREATE DATABASE khonsubase OWNER baseuser;
-
Build the server:
cargo build --package server --release
-
Copy the required files to your server:
cp target/release/server deployment/khonsubase cp -r static/ deployment cp -r templates/ deployment
-
Edit
.env
in your Deployment folder, or add these environment variables (update your database settings accordingly):DATABASE_URL="postgres://baseuser:SecretPassword@localhost/khonsubase"
-
Launch the server to generate the default admin user:
cd deployment; ./khonsubase
-
Save the admin password. You can now set up a service to ensure it's always running. Here's an example systemd service (`/etc/systemd/system/khonsubase.service):
[Unit] Description=Khonsubase Server After=network.target StartLimitIntervalSec=0 [Service] Type=simple Restart=always RestartSec=1 User=base WorkingDirectory=/home/base/deploy ExecStart=/home/base/deploy/khonsubase [Install] WantedBy=multi-user.target
Once created, you can launch the service with
systemctl start khonsubase
. You can view logs usingjournalctl -u khonsubase
. Enable the service at startup with `systemctl enable khonsubase
- Copy the new executable and updated
templates/
andstatic
folders, and restart the server. All database migrations will be performed automatically, and any missing seed data will be initialized.