- Rust 1.42
- Postgres
Settings can either be included as a part of the environment or in a .env file.
SEABIRD_HOST
SEABIRD_TOKEN
DATABASE_URL
- connection string for the database - can either be in connection string or url formatSEABIRD_ENABLED_PLUGINS
- comma-separated list of enabled plugins - if this is empty, all plugins will be loadedSEABIRD_DISABLED_PLUGINS
- comma-separated list of plugins that should not be enabledDARKSKY_API_KEY
- needed for forecast/weather supportOPENWEATHERMAP_API_KEY
- needed for forecast/weather support
Unfortunately, writing a new plugin requires a few steps.
- You must pick a unique name for your plugin. See
supported_plugins
insrc/plugin.rs
load()
for the list of all existing plugin names. - You must create a new file in
src/plugins
that adheres to thePlugin
async trait. See existing plugins insrc/plugins
for reference. - You must add your plugin to
src/plugins/mod.rs
. See existing entries in the file for reference. - You must add your unique plugin name to the
supported_plugins
Vec
from step one. - You must load your plugin in
src/plugin.rs
load()
. See existing entries for reference.
cargo build
seabird-plugin-bundle
will read DATABASE_URL
at compile time to typecheck queries. If you see errors like relation "karma" does not exist
, that means that migrations have had issues. The recommended fix is the following:
$ cargo install sqlx-cli
$ sqlx migrate run
Builds should succeed after this.