Skip to content

Run Server and Client

Terminal window
docker run --rm \
-p 9173:9173 \
-v vaylix-data:/var/lib/vaylix \
-e VAYLIX_USER=vaylix \
-e VAYLIX_PASSWORD=vaylix \
ghcr.io/vaylix/vaylix:latest

What this gives you:

  • published server runtime
  • bound server on 0.0.0.0:9173
  • authentication enabled by default
  • outbound zstd frame compression enabled by default
  • persistent data under /var/lib/vaylix
  • server-managed storage keyring

You can also run a downloaded vaylix-server binary directly if you do not want Docker:

Terminal window
./vaylix-server \
--bind 127.0.0.1 \
--port 9173 \
--user vaylix \
--password vaylix

Use the downloaded vaylix-client binary:

Terminal window
./vaylix-client \
--url 'vaylix://vaylix:vaylix@127.0.0.1:9173'

The default development credentials are:

  • username: vaylix
  • password: vaylix

If you reuse an existing Docker volume, 0.5.1+ correctly reapplies changed VAYLIX_USER / VAYLIX_PASSWORD values on restart for the env-managed bootstrap admin.

Terminal window
./vaylix-client \
--url 'vaylix://vaylix:vaylix@127.0.0.1:9173?output=table'

Supported URL query options:

  • ssl=true
  • output=plain|table|json
  • ca_cert=/path/to/ca.pem
  • client_cert=/path/to/client.crt
  • client_key=/path/to/client.key
  • auth=false
  • compression=none|zstd
vaylix> ping
PONG
vaylix> set name alice
OK
vaylix> get name
alice
vaylix> info
...

Server:

Terminal window
docker run --rm \
-p 9173:9173 \
-v vaylix-data:/var/lib/vaylix \
-v "$(pwd)/certs:/certs:ro" \
-e VAYLIX_USER=vaylix \
-e VAYLIX_PASSWORD=vaylix \
-e VAYLIX_SSL=true \
-e VAYLIX_TLS_CERT=/certs/server.crt \
-e VAYLIX_TLS_KEY=/certs/server.key \
ghcr.io/vaylix/vaylix:latest

Client:

Terminal window
./vaylix-client \
--url 'vaylix://vaylix:vaylix@127.0.0.1:9173?ssl=true' \
--tls-ca-cert ./certs/ca.crt

Plain TCP is the default so local development works without certificates. Production-facing deployments should enable TLS and provide a certificate chain and private key on the server.

mTLS adds a client certificate requirement to TLS. It does not replace username/password authentication.

Server:

Terminal window
docker run --rm \
-p 9173:9173 \
-v vaylix-data:/var/lib/vaylix \
-v "$(pwd)/certs:/certs:ro" \
-e VAYLIX_USER=vaylix \
-e VAYLIX_PASSWORD=vaylix \
-e VAYLIX_SSL=true \
-e VAYLIX_TLS_CERT=/certs/server.crt \
-e VAYLIX_TLS_KEY=/certs/server.key \
-e VAYLIX_TLS_CLIENT_CA=/certs/client-ca.crt \
ghcr.io/vaylix/vaylix:latest

Client:

Terminal window
./vaylix-client \
--url 'vaylix://vaylix:vaylix@127.0.0.1:9173?ssl=true' \
--tls-ca-cert ./certs/server-ca.crt \
--tls-client-cert ./certs/client.crt \
--tls-client-key ./certs/client.key