Support front end deployment

This commit is contained in:
2026-04-02 00:53:25 -04:00
parent 36629ab436
commit 55b37e5156
5 changed files with 63 additions and 5 deletions

52
did_router/Cargo.lock generated
View File

@@ -34,6 +34,29 @@ dependencies = [
"smallvec", "smallvec",
] ]
[[package]]
name = "actix-files"
version = "0.6.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df8c4f30e3272d7c345f88ae0aac3848507ef5ba871f9cc2a41c8085a0f0523b"
dependencies = [
"actix-http",
"actix-service",
"actix-utils",
"actix-web",
"bitflags",
"bytes",
"derive_more 2.1.1",
"futures-core",
"http-range",
"log",
"mime",
"mime_guess",
"percent-encoding",
"pin-project-lite",
"v_htmlescape",
]
[[package]] [[package]]
name = "actix-http" name = "actix-http"
version = "3.12.0" version = "3.12.0"
@@ -523,6 +546,7 @@ name = "did_router"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"actix-cors", "actix-cors",
"actix-files",
"actix-multipart", "actix-multipart",
"actix-web", "actix-web",
"diesel", "diesel",
@@ -828,6 +852,12 @@ dependencies = [
"itoa", "itoa",
] ]
[[package]]
name = "http-range"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573"
[[package]] [[package]]
name = "httparse" name = "httparse"
version = "1.10.1" version = "1.10.1"
@@ -1048,6 +1078,16 @@ version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
[[package]]
name = "mime_guess"
version = "2.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e"
dependencies = [
"mime",
"unicase",
]
[[package]] [[package]]
name = "miniz_oxide" name = "miniz_oxide"
version = "0.8.9" version = "0.8.9"
@@ -1651,6 +1691,12 @@ version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
[[package]]
name = "unicase"
version = "2.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142"
[[package]] [[package]]
name = "unicode-ident" name = "unicode-ident"
version = "1.0.24" version = "1.0.24"
@@ -1687,6 +1733,12 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
[[package]]
name = "v_htmlescape"
version = "0.15.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c"
[[package]] [[package]]
name = "vcpkg" name = "vcpkg"
version = "0.2.15" version = "0.2.15"

View File

@@ -16,3 +16,4 @@ diesel-derive-enum = { version = "3.0.0-beta.1", features = ["postgres"] }
strum = "0.24" strum = "0.24"
strum_macros = "0.24" strum_macros = "0.24"
actix-cors = "0.7.1" actix-cors = "0.7.1"
actix-files = "0.6.10"

View File

@@ -8,9 +8,10 @@ use actix_web::{web, App,
HttpResponse, HttpResponse,
HttpServer, HttpServer,
http::header::ContentType, http::header::ContentType,
Responder, Responder, Result
}; };
use actix_cors::Cors; use actix_cors::Cors;
use actix_files::{Files, NamedFile};
use serde::Deserialize; use serde::Deserialize;
use database as db; use database as db;
use database::DidTargetType; use database::DidTargetType;
@@ -47,7 +48,6 @@ async fn route_did(request: web::Form<RouteRequest>) -> impl Responder {
async fn did_post(d: web::Json<JsonDid>) -> impl Responder { async fn did_post(d: web::Json<JsonDid>) -> impl Responder {
let did = d.deref(); let did = d.deref();
println!("{:?}", did);
db::add_did(&did.did_number, &did.target_type, &did.target, did.active ,&did.trunk).unwrap(); db::add_did(&did.did_number, &did.target_type, &did.target, did.active ,&did.trunk).unwrap();
HttpResponse::Ok().body("DID added.") HttpResponse::Ok().body("DID added.")
} }
@@ -107,14 +107,19 @@ fn api_config(cfg: &mut web::ServiceConfig) {
); );
} }
async fn index() -> Result<NamedFile> {
Ok(NamedFile::open("/var/www/did_router/index.html")?)
}
#[actix_web::main] #[actix_web::main]
async fn main() -> std::io::Result<()> { async fn main() -> std::io::Result<()> {
HttpServer::new(|| { HttpServer::new(|| {
let cors = Cors::permissive(); let cors = Cors::permissive();
App::new() App::new()
.wrap(cors) .wrap(cors)
.service(Files::new("/admin", "/var/www/did_router/").index_file("index.html"))
.service( .service(
web::scope("/api").configure(api_config)) web::scope("/api").configure(api_config))
.default_service(web::route().to(index))
}) })
.bind(("0.0.0.0", 3000))? .bind(("0.0.0.0", 3000))?
.run() .run()

View File

@@ -3,7 +3,7 @@
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<title>Did Router</title> <title>Did Router</title>
<link rel="stylesheet" href="app.css" /> <link rel="stylesheet" href="admin/app.css" />
</head> </head>
<body></body> <body></body>
</html> </html>

View File

@@ -1,5 +1,5 @@
build: build:
trunk build --release trunk build --release --public-url ./admin/
install: build install: build
mkdir -p /var/www/did_router mkdir -p /var/www/did_router
cp dist/* /var/www/did_router/ cp dist/* /var/www/did_router/