diff --git a/client-solid/src/Navbar.tsx b/client-solid/src/Navbar.tsx
index ca5e4b8..2f68d1f 100644
--- a/client-solid/src/Navbar.tsx
+++ b/client-solid/src/Navbar.tsx
@@ -31,26 +31,34 @@ export function Navbar() {
let login_ctx = useContext(LoginContext);
return (
-
-
FrostByte
-
-
{
- b.preventDefault();
- if (login_ctx?.token() != "") {
- localStorage.setItem("token", "");
- localStorage.setItem("username", "");
- login_ctx?.setToken("");
- login_ctx?.setUsername("");
- return;
- }
- modal_ctx?.setLoginModalOpen(true);
- }}
- >
- {login_ctx?.token() != "" ? login_ctx?.username() : "Login"}
-
+
);
}
diff --git a/justfile b/justfile
index bedd409..1ec67a7 100644
--- a/justfile
+++ b/justfile
@@ -32,7 +32,7 @@ build-container-release:
# Builds a release container and runs it
start-release: build-container-release remove-podman-containers
- {{runtime}} run -d -p 8080:8080 --name frostbyte fb-server
+ {{runtime}} run -d -e DATABASE_URL=sqlite:release.db -p 8080:8080 --name frostbyte fb-server
init-sqlx:
echo "DATABASE_URL=sqlite:debug.db" > server/.env
diff --git a/server/src/main.rs b/server/src/main.rs
index 6d95008..c7ca643 100755
--- a/server/src/main.rs
+++ b/server/src/main.rs
@@ -37,7 +37,11 @@ async fn main() -> std::io::Result<()> {
.app_data(Data::new(data.clone()))
.app_data(Data::new(capt_db.clone())),
)
- .service(Files::new("/", "./public").index_file("index.html"))
+ .service(
+ Files::new("/", "./public")
+ .index_file("index.html")
+ .default_handler(actix_files::NamedFile::open("./public/index.html").unwrap()),
+ )
})
.bind("0.0.0.0:8080")?
.run()
diff --git a/server/src/state.rs b/server/src/state.rs
index 6264987..b828927 100644
--- a/server/src/state.rs
+++ b/server/src/state.rs
@@ -2,9 +2,11 @@ use std::collections::BTreeMap;
use std::sync::Arc;
use std::sync::Mutex;
+use log::error;
+use log::info;
+use sqlx::migrate::MigrateDatabase;
use sqlx::Pool;
use sqlx::Sqlite;
-use sqlx::SqlitePool;
use sqlx::{self, sqlite};
#[derive(Clone)]
@@ -30,6 +32,11 @@ impl ServerState {
// This is almost certainly bad practice for more reasons than I can count
dotenvy::dotenv().ok();
let db_url = dotenvy::var("DATABASE_URL").unwrap_or(":memory:".to_string());
+ info!("Using db_url: {}", &db_url);
+
+ if !sqlx::Sqlite::database_exists(&db_url).await.unwrap() {
+ sqlx::Sqlite::create_database(&db_url).await.unwrap();
+ }
let pool = sqlite::SqlitePoolOptions::new()
.max_connections(5)
@@ -39,6 +46,12 @@ impl ServerState {
sqlx::migrate!("./migrations").run(&pool).await.unwrap();
+ match crate::db::db_new_user("imbus".to_string(), "kartellen1234".to_string(), &pool).await
+ {
+ Some(u) => info!("Created default user {}", u.username),
+ None => error!("Failed to create default user..."),
+ }
+
#[cfg(debug_assertions)]
debug_setup(&pool).await.unwrap();
@@ -46,6 +59,9 @@ impl ServerState {
}
}
+#[cfg(debug_assertions)]
+use sqlx::SqlitePool;
+
// Inserts a bunch of dummy data into the database
// Mostly useful for debugging new posts, as we need to satisfy foreign key constraints.
#[cfg(debug_assertions)]