An open API service indexing awesome lists of open source software.

https://github.com/coro-sh/coro

NATS auth management platform
https://github.com/coro-sh/coro

authentication authorization events go golang nats nats-streaming natsio security svelte

Last synced: 1 day ago
JSON representation

NATS auth management platform

Awesome Lists containing this project

README

          





Coro logo



**Coro** is a platform that makes it simple to issue and manage Operators, Accounts, and Users
for [NATS](https://nats.io) servers.

It is distributed as a single binary but consists of modular services that can be deployed independently:

- **Controller**: Issues and manages Operators, Accounts, and Users.
- **Broker**: Facilitates messaging between the **Controller** and connected Operator NATS servers.
- **UI**: Web user interface for the **Controller**.

In addition to its core services, Coro provides the following tools:

- **`pgtool`**: A CLI tool for initializing and managing the Coro Postgres database.
- **`proxy-agent`**: A **Proxy Agent** that connects Operator NATS servers to the **Broker**.

## Getting started

### Demo

https://github.com/user-attachments/assets/63bdafb0-a45f-4494-a13f-699f7f46b14b

### Quickstart

The fastest way to get started is by running Coro in the all-in-one mode. Follow
the [quickstart example](examples/quickstart) to run Coro using Docker Compose.

### Scaling

The quickstart example runs an all-in-one Coro server using flag `-service=all`. For a high-availability setup, you can
run the **Controller**, **Broker**, and **UI** services separately, allowing you to scale them independently.

See the [scaling example](examples/scaling/) for a simple Docker and Nginx based setup.

### Configuration

Refer to the [configuration guide](docs/config.md) for a full list of configuration options.

## Development

An all-in-one development server can be easily started with `make dev-server`.

This command will:

- Launch the Coro backend and frontend in a single server
- Create a fresh Namespace that includes an Operator, Account, and User
- Start an embedded NATS server for the Operator, connected to Coro through the proxy-agent
- Set up a JetStream test Stream that publishes a message every 30 seconds

## Disclaimer

Coro is under active development and may undergo significant changes. While it is available for exploration and testing,
it is not recommended for production use at this time. Features may be incomplete, and breaking changes may occur as the
platform is improved.