diff --git a/crates/server/src/main.rs b/crates/server/src/main.rs index c8f7c69..d8d82ff 100644 --- a/crates/server/src/main.rs +++ b/crates/server/src/main.rs @@ -1,6 +1,14 @@ +use std::path::PathBuf; + use axum::{Router, routing::get}; use tokio::net::TcpListener; +fn data_dir() -> PathBuf { + std::env::var("HARBOR_DATA_DIR") + .map(PathBuf::from) + .unwrap_or_else(|_| PathBuf::from("/var/lib/harbor")) +} + #[tokio::main] async fn main() { let app = Router::new().route("/health", get(health_check)); diff --git a/devenv.nix b/devenv.nix index b83e7da..de0dbd0 100644 --- a/devenv.nix +++ b/devenv.nix @@ -1,4 +1,5 @@ { + config, pkgs, ... }: @@ -26,12 +27,44 @@ ]; }; + processes.server = + let + port = config.processes.server.ports.server.value; + in + { + ports.server.allocate = 8080; + exec = "PORT=${toString port} HOST=127.0.0.1 cargo watch -s' cargo run -p server'"; + ready = { + http.get = { + port = port; + path = "/health"; + host = "127.0.0.1"; + scheme = "http"; + }; + initial_delay = 5; + period = 5; + probe_timeout = 3; + success_threshold = 1; + failure_threshold = 3; + }; + }; + dotenv.enable = true; enterTest = '' cargo test ''; + profiles.website.module = { + languages.javascript = { + enable = true; + bun = { + enable = true; + install.enable = true; + }; + }; + }; + git-hooks.hooks = { shellcheck.enable = true; prettier.enable = true;