Kora/Setup Guide

Setup Guide

Install Kora, run the setup wizard and get your license server online.

Kora is set up in the browser. You start it once, open the dashboard and a setup wizard asks for everything it needs.

Before You Start

You need:

Hosting

OptionBest for
Game panel (Pterodactyl)The easiest choice. The panel keeps Kora running and gives you a console and file manager.
Linux VPS or dedicated serverFull control. Use a process manager such as PM2 or systemd.
Your own computerTesting and development.

Haven Development hosts Kora on Pterodactyl.

Install

  1. Create a server with a Node.js 20 or newer egg.
  2. Upload the Kora files.
  3. Set the startup command to node index.js.
  4. Start the server.

On the first start Kora creates config.json and serves the dashboard on port 3000. The console shows:

Kora is not configured yet. Open the dashboard to run the setup wizard.

Kora installs the driver for your database the first time it connects, so there is nothing else to install.

Discord Application

Everyone signs in to the dashboard with Discord.

  1. Create an application in the Discord Developer Portal.
  2. Go to OAuth2 and add your dashboard address followed by /api/auth/callback/discord under Redirects:
    • On your own computer: http://localhost:3000/api/auth/callback/discord
    • On a domain: https://kora.example.com/api/auth/callback/discord
  3. Copy the Client ID and Client Secret for the wizard.

Setup Wizard

Open http://localhost:3000, or your server's address on port 3000.

StepWhat you enter
WelcomeThe dashboard language.
DatabaseType, host, port, user, password and database name. Click Test Connection.
LicenseYour license key. Click Check License. The Discord account on the license becomes the dashboard owner.
BrandingDashboard name, accent colour, Dashboard URL and API URL. Leave the URLs empty on your own computer.
Discord Sign InClient ID and client secret. The wizard shows the redirect to add. Click Test Credentials.
LaunchClick Launch Kora.

Kora then saves your settings, connects to the database, activates the license, loads its modules and checks for updates. The wizard shows each stage with the live console. When it finishes, click Go to Sign In. There is no restart.

Hosting on a Domain

Point a reverse proxy at each port. Pick yours:

Caddy gets and renews HTTPS certificates on its own. Add this to your Caddyfile and reload Caddy.

/etc/caddy/Caddyfile
kora.example.com {
    reverse_proxy 127.0.0.1:3000
}

api.kora.example.com {
    reverse_proxy 127.0.0.1:3001
}
Terminal
sudo systemctl reload caddy

Set Dashboard URL and API URL in the wizard, or later under Settings > Server URLs. Changing them later asks you to restart Kora.

The dashboard URL, the address in your browser and the redirect in the Developer Portal must all match, or sign-in fails.

Next