Skip to content

Installation

At the moment, the only way to install Kitsune is to compile it from source.
Don’t worry, that sounds way more scary than it actually is. In this guide we will step you through it.

Dependencies

In order to build Kitsune, need a few dependencies. These are:

  1. The Rust toolchain (recommended installation)
  2. PostgreSQL as a dedicated DBMS
  3. Redis for the job queue
  4. NodeJS v16+
  5. Reverse Proxy (recommended: Caddy)

Yes, that’s really it. We don’t need more. Kitsune is designed to use as few native dependencies as possible to make building from source easy!

Note on C/C++ compiler requirement

Rust needs a C/C++ compiler to invoke the linker and potentially build some native libraries to statically link to, so make sure you have one installed.

To install it under Debian and Ubuntu, run the following command:

Terminal window
sudo apt install build-essential

The name of the package(s) containing these tools might differ between distributions.

Building

First, grab yourself a copy of the source code. You can either download the main branch ZIP archive or clone it via Git. Both ways will work just fine.

To download a Git repository, just run the following command (this assumes you have Git installed):

Terminal window
git clone https://github.com/kitsune-soc/kitsune.git

Next, move into the newly created directory and then into the kitsune-fe directory and build the frontend. To do this run:

Terminal window
npm i && npm run build

Now move out of the directory and back into the main one. Then build the binaries in release mode.
To do this run the following command:

Terminal window
cargo build --profile=dist

After the command finished there should be the following three binaries inside the target/dist directory:

  • kitsune: The main Kitsune application. This is the heart of the whole application.
  • kitsune-cli: The Kitsune CLI utility. Used to give users roles and clear the job scheduler table.
  • kitsune-job-runner: The dedicated Kitsune job runner

That’s it for the building part but before we can actually run our instance, we need to configure it first.