Install From Packages
Install Lavik 0.1.0-beta.1 from the signed lavik.dev APT repository on Ubuntu 24.04. Choose Minimal or Standard, then start a persistent single-node service with systemd.
Before You Start
Use Ubuntu 24.04 (noble) on AMD64 or ARM64, with Linux 6.1 or newer and io_uring enabled. Other Ubuntu or Debian releases are not supported by this repository yet; do not substitute their codenames in the source entry. The service commands require a host booted with systemd. For Docker, use the Docker installation guide instead.
Reserve at least 1 GiB of free disk space for the initial data file, plus space for logs and growth. The default service listens only on 127.0.0.1:6379, uses two workers and a 512 MiB configured memory budget, and starts only when you enable it. Stop any existing Redis or Lavik service using that port, or change the Lavik port before startup.
Add the Repository and Install Minimal
Run these commands with sudo access. The repository is managed with aptly and served over HTTPS by lavik.dev. APT verifies signed release metadata and package checksums using a repository-specific key. The Debian version 0.1.0~beta.1-1 means upstream 0.1.0-beta.1, packaging revision 1; the tilde keeps this prerelease below the final 0.1.0 release.
install.sh
# Ubuntu 24.04 (noble), AMD64 or ARM64
(
set -eu
. /etc/os-release
[ "$ID" = ubuntu ] && [ "$VERSION_ID" = 24.04 ] || { echo "Ubuntu 24.04 required"; exit 1; }
case "$(dpkg --print-architecture)" in amd64|arm64) ;; *) echo "Unsupported architecture"; exit 1 ;; esac
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -d -m 0755 /etc/apt/keyrings
key_file=$(mktemp)
trap 'rm -f "$key_file"' EXIT
curl --fail --location https://lavik.dev/apt/lavik-archive-keyring.asc \
-o "$key_file"
sudo install -m 0644 "$key_file" /etc/apt/keyrings/lavik.asc
cat <<EOF_SOURCE | sudo tee /etc/apt/sources.list.d/lavik.sources
Types: deb
URIs: https://lavik.dev/apt
Suites: noble
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/lavik.asc
EOF_SOURCE
sudo apt-get update
sudo apt-get install -y 'lavik=0.1.0~beta.1-1'
lavik --version
)The lavik package is Minimal: kernel TCP and io_uring, without SPDK/DPDK. It installs lavik, lavik-meta and lavik-ctl into /usr/bin, so commands work from any directory. lavik --version should print lavik 0.1.0-beta.1. The package includes a standalone service, not an automatically initialized Meta cluster.
Repository signing-key fingerprint: CB38 CDB9 9DC0 5B6A 4E7F 6A9E E3CC E7BD 0D92 E252. The key is scoped by Signed-By to this source; no global apt-key import or trusted=yes is needed.
Choose Standard Instead
For SPDK/DPDK-capable binaries, install lavik-standard instead of lavik after adding the same repository. The variants are mutually exclusive because they provide the same commands. Standard requires x86-64-v2 on AMD64 or ARMv8-A with CRC32 on ARM64. APT installs its libnuma and libuuid runtime dependencies.
standard.sh
# Alternative to Minimal; do not install both variants together.
sudo apt-get install 'lavik-standard=0.1.0~beta.1-1'
lavik --versionInstalling Standard does not enable SPDK automatically: the bundled service still uses kernel TCP and io_uring. SPDK requires separate hugepage, device ownership and startup configuration. Before changing variants on an existing server, back up the database, stop the service, and plan a maintenance window; review APT’s removal prompt.
Start Lavik and Connect
The service runs as the dedicated lavik user. On first startup it preallocates /var/lib/lavik/data; existing data is never truncated. After a short startup wait, PING returns PONG, SET returns OK, and GET returns lavik.
start.sh
sudo systemctl enable --now lavik
sudo systemctl status lavik --no-pager
sudo apt-get install -y redis-tools
redis-cli -h 127.0.0.1 -p 6379 PING
redis-cli -h 127.0.0.1 -p 6379 SET hello lavik
redis-cli -h 127.0.0.1 -p 6379 GET helloThe default listener has no password and is restricted to localhost. Configure authentication, TLS and network access controls before making it reachable remotely. For advanced server options, inspect lavik --help and use a systemd override with the appropriate startup command; the packaged defaults are a local starting point.
Configure and Manage the Service
Edit /etc/default/lavik with sudo to set LAVIK_BIND, LAVIK_PORT, LAVIK_THREADS and LAVIK_DATA_SIZE, then restart the service. LAVIK_DATA_SIZE controls only initial allocation; changing it does not grow or shrink an existing database file. Treat the 512 MiB memory setting in /usr/lib/lavik/start as a starter configuration; use a systemd ExecStart override for a larger workload rather than editing package-owned scripts.
manage.sh
sudo journalctl -u lavik -n 50 --no-pager
sudo systemctl restart lavik
redis-cli -h 127.0.0.1 -p 6379 GET hello
# Stop the server without removing its package or data.
sudo systemctl stop lavikData lives in /var/lib/lavik and file logs in /var/log/lavik. Configuration changes in /etc/default/lavik are preserved by Debian’s conffile handling. Upgrading an already-running service can restart it, so back up first and use a maintenance window. apt-get remove or apt-get purge stops and removes the package but deliberately retains the database, logs and service user. Deleting those data directories is a separate destructive action.
Troubleshooting
For NO_PUBKEY or a signature error, recheck the key download and Signed-By path; do not disable signature verification. “Unable to locate package” usually means the source was not added successfully or apt-get update failed. For startup failures, inspect journalctl and /var/log/lavik, check port conflicts, free disk space, data directory ownership, and whether the kernel permits io_uring. In a container without systemd as PID 1, use the dedicated Docker image instead of systemctl.