summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs26
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();
+}