SkillAgentSearch skills...

Svix Webhooks

The open source and enterprise-ready webhooks service šŸ¦€

Install / Use

npx skills add svix/svix-webhooks

Installs into whichever agent you are using.

README

<h1 align="center"> <a style="text-decoration: none" href="https://www.svix.com"> <img width="120" src="https://avatars.githubusercontent.com/u/80175132?s=200&v=4" /> <p align="center">Svix - Webhooks as a service</p> </a> </h1> <h2 align="center"> <a href="https://svix.com">Website</a> | <a href="https://docs.svix.com">Documentation</a> | <a href="https://svix.com/slack">Community Slack</a> <h2>

GitHub tag Build Status Server Security Twitter Follow Join our slack

Docker Pulls NPM Downloads Pypi Downloads

Svix is the enterprise ready webhook service

Svix makes it easy for developers to send webhooks. Developers make one API call, and Svix takes care of deliverability, retries, security, and more. For more information, please refer to the Svix homepage.

PyPI Crates.io NPM version Gem Maven Central (Java) Maven Central (Kotlin) Nuget Packagist Version PkgGoDev

Documentation

You can find general usage documentation at https://docs.svix.com. For complete API documentation with code examples for each endpoint in all of our official client libraries head over to our API documentation site at https://api.svix.com.

Support & Community

To stay up-to-date with new features and improvements be sure to watch our repo!

Watch & Star our repo

Client Library Overview

<table style="table-layout:fixed; white-space: nowrap;"> <th colspan="6">āš”ļø Feature Breakdown āš”ļø</th> <tr> <th>Language</th> <th>Officially Supported</th> <th>API Support</th> <th>Webhook Verification</th> <th colspan="4">Other Notes</th> </tr> <tr> <th><a href="https://github.com/svix/svix-webhooks/tree/main/go/">Go</a></th> <th>āœ…</th> <th>āœ…</th> <th>āœ…</th> <th colspan="4"></th> </tr> </tr> <tr> <th><a href="https://github.com/svix/svix-webhooks/tree/main/python/">Python</a></th> <th>āœ…</th> <th>āœ…</th> <th>āœ…</th> <th colspan="4"></th> </tr> </tr> <tr> <th><a href="https://github.com/svix/svix-webhooks/tree/main/javascript/">Typescript/Javascript</a></th> <th>āœ…</th> <th>āœ…</th> <th>āœ…</th> <th colspan="4"></th> </tr> <tr> <th><a href="https://github.com/svix/svix-webhooks/tree/main/java/">Java</a></th> <th>āœ…</th> <th>āœ…</th> <th>āœ…</th> <th colspan="4">Async support planned. (If you use kotlin, checkout our kotlin library for coroutine support.)</th> </tr> <tr> <th><a href="https://github.com/svix/svix-webhooks/tree/main/kotlin/">Kotlin</a></th> <th>āœ…</th> <th>āœ…</th> <th>āœ…</th> <th colspan="4"></th> </tr> <tr> <th><a href="https://github.com/svix/svix-webhooks/tree/main/ruby/">Ruby</a></th> <th>āœ…</th> <th>āœ…</th> <th>āœ…</th> <th colspan="4"></th> </tr> <tr> <th><a href="https://github.com/svix/svix-webhooks/tree/main/csharp/">C# (dotnet)</a></th> <th>āœ…</th> <th>āœ…</th> <th>āœ…</th> <th colspan="4"></th> </tr> <tr> <th><a href="https://github.com/svix/svix-webhooks/tree/main/rust/">Rust</a></th> <th>āœ…</th> <th>āœ…</th> <th>āœ…</th> <th colspan="4"></th> </tr> <tr> <th><a href="https://github.com/svix/svix-webhooks/tree/main/php/">PHP</a></th> <th>āœ…</th> <th>āœ…</th> <th>āœ…</th> <th colspan="4"></th> </tr> <tr> <th><a href="https://registry.terraform.io/providers/svix/svix/latest/docs/">Terraform</a></th> <th>āœ…</th> <th>āœ…</th> <th>N/A</th> <th colspan="4"></th> </tr> </table>

Trying out the CLI

The Svix CLI is published on npm as svix-cli. You can run it directly with npx without installing anything:

npx svix-cli --help

Or install it globally:

npm install -g svix-cli
svix-cli --help

Running the server

There are multiple ways to get the Svix server up running. Docker is probably the most common one, but you can choose the one that works best for you.

The Svix server is written in Rust šŸ¦€, which means you can compile it into a static library for a variety of targets. Please refer to the building from source section below for more information.

Please refer to the server configuration section below for more information regarding the available settings.

Deployment

Docker

You can use the official Svix Docker image from Docker Hub. You can either use the latest tag, or one of the versioned tags instead.

You can either use the example docker-compose.yml file with docker compose (easiest), docker swarm (advanced), or run the container standalone.

With Docker Compose

This alternative is the easiest because it will also boot up and configure redis and postgresql.

This assumes you have Docker Compose v2 installed.

cd server
docker compose up

Standalone container

Running a standalone container is slightly more advanced, as it requires you to set some environment variables and have them pointing to your redis and postgres instances. You can pass individual environment variables to docker using the -e flag, or just create a file like development.env and use the --env-file flag like in the example below:

docker run \
  --name svix-server \
  -p 8071:8071 \
  --env-file development.env \
  svix/svix-server

Building from source

The Svix server is written in Rust šŸ¦€ and requires a Rust build environment.

If you already have one, you just need to run cargo build, otherwise, please please refer to the Svix server README for more information about building the server from source.

Runtime dependencies

The server requires the following runtime dependencies to work correctly:

  • A PostgreSQL server - for the storage of events.
  • An optional Redis server version 6.2.0 or higher - for the task queue and cache.

Redis/Valkey Considerations

Persistence

Please note that it's recommended to enable persistence in Redis so that tasks are persisted across Redis server restarts and upgrades.

Eviction Policy

Please ensure that your Redis instances are configured to not evict keys without explicit expire policies set. This means that maxmemory-policy should be set to noeviction or to any of the available volatile- policies. See Redis/Valkey documentation for further information.

Server configuration

There are three ways to configure svix-server: environment vars, .env file, and a configuration file.

Configuration file

You can put a file called config.toml in the current working directory of svix-server and it will automatically pick it up. You can take a look at the example file for more information and a full list of supported settings: config.toml.

Here's a quick example of the most important configurations:

# The JWT secret for authentication - should be secret and securely generated
jwt_secret = "8KjzRXrKkd9YFcNyqLSIY8JwiaCeRc6WK4UkMnSW"

# The DSN for the database. Only postgres is currently supported.
db_dsn = "postgresql://postgres:postgres@pgbouncer/postgres"

# The DSN for redis (can be left empty if not using redis)
redis_dsn = "redis://redis:6379"

# What kind of message queue to use.
queue_type = "redis"

Environment (variables or .env)

Alternatively, you can configure svix-server by setting the equivalent environment variables for each of the supported settings. The environment variables can either be passed directly or by setting them in a .env file.

The environment variables have the name name as the config names, but they are all upper case and are prefixed with SVIX_.

For example, the above example configuration would look like this if it was passed in the en

Related Skills

View on GitHub
GitHub Stars3.3k
CategoryDevelopment
Updated12h ago
Forks267

Languages

Rust

Security Score

100/100

Audited on Aug 8, 2026

No findings