Sitelet https://github.com/Riptide-Labs/riptide
Skip to content

Latest commit

ย 

History

536 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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

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