Seabird has been an IRC bot for the last 10 years in many different incarnations. This version is a gRPC service which exports a number of functions to easily interact with chat services.
This server acts only as an event broker - you will need both a running chat backend and some sort of plugin in order for anything visible to happen.
The server is implemented in Rust and uses tonic for a gRPC server
implementation.
- Rust 1.83
seabird-core uses Nix to fetch the protobuf definitions from
seabird-chat/proto, so building and developing locally both go through the
flake:
nix build
nix develop
cargo runFor production, it is generally recommended that environment variables be
configured in the environment, but for dev, both implementations will
conveniently load any .env file in the working directory of the running
service.
DATABASE_URL(required) - where to place the sqlite database seabird-core will use. This should be in a URL format, sosqlite:tokens.dbwill be relative to the current directory andsqlite:///path/to/tokens.dbwill be absolute.SEABIRD_BIND_HOST(optional, defaults to0.0.0.0:11235) - which host/port to bind the gRPC service to. Note that it will not be tls encrypted, so you may want to put it behind a reverse proxy.RUST_LOG(optional, defaults toinfo,seabird::server=trace) - this is a common rust environment variable documented here because we set a default. All seabird functionality is exposed underseabird.