Something went wrong. Try again.
A simple to-do app focused on tasks that can be completed within a specific time span. taskline.tobinio.dev
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738use api::app;use color_eyre::eyre::{self, Context};use std::env;use tracing::{Level, info};
#[tokio::main]async fn main() -> eyre::Result<()> { tracing_subscriber::fmt().with_max_level(Level::INFO).init();
dotenvy::dotenv().ok(); let db_url = env( "API_DATABASE_URL", "sqlite://../.data/storage.sqlite?mode=rwc", );
let web_push_key = env::var("API_WEBPUSH_PRIVATE_KEY").ok();
let auth_api_base = env("API_AUTH_API_BASE", "http://localhost:3000"); let self_api_base = env("API_SELF_API_BASE", "http://localhost:8080");
let port = env("PORT", "8080");
let app = app(&db_url, false, web_push_key, auth_api_base, self_api_base).await?;
info!("Starting server"); let listener = tokio::net::TcpListener::bind(format!("0.0.0.0:{port}")) .await .context("failed to bind listener")?;
axum::serve(listener, app).await?;
Ok(())}
fn env(key: &str, default: &str) -> String { env::var(key).unwrap_or(default.to_string())}