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
- Host: GitHub
- URL: https://github.com/coro-sh/coro
- Owner: coro-sh
- License: other
- Created: 2025-02-12T11:43:05.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2026-01-20T10:42:30.000Z (2 days ago)
- Last Synced: 2026-01-20T19:47:30.044Z (2 days ago)
- Topics: authentication, authorization, events, go, golang, nats, nats-streaming, natsio, security, svelte
- Language: Go
- Homepage:
- Size: 604 KB
- Stars: 24
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README

**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.