Install With Docker

Start a standalone Lavik server with the official 0.1.0-beta.1 Docker image, connect with redis-cli, and keep your data across container replacements.

Before You Start

Install Docker Engine or Docker Desktop. The official eloqdata/lavik:0.1.0-beta.1 image supports Linux AMD64 and ARM64; Docker Desktop on Apple Silicon uses ARM64 natively. It packages the Minimal release with kernel TCP and io_uring. SPDK/DPDK are not included. Use Install With Binary for the Standard package and SPDK setup.

The Linux host or Docker VM must support io_uring. The example uses seccomp=unconfined to allow it and runs as UID/GID 10001:10001 without privileged mode. Reserve free disk space for the initial 1 GiB data file. Port 6379 must be free; use 127.0.0.1:16379:6379 instead if another Redis or Lavik instance is running.

Install With Binary →

Start Lavik

Run these commands in your terminal. No Dockerfile, source build, or host-installed Lavik binary is needed. The image includes redis-cli. Use a fresh named volume for your first installation.

single-start.sh

Linux · bash
docker pull eloqdata/lavik:0.1.0-beta.1
docker run -d --name lavik \
  --security-opt seccomp=unconfined \
  --stop-timeout 60 \
  -p 127.0.0.1:6379:6379 \
  -v lavik-data:/data \
  eloqdata/lavik:0.1.0-beta.1

The listener is published only on localhost. On macOS, connect through this published port, not a Docker bridge address. These commands are for local use without authentication; configure authentication and TLS before exposing Lavik remotely.

Connect and Write Data

Allow a short startup wait. PING should return PONG, SET should return OK, and GET should return lavik. If startup is still in progress, check the logs and retry PING. A host-installed client can also connect with redis-cli -h 127.0.0.1 -p 6379 (or your chosen host port).

single-connect.sh

Linux · bash
docker logs --tail 50 lavik
docker exec lavik redis-cli PING
docker exec lavik redis-cli SET hello lavik
docker exec lavik redis-cli GET hello

Configure Storage and Workers

The entrypoint preallocates /data/lavik.data to 1 GiB on first start and uses two workers. Add -e LAVIK_DATA_SIZE=4G and -e LAVIK_THREADS=4 before the image name to change the defaults. Changing LAVIK_DATA_SIZE does not resize or truncate an existing data file. File logs and storage stay in the lavik-data volume. Never attach one data volume to two running servers.

Additional server flags go after the image name; explicit long options override the matching defaults. Bind-mounted data directories must be writable by UID 10001. Supplying --data-file makes you responsible for preallocating that file. For a mounted Redis-style configuration, use lavik /etc/lavik/lavik.conf after the image name; that configuration owns the listener, storage, and all other settings.

Restart and Preserve Data

single-restart.sh

Linux · bash
docker restart -t 60 lavik
# Wait for PING to return PONG, then read the saved value.
docker exec lavik redis-cli PING
docker exec lavik redis-cli GET hello

To replace the container, run docker stop -t 60 lavik, then docker rm lavik, and repeat the start command with the same lavik-data volume. Removing the container keeps the named volume. Deleting the volume deletes your database; do not remove it for a restart or upgrade.

Run a Primary–Follower Cluster With Docker Compose →