Skip to content

Riptide Build Latest Release Container Image Java

OpenSSF Best Practices OpenSSF Baseline License

All Contributors

riptide-logo

🌊 Welcome to Riptide

Give people who love working with networks the tools they deserve to optimize and troubleshoot network traffic.

📖 Documentation: https://riptide.space/docs/

👩‍🏭 Build from source

Requirements:

  • git
  • Java 25
  • Docker with Docker Compose
git clone https://github.com/Riptide-Labs/riptide.git && cd riptide

Compile from source with tests

make

Build a container image in your local registry

make oci

Render a test coverage report (JaCoCo)

make coverage

Run the integration and e2e test tier (requires Docker; drives real NetFlow v5/v9 and IPFIX traffic from the nl6 simulator through riptide into ClickHouse). The nl6 image tag is pinned in src/test/java/org/riptide/e2e/Nl6Container.java and is bumped deliberately — it is a wire-format contract, not a Dependabot-managed dependency.

make e2e

The e2e tier includes an optional full mode (Linux only): nl6 devices export flows from per-device source IPs and riptide's SNMP enrichment walks back to each device's simulated agent. It is gated on RIPTIDE_E2E_FULL_MODE=1 and skipped otherwise (e.g. on macOS). To run it on a Linux host:

docker network create --subnet 172.30.42.0/24 nl6-fullmode
sudo ip route add 10.42.0.0/16 via 172.30.42.10
sudo sysctl -w net.ipv4.conf.all.rp_filter=2
RIPTIDE_E2E_FULL_MODE=1 make e2e

🕹️ Run on your local system

cd target
java -jar riptide-flows-*.jar

🕹️ Run with Docker Compose

git clone https://github.com/Riptide-Labs/riptide.git

Run with a local build OCI image riptide:local

cd deployment/riptide
docker compose up -d
  • Grafana: http://localhost:3000 with login admin/admin. Set GF_SECURITY_ADMIN_PASSWORD before starting to use your own password.
  • ClickHouse on 127.0.0.1:8123 with login default/riptide. Set CLICKHOUSE_PASSWORD to use your own; the whole stack follows it.
  • Send flows to your Riptide server on 9999/udp

Tip

If you want to run the latest stable version, create a compose.override.yml and set the image tag to ghcr.io/riptide:latest.

Run just a ClickHouse stack

cd deployment/clickhouse
docker compose up -d

👩‍🔧 Configuration

The default configuration is shipped in application.properties. You have two options to customize configuration parameters.

  1. Providing an application.properties next to the jar file, in Docker /app/application.properties
  2. Set environment variables

If you want to use environment variables, you need to convert the configuration key to upper case and underscores. Here is an example:

riptide.clickhouse.endpoint -> RIPTIDE_CLICKHOUSE_ENDPOINT

You can also bind mount your configuration to /app/application.properties.

📦 Make a release

git checkout main && git pull
git checkout -B release
git push -u origin release
make release RELEASE_VERSION=1.0.0

Pushing the resulting vX.Y.Z tag is what publishes the release: signed jar, DEB and RPM packages, an SBOM and a multi-arch container image on ghcr.io/riptide-labs/riptide. The full procedure, the image tagging scheme and the cosign verify commands are in RELEASING.md.

👋 Say hello

You are very welcome to join us to make this project a better place. You can find us at:

👮 Contribution Guidelines

Start with CONTRIBUTING.md. In short: work from an issue, Conventional Commits, sign off every commit with git commit -s, and label AI-assisted work with an Assisted-by: trailer.

Found a security problem? Please don't open an issue — see SECURITY.md.

📜 License

Riptide is licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later). See LICENSE for the full text.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Dustin Frisch
Dustin Frisch

💻 🔬 👀 🤔
Ronny Trommer
Ronny Trommer

💻 📖 🚇 🚧
mvrueden
mvrueden

💻 👀
Christian Pape
Christian Pape

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Releases

Packages

Used by

Contributors

Languages