Install and deploy akone
akone puts the Go service, embedded Admin assets, operational commands, and OpenAPI CLI in one executable. When you run the native binary directly, its smallest setup uses local SQLite and does not require PostgreSQL, Node.js, or Docker. The npm installation method requires Node.js 18 or later.
Current release statusAppKernia has not published a public GitHub Release, npm package, or Homebrew Formula. The channel commands below document the implemented release paths; a source build is the only path available today. Use the matching preview command after the first Preview is published.
Choose an installation method
Available now
Requires Go 1.26.5, Node.js 24, and pnpm 11. The binary embeds Admin and starts with SQLite by default.
git clone https://github.com/Payhon/AppKernia.git
cd AppKernia
corepack enable
pnpm install --frozen-lockfile
make build-akone
mkdir -p "$HOME/.local/bin"
install -m 0755 ./server/bin/akone "$HOME/.local/bin/akone"
export PATH="$HOME/.local/bin:$PATH"
akone version --jsonThe PATH change affects only this terminal. Persist it in your shell profile if needed.
Preview available
For macOS and Linux on amd64 or arm64; the installer verifies SHA-256.
VERSION='0.5.0-preview.3'
curl -fsSL "https://github.com/Payhon/AppKernia/releases/download/v${VERSION}/install.sh" | sh -s -- --version "${VERSION}"
export PATH="$HOME/.local/bin:$PATH"
akone version --jsonThe installer verifies the archive checksum, archive version, and embedded binary version.
Preview available
Installs the native akone executable on macOS, Linux, and Windows.
npm install --global @appkernia/akone@preview
akone version --jsonThe current Preview is 0.5.0-preview.3. Omit @preview after a stable release.
After a stable release
Installs akone on macOS from the official AppKernia tap.
brew install payhon/tap/akoneThe tap is not published yet; the release workflow only creates a Formula for stable releases.
Preview available
Choose the archive matching your operating system and architecture on GitHub Releases, then verify checksums.txt.
akone_0.5.0-preview.3_darwin_amd64.tar.gz
akone_0.5.0-preview.3_darwin_arm64.tar.gz
akone_0.5.0-preview.3_linux_amd64.tar.gz
akone_0.5.0-preview.3_linux_arm64.tar.gz
akone_0.5.0-preview.3_windows_amd64.zipView v0.5.0-preview.3The Release also includes checksums.txt, per-platform SBOMs, and build provenance.
The Shell installer supports macOS and Linux on amd64 and arm64. npm also supports Windows amd64. Homebrew will be available only after macOS notarization, Windows signing, and stable releases are enabled. The installer never invokes sudo, edits PATH, or registers a system service.
Whichever method you use, first confirm that the expected version is running:
First start
Create a local administrator first. The command reads a password of at least 12 characters from the interactive terminal without putting it in command arguments or shell history:
The service listens on 127.0.0.1:8080 by default. Open:
- Admin: http://127.0.0.1:8080/admin/
- Readiness: http://127.0.0.1:8080/internal/v1/health/ready
Without database configuration, akone creates data/appkernia.db next to the actual native executable. That is convenient for a manually placed binary and local evaluation. npm, Homebrew, and automated upgrades may move the executable directory, so a long-running deployment should use a separate stable data path.
Keep SQLite data in a stable location
On Unix and macOS, set a user data path for the current terminal session:
In Windows PowerShell, use the current user's local application-data directory:
These variables affect only the current terminal. Persist the same variable in the service manager or use YAML when deploying a service.
Use YAML configuration
Keep the configuration file in a location that does not change when the binary is upgraded:
At minimum, review the generated environment, listen address, public address, absolute SQLite path, and security keys. Production must not use development-time ephemeral keys. Fill the matching auth.* fields in an access-controlled configuration file, or supply AK_JWT_PRIVATE_KEY_BASE64, AK_LOGIN_PROTECTION_KEY_BASE64, and AK_CONFIG_MASTER_KEY_BASE64 through the service environment.
Validate the edited file, then use that same configuration for initialization and startup:
Precedence is: non-secret command-line flags > AK_* environment variables > YAML > defaults. Keep the configuration file at mode 0600 on Unix and macOS. On Windows, place it in a directory readable only by the current user or service account.
Run as a managed service
The installer installs only the executable; it does not create an operating-system user, service, or reverse proxy. A production deployment should at least:
- Run under a dedicated, low-privilege service account that owns only the configuration, data, and required log directories.
- Use a stable absolute SQLite path and run only one
akoneinstance that writes to that database. - Keep
akonebound to loopback and terminate TLS in Caddy, Nginx, or the existing gateway. - Put secrets in access-controlled configuration or service environment—not command arguments, the repository, or logs.
- Configure graceful
SIGTERMshutdown, restart on failure, and a reasonable stop timeout. - Verify configuration, administrator sign-in, Readiness, logs, backup, and recovery before launch.
This minimal Linux unit is a starting point. An operator must first create the appkernia account, directories, and /etc/appkernia/akone.yml, then adjust paths for the host:
This is only a process-supervision example. It does not create users, certificates, network policy, or backups. Use launchd on macOS or your organization's Windows Service manager on Windows, while passing the same YAML file or stable AK_* environment variables.
Back up and upgrade
SQLite runs in WAL mode. For a dependable file-level backup, stop the service, copy the entire dedicated data directory, and then start the service again. Do not copy only the .db file while the process is running. Before an upgrade, also retain the current binary, configuration, and a restorable database backup.
Upgrade in this order:
- Record
akone version --json, runakone config validate --file /etc/appkernia/akone.yml, and take an offline backup. Substitute the actual configuration path when it differs. - Replace the executable through the same installation channel without moving configuration or data.
- Start the service and check Readiness, sign-in, and logs.
- SQLite schema migrations are forward-only. To roll back, restore both the old binary and the pre-upgrade backup instead of running an old binary against the new schema.
SQLite and PostgreSQL boundaries
SQLite currently covers health checks, embedded Admin, administrator authentication and personal sessions, and Dashboard. It fits single-host evaluation and lightweight deployment. API Clients, Apps, content, notifications, push, and job queues do not yet have SQLite-equivalent implementations; enabling unsupported features fails at startup.
Use PostgreSQL for the complete business modules, workers, multiple instances, or higher concurrency. Follow source development or the Docker development stack to apply migrations and core seed data. Changing database mode does not change the Admin or OpenAPI authorization boundaries.