lariv-rs 0.1.0

Compile-time plugin web application framework built on Axum, SeaORM, Maud, and HTMX
Documentation
#![recursion_limit = "512"]

use lariv_rs::app::App;
use lariv_rs::plugins::blog;
use lariv_rs::plugins::dashboard;
use lariv_rs::plugins::filesystem;
use lariv_rs::plugins::llm_assistant;
use lariv_rs::plugins::otp;
use lariv_rs::plugins::pwa;
use lariv_rs::plugins::users;
use lariv_rs::plugins::website;
use tracing_subscriber::EnvFilter;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    tracing_subscriber::fmt()
        .with_env_filter(
            EnvFilter::from_default_env()
                .add_directive("info".parse()?)
                .add_directive("llm_assistant::imap=info".parse()?),
        )
        .init();

    let app = App::new_web_app();
    let app = users::install(app);
    let app = otp::install(app);
    let app = blog::install(app);
    let app = filesystem::install(app);
    let app = llm_assistant::install(app);
    let app = pwa::install(app);
    let app = dashboard::install(app);
    // After dashboard so website can own `/` (CMS home) over the auth redirect.
    let app = website::install(app);

    let app = app.load_config("config.toml").await?;
    let app = app.mount();
    app.run().await?;
    Ok(())
}