diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..a387657 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,26 @@ +use silmataivas::app_with_state; +use sqlx::SqlitePool; +use std::env; +use std::net::SocketAddr; +use std::sync::Arc; +use tokio::fs; + +#[tokio::main] +async fn main() { + // Set up database path + let db_path = + env::var("DATABASE_URL").unwrap_or_else(|_| "sqlite://./data/silmataivas.db".to_string()); + // Ensure data directory exists + let _ = fs::create_dir_all("./data").await; + // Connect to SQLite + let pool = SqlitePool::connect(&db_path) + .await + .expect("Failed to connect to DB"); + let app = app_with_state(Arc::new(pool)); + let addr = SocketAddr::from(([0, 0, 0, 0], 4000)); + let listener = tokio::net::TcpListener::bind(addr) + .await + .expect("Failed to bind address"); + println!("Listening on {}", listener.local_addr().unwrap()); + axum::serve(listener, app).await.unwrap(); +} |
