This commit is contained in:
JMARyA 2025-04-17 14:49:06 +02:00
commit dae8fed78f
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263
6 changed files with 3690 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
/target
/tar

3614
Cargo.lock generated Normal file

File diff suppressed because it is too large Load diff

9
Cargo.toml Normal file
View file

@ -0,0 +1,9 @@
[package]
name = "navos-site"
version = "0.1.0"
edition = "2024"
[dependencies]
based = { git = "https://git.hydrar.de/jmarya/based" }
env_logger = "0.11.8"
rocket = "0.5.1"

18
Dockerfile Normal file
View file

@ -0,0 +1,18 @@
FROM rust:buster as builder
RUN rustup default nightly
COPY . /app
WORKDIR /app
RUN cargo build --release
FROM git.hydrar.de/navos/navos:latest
RUN pacman -Syu --noconfirm && pacman -Syu --noconfirm openssl-1.1 tar xz zstd
COPY --from=builder /app/target/release/navos-site /navos-site
WORKDIR /
CMD ["/navos-site"]

10
docker-compose.yml Normal file
View file

@ -0,0 +1,10 @@
services:
navos_site:
build: .
ports:
- "8080:8000"
volumes:
- ./tar:/tar
environment:
- "RUST_LOG=info"
- "ROCKET_ADDRESS=0.0.0.0"

37
src/main.rs Normal file
View file

@ -0,0 +1,37 @@
use based::request::assets::DataResponse;
use rocket::{get, launch, routes};
#[get("/")]
pub async fn index() -> String {
String::new()
}
#[get("/rootfs/<arch>/rootfs.tar.xz")]
pub async fn rootfs_tar(arch: &str) -> DataResponse {
match arch {
"aarch64" => {
DataResponse::new_file("./tar/aarch64.tar.xz", "application/tar".to_string(), Some(60 * 60))
},
"x86_64" => {
DataResponse::new_file("./tar/x86_64.tar.xz", "application/tar".to_string(), Some(60 * 60))
},
_ => {
DataResponse::new("Weird arch".as_bytes().to_vec(), "text/plain".to_string(), None)
}
}
}
#[launch]
async fn rocket() -> _ {
env_logger::init();
rocket::build()
.mount(
"/",
routes![
index,
rootfs_tar
],
)
}