Nats
Options
services.nats.enable
Whether to enable the NATS messaging server.
NATS is a simple, secure and high performance messaging system for cloud native applications, IoT messaging, and microservices architectures.
Type: boolean
Default:
false
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.package
Which NATS server package to use.
Type: package
Default:
pkgs.nats-server
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.authorization.enable
Whether to enable authorization for client connections.
Type: boolean
Default:
false
Example:
true
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.authorization.password
Password required for client connections. Only used if authorization is enabled. Warning: This will be visible in the Nix store.
Type: string
Default:
""
Example:
"nats-pass"
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.authorization.token
Token required for client connections. Alternative to user/password authentication. Warning: This will be visible in the Nix store.
Type: string
Default:
""
Example:
"my-secret-token"
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.authorization.user
Username required for client connections. Only used if authorization is enabled.
Type: string
Default:
""
Example:
"nats-user"
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.clientAdvertise
Client URL to advertise to other servers in a cluster. Useful when running behind NAT or in containers.
Type: string
Default:
""
Example:
"localhost:4222"
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.debug
Enable debug logging for troubleshooting.
Type: boolean
Default:
false
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.host
Network host to listen on for client connections. Set to “0.0.0.0” to listen on all interfaces. Default is localhost for security.
Type: string
Default:
"127.0.0.1"
Example:
"0.0.0.0"
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.jetstream.enable
Whether to enable JetStream persistence layer for streaming and queues.
Type: boolean
Default:
false
Example:
true
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.jetstream.maxFileStore
Maximum disk space for file-based streams. Use suffixes: K, M, G, T for sizes.
Type: string
Default:
"10G"
Example:
"100G"
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.jetstream.maxMemory
Maximum memory for in-memory streams. Use suffixes: K, M, G, T for sizes.
Type: string
Default:
"1G"
Example:
"512M"
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.logFile
Path to log file. If empty, logs to stdout. Stdout is recommended for devenv as logs are captured by process manager.
Type: string
Default:
""
Example:
"/var/log/nats-server.log"
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.monitoring.enable
Enable HTTP monitoring endpoint. Provides /healthz, /varz, /connz, and other monitoring endpoints. Highly recommended for production deployments.
Type: boolean
Default:
true
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.monitoring.port
Port for HTTP monitoring endpoint. Access monitoring at http://host:port/varz
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
8222
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.port
Port to listen on for client connections. Default NATS client port is 4222.
Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)
Default:
4222
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.serverName
Server name for identification in clusters. If empty, NATS will auto-generate a unique name.
Type: string
Default:
""
Example:
"nats-dev-1"
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.settings
Additional NATS server configuration as a Nix attribute set. This will be converted to NATS config file format.
Use this for advanced features like:
- TLS/SSL configuration
- Clustering with routes
- MQTT gateway
- WebSocket support
- Custom authorization
See https://docs.nats.io/running-a-nats-service/configuration
Type: attribute set
Default:
{ }
Example:
{
tls = {
cert_file = "/path/to/cert.pem";
key_file = "/path/to/key.pem";
verify = true;
};
cluster = {
name = "my-cluster";
listen = "0.0.0.0:6222";
routes = [
"nats://node1:6222"
"nats://node2:6222"
];
};
}
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix
services.nats.trace
Enable protocol tracing for deep debugging. Warning: Very verbose output.
Type: boolean
Default:
false
Declared by: - https://github.com/cachix/devenv/blob/main/src/modules/services/nats.nix