Installation
FrogDB ships as a single frogdb-server binary. FrogDB is pre-release software — no
tagged release has published binaries, container images, or packages yet, so every
path below builds the binary or image locally from this repository. Pick Docker for
the fastest path to a running server, Debian/Ubuntu if you want a systemd-managed
install, or build from source if you’re contributing or want full control over the
build.
Docker
Section titled “Docker”-
Install the cross-compilation toolchain (once):
Terminal window just cross-installThis installs
cargo-zigbuild, used to cross-compilefrogdb-serverfor Linux from any host. -
Build the image:
Terminal window just docker-cross-buildThis cross-compiles a release binary for
x86_64-unknown-linux-gnu, then runsdocker buildagainstfrogdb-server/docker/Dockerfile, tagging the resultfrogdb:latest. -
Run it:
Terminal window docker run -d --name frogdb \-p 6379:6379 \-v frogdb-data:/data \frogdb:latestThe image bundles
redis-cli(via the Debianredis-toolspackage), so you can exec into the container to use it, or connect from the host as shown in Verify the install.
Configuration via environment variables (see frogdb-server/docker/Dockerfile for the full list):
docker run -d --name frogdb \ -p 6379:6379 \ -v frogdb-data:/data \ -e FROGDB_SERVER__BIND=0.0.0.0 \ -e FROGDB_PERSISTENCE__DATA_DIR=/data \ frogdb:latestDocker Compose:
services: frogdb: image: frogdb:latest ports: - "6379:6379" volumes: - frogdb-data:/data environment: FROGDB_SERVER__BIND: "0.0.0.0" FROGDB_PERSISTENCE__DATA_DIR: /data healthcheck: test: ["CMD", "redis-cli", "-p", "6379", "PING"] interval: 5s retries: 10
volumes: frogdb-data:Debian / Ubuntu
Section titled “Debian / Ubuntu”-
Build the binaries:
Terminal window cargo build --release --bin frogdb-server --bin frogctl --bin frogdb-admin -
Regenerate the packaging files (nfpm config, default
frogdb.toml, systemd unit, install scripts) from the current config source:Terminal window just deb-gen -
Install
nfpmand build the package:Terminal window go install github.com/goreleaser/nfpm/v2/cmd/nfpm@latestcp target/release/frogdb-server target/release/frogctl target/release/frogdb-admin \frogdb-server/ops/deploy/deb/cd frogdb-server/ops/deploy/debARCH=$(dpkg --print-architecture)VERSION=$(awk -F'"' '/^version:/{print $2}' nfpm.yaml)nfpm package \--config nfpm.yaml --packager deb \--target frogdb-server_${VERSION}_${ARCH}.deb -
Install and start:
Terminal window sudo dpkg -i frogdb-server_*.debThe package’s postinstall script creates a
frogdbsystem user, then enables and startsfrogdb-server.serviceautomatically. No manualsystemctlstep is needed, thoughsudo systemctl status frogdb-serveris useful to confirm it.
The package installs:
| What | Path |
|---|---|
| Server binary | /usr/bin/frogdb-server |
frogctl (operational CLI) | /usr/bin/frogctl |
frogdb-admin CLI | /usr/bin/frogdb-admin |
| Config file | /etc/frogdb/frogdb.toml |
| systemd unit | /usr/lib/systemd/system/frogdb-server.service |
| Data directory | /var/lib/frogdb (data at /var/lib/frogdb/data) |
| Logs | /var/log/frogdb |
Build from Source
Section titled “Build from Source”-
Install the Rust toolchain. The project pins its toolchain in
rust-toolchain.toml(currently{versions.rust_toolchain}); running anycargocommand inside the repo with rustup installed fetches that exact version automatically. -
Install system dependencies. FrogDB needs
libclangforbindgen(used bylibrocksdb-sys) and a C/C++ toolchain to compile RocksDB’s C++ sources; TLS is handled by a pure-Rustrustlsstack, so no system OpenSSL is required. SeeBrewfile/shell.nixat the repo root for the full, current list.macOS:
Terminal window brew install llvm rocksdbllvmprovideslibclang. TheJustfiledefaultsFROGDB_SYSTEM_ROCKSDBto1, so thejustbuild recipes below link against this Homebrew RocksDB by default — install it even thoughBrewfilelabels it “optional,” or the default build will fail to find it. macOS builds also needDYLD_LIBRARY_PATHpointed atllvm; thejustrecipes set this for you automatically.Debian/Ubuntu:
Terminal window sudo apt install build-essential libclang-devArch Linux:
Terminal window sudo pacman -S base-devel clang -
Clone and build:
Terminal window git clone https://github.com/nathanjordan/frogdbcd frogdbjust releasejust releasewrapscargo build --releasewith the environment variables from step 2 already set. The binary lands attarget/release/frogdb-server. Prefer it over a barecargo build --releaseso you don’t have to set those variables by hand.
Verify the install
Section titled “Verify the install”frogdb-server --versionStart the server (see Quickstart for all the ways to do this), then from another terminal:
redis-cli -p 6379 PING# PONGredis-cli ships with Redis; install it via your package manager (e.g. brew install redis, apt install redis-tools) if you don’t already have it. It’s
bundled in the Docker image.