Skip to content

Install Akema

Akema is a single program with the Kafka client built in. Download it, start it, and open your browser. There’s no database, agent or JVM to set up.

  • Operating system: Linux with glibc 2.28 or newer (Ubuntu 20.04, Debian 11, RHEL and Rocky 8, or later), or Docker. macOS and Windows builds are in beta.
  • Browser: a current Chrome, Firefox, Edge or Safari.
  • Kafka: not needed to start. You can explore CSV and JSON files offline, then connect to Kafka when you’re ready.
  • Nothing else. Akema doesn’t need Java, Go, Node or a system librdkafka. Don’t install librdkafka from your package manager; the copy inside Akema is the one it uses.

Akema listens on 127.0.0.1:8080 by default, so only your own machine can reach it, and there’s no sign-in until you turn one on. Keep it on loopback unless you mean to share one bench with your team. To share it, see Sign-in and sharing.

Each release has a .tar.gz for amd64 and arm64, and a SHA256SUMS file to check them against. Keep the file names as they are when you download, or the checksum check won’t find them.

Terminal window
# Use the links from the download page
curl -L -O "$AKEMA_DOWNLOADS/akema_1.0.0_linux_amd64.tar.gz"
curl -L -O "$AKEMA_DOWNLOADS/SHA256SUMS"
grep 'akema_1.0.0_linux_amd64.tar.gz' SHA256SUMS | sha256sum -c
tar -xzf akema_1.0.0_linux_amd64.tar.gz
sudo install -m 0755 akema /usr/local/bin/akema
akema -addr 127.0.0.1:8080

Then open http://127.0.0.1:8080. On ARM servers, use akema_1.0.0_linux_arm64.tar.gz.

If Akema reports GLIBC_2.xx not found, your distribution is older than glibc 2.28. Use the Docker image instead.

To keep Akema running for your user, add ~/.config/systemd/user/akema.service:

[Unit]
Description=Akema Kafka inspector
After=network.target
[Service]
ExecStart=/usr/local/bin/akema -addr 127.0.0.1:8080
Environment=AKEMA_DATA_DIR=%h/.config/akema
Restart=on-failure
[Install]
WantedBy=default.target
Terminal window
systemctl --user daemon-reload
systemctl --user enable --now akema.service

The image contains the same Akema binary as the Linux download. Give it a named volume for /data: that’s where your workspaces, settings and license live.

Terminal window
docker run --rm -p 127.0.0.1:8080:8080 \
-v akema-data:/data \
-e AKEMA_DATA_DIR=/data \
"$AKEMA_IMAGE:1.0.0"

Then open http://127.0.0.1:8080.

Two things to know:

  • Publish the port to 127.0.0.1, as above. Inside the container Akema listens on all interfaces. Publishing 0.0.0.0:8080:8080 would share your Akema with your whole network, without a sign-in unless you’ve turned one on. Because the container isn’t on loopback, Akema prints a warning about it when it starts, even when the port is published to 127.0.0.1.
  • The image serves plain HTTP. HTTPS is optional; to turn it on, add the flags after the image name. See Serve over HTTPS.
  • The volume is the node. Your trial and license are tied to the volume, not the container. Recreate the container with the same volume and nothing changes. A new volume counts as a new node and needs its own license.

The macOS builds aren’t signed yet, so macOS asks before running them.

Terminal window
# Apple Silicon. On an Intel Mac, use akema_1.0.0_darwin_amd64.tar.gz
curl -L -O "$AKEMA_DOWNLOADS/akema_1.0.0_darwin_arm64.tar.gz"
curl -L -O "$AKEMA_DOWNLOADS/SHA256SUMS"
grep 'akema_1.0.0_darwin_arm64.tar.gz' SHA256SUMS | shasum -a 256 -c
tar -xzf akema_1.0.0_darwin_arm64.tar.gz
xattr -d com.apple.quarantine akema
sudo install -m 0755 akema /usr/local/bin/akema
akema -addr 127.0.0.1:8080

If macOS still says the app can’t be opened, go to System Settings → Privacy & Security and choose Open Anyway.

The Windows build isn’t signed yet. If SmartScreen stops it, choose More info → Run anyway.

Terminal window
# Use the link from the download page
$base = $env:AKEMA_DOWNLOADS
Invoke-WebRequest -Uri "$base/akema_1.0.0_windows_amd64.zip" -OutFile akema_1.0.0_windows_amd64.zip
Invoke-WebRequest -Uri "$base/SHA256SUMS" -OutFile SHA256SUMS
$want = (-split (Select-String -Path SHA256SUMS -Pattern 'akema_1.0.0_windows_amd64\.zip').Line)[0]
$got = (Get-FileHash .\akema_1.0.0_windows_amd64.zip -Algorithm SHA256).Hash
if ($got.ToLowerInvariant() -ne $want.ToLowerInvariant()) { throw "SHA256 mismatch" }
Expand-Archive .\akema_1.0.0_windows_amd64.zip -DestinationPath $env:LOCALAPPDATA\Akema\bin
& "$env:LOCALAPPDATA\Akema\bin\akema.exe" -addr 127.0.0.1:8080

If Windows reports that VCRUNTIME140.dll is missing, install the Microsoft Visual C++ Redistributable.

The first time Akema starts, a 14-day trial begins. It runs offline, with no account and nothing sent home, and includes everything in Solo.

When the trial ends, live Kafka connections and Parquet files pause until you add a license. CSV and JSON replays keep working, and your workspaces, traps and layouts stay as they were.

Solo licenses are files tied to one machine (or one Docker volume). You can check the state at any time with akema -license-status, or in the app under Settings → License.

Solo is $99 a year per node. To buy it:

  1. On the node, run akema -license-fingerprint, or copy the fingerprint from Settings → License. In Docker, run docker exec <container> akema -license-fingerprint.

  2. Go to akema.io/buy, paste the fingerprint, and pay. Checkout is through Link, Stripe’s merchant of record, which also sends the receipt and handles any tax.

  3. Within a few minutes, akema.license arrives by email. Import it on that node:

    Terminal window
    akema -license-import ./akema.license

    In Docker, copy the file in first: docker cp akema.license <container>:/data/ then docker exec <container> akema -license-import /data/akema.license.

A license runs to the end of the year you paid for, plus 14 days’ grace. The subscription renews every year, and each renewal emails a new license file for the year ahead. Import it the same way; it replaces the old one. Akema never checks in online, so a renewed license only takes effect once you import it. A running Akema picks up an imported license without a restart.

To cancel, manage the subscription at link.com. Your current license keeps working until its end date, and nothing renews after that.

Moving to a new machine, or a new Docker volume, changes the fingerprint. Reply to your license email with the new fingerprint and we’ll send a license for it.

Akema stores your setup, never message content: connection plans, traps, layouts, uploaded schemas and the license.

System Folder
Linux ~/.config/akema (or $XDG_CONFIG_HOME/akema)
macOS ~/Library/Application Support/Akema
Windows %LOCALAPPDATA%\Akema
Docker /data

To use a different folder, pass -data-dir PATH or set AKEMA_DATA_DIR.

If you turn on HTTPS with a local certificate, Akema also keeps its certificate authority in a tls folder here. Its key, ca.key, can issue certificates your browsers trust, so it’s one more reason to protect this folder and its backups.

Flag Default What it does
-addr 127.0.0.1:8080 Address and port to listen on
-data-dir See above Folder for settings, workspaces and the license
-version Print the version and exit
-license-status Print the license state and exit
-license-fingerprint Print this machine’s fingerprint and exit
-license-import PATH Import a license file and exit
-auth-set Set a shared sign-in passphrase, read from the terminal, and exit. See Sign-in and sharing
-auth-user-set Add a person who signs in with a name and PIN, and exit. Use with -auth-user-name and -auth-user-role (editor or viewer)
-auth-user-remove NAME Remove a person and exit
-auth-disable Turn sign-in off and exit
-require-auth Refuse to start unless sign-in is set up
-auth-host NAME A host name teammates use to reach Akema. Repeat for each name
-tls Serve the page over HTTPS with a local certificate. Optional, off by default. See Serve over HTTPS
-tls-host NAME Another address the local certificate covers: localhost or a loopback or private IP. Repeat for each
-tls-cert PATH, -tls-key PATH Serve HTTPS with your own certificate and key, in PEM format
-require-tls Refuse to start unless HTTPS is set up
-tls-trust, -tls-untrust Add Akema’s local CA to your user’s trust store, or remove it, and exit. -tls-ca PATH names another copy of the CA certificate

Delete the akema binary and the data folder above. For Docker, also remove the volume with docker volume rm akema-data.

What you see Why What to do
GLIBC_2.xx not found Linux is older than glibc 2.28 Use the Docker image
failed to create consumer, or errors mentioning librdkafka A system librdkafka is interfering, or the build isn’t an official release Use the official download and don’t install librdkafka separately
macOS says the app is damaged or can’t be opened The download is quarantined Run xattr -d com.apple.quarantine on the binary, or use Open Anyway
Windows SmartScreen blocks it The build isn’t signed yet More info → Run anyway
sha256sum: FAILED open or read The file was renamed, or the check ran against every file in SHA256SUMS Keep the original file name and check just that line, as shown above
Docker starts a new trial each time No volume for /data Add -v akema-data:/data -e AKEMA_DATA_DIR=/data
Settings missing after moving the binary Akema found settings in the old working folder before Copy the settings files into the data folder above
operator auth required but file is missing Akema was started with -require-auth, but sign-in isn’t set up in this data folder Run akema -auth-set or -auth-user-set with the same -data-dir, or remove -require-auth. See Sign-in and sharing
Kafka stops working, CSV still works The trial ended or the license is for another machine Import a license for this machine

Follow the Quickstart to load a sample file, set up your first traps and chart the results, all without a Kafka cluster.