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.
Requirements
Section titled “Requirements”- 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 installlibrdkafkafrom 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.
# Use the links from the download pagecurl -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.gzsudo install -m 0755 akema /usr/local/bin/akemaakema -addr 127.0.0.1:8080Then 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.
Run it as a service
Section titled “Run it as a service”To keep Akema running for your user, add ~/.config/systemd/user/akema.service:
[Unit]Description=Akema Kafka inspectorAfter=network.target
[Service]ExecStart=/usr/local/bin/akema -addr 127.0.0.1:8080Environment=AKEMA_DATA_DIR=%h/.config/akemaRestart=on-failure
[Install]WantedBy=default.targetsystemctl --user daemon-reloadsystemctl --user enable --now akema.serviceDocker
Section titled “Docker”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.
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. Publishing0.0.0.0:8080:8080would 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 to127.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.
macOS (beta)
Section titled “macOS (beta)”The macOS builds aren’t signed yet, so macOS asks before running them.
# Apple Silicon. On an Intel Mac, use akema_1.0.0_darwin_amd64.tar.gzcurl -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.gzxattr -d com.apple.quarantine akemasudo install -m 0755 akema /usr/local/bin/akemaakema -addr 127.0.0.1:8080If macOS still says the app can’t be opened, go to System Settings → Privacy & Security and choose Open Anyway.
Windows (beta)
Section titled “Windows (beta)”The Windows build isn’t signed yet. If SmartScreen stops it, choose More info → Run anyway.
# Use the link from the download page$base = $env:AKEMA_DOWNLOADSInvoke-WebRequest -Uri "$base/akema_1.0.0_windows_amd64.zip" -OutFile akema_1.0.0_windows_amd64.zipInvoke-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).Hashif ($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:8080If Windows reports that VCRUNTIME140.dll is missing, install the Microsoft Visual C++ Redistributable.
Trial and license
Section titled “Trial and license”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.
Buy and renew
Section titled “Buy and renew”Solo is $99 a year per node. To buy it:
-
On the node, run
akema -license-fingerprint, or copy the fingerprint from Settings → License. In Docker, rundocker exec <container> akema -license-fingerprint. -
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.
-
Within a few minutes,
akema.licensearrives by email. Import it on that node:Terminal window akema -license-import ./akema.licenseIn Docker, copy the file in first:
docker cp akema.license <container>:/data/thendocker 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.
Where Akema keeps its files
Section titled “Where Akema keeps its files”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.
Command-line flags
Section titled “Command-line flags”| 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 |
Uninstall
Section titled “Uninstall”Delete the akema binary and the data folder above. For Docker, also remove the volume with docker volume rm akema-data.
Troubleshooting
Section titled “Troubleshooting”| 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 |
Next steps
Section titled “Next steps”Follow the Quickstart to load a sample file, set up your first traps and chart the results, all without a Kafka cluster.