add static route for main.css
Some checks failed
Build and publish the docker image / build (push) Failing after 10s

Signed-off-by: ngn <ngn@ngn.tf>
This commit is contained in:
ngn 2025-01-20 05:54:35 +03:00
parent f4dd0995a7
commit 314b237bb7
Signed by: ngn
GPG Key ID: A3654DF5AD9F641D
9 changed files with 19 additions and 21 deletions

View File

@ -15,11 +15,17 @@ RUN cargo build --release
FROM debian:bookworm-slim FROM debian:bookworm-slim
RUN useradd -ms /bin/bash -u 1001 libmedium RUN useradd -d /app -u 1001 -g 1001 libmedium
RUN apt-get update && apt-get install -y ca-certificates RUN apt-get update
RUN mkdir /var/lib/libmedium && chown libmedium /var/lib/libmedium RUN apt-get install -y ca-certificates
COPY --from=rust /src/target/release/libmedium /usr/local/bin/ WORKDIR /app
COPY --from=rust /src/target/release/libmedium ./
COPY --from=rust /src/config.toml ./
COPY --from=rust /src/static ./static
RUN chown libmedium:libmedium -R /app
USER libmedium USER libmedium
ENTRYPOINT ["/usr/local/bin/libmedium"] ENTRYPOINT ["/app/libmedium"]

View File

@ -23,5 +23,5 @@ fn main() {
.expect("error in git command, is git installed?"); .expect("error in git command, is git installed?");
let git_hash = String::from_utf8(output.stdout).unwrap(); let git_hash = String::from_utf8(output.stdout).unwrap();
println!("cargo:rustc-env=GIT_HASH={}", git_hash); println!("cargo:rustc-env=GIT_HASH={}", git_hash);
println!("cargo:rerun-if-changed=src/schema2.graphql,templates/main.css"); println!("cargo:rerun-if-changed=src/schema2.graphql,static/main.css");
} }

View File

@ -1,5 +1,5 @@
debug = true debug = true
#cache = "/var/lib/libmedium" #cache = "/cache"
port = 7000 port = 7000
ip= "0.0.0.0" ip= "0.0.0.0"
domain = "example.com" domain = "example.com"

View File

@ -20,6 +20,7 @@ use actix_web::{
error::InternalError, http::StatusCode, middleware as actix_middleware, web::JsonConfig, App, error::InternalError, http::StatusCode, middleware as actix_middleware, web::JsonConfig, App,
HttpServer, HttpServer,
}; };
use actix_files as fs;
use lazy_static::lazy_static; use lazy_static::lazy_static;
use log::info; use log::info;
@ -66,6 +67,7 @@ async fn main() -> std::io::Result<()> {
HttpServer::new(move || { HttpServer::new(move || {
App::new() App::new()
.service(fs::Files::new("/static", "./static"))
.wrap(actix_middleware::Logger::default()) .wrap(actix_middleware::Logger::default())
.wrap(actix_middleware::Compress::default()) .wrap(actix_middleware::Compress::default())
.app_data(get_json_err()) .app_data(get_json_err())

View File

@ -40,16 +40,10 @@ impl Settings {
let mut s = Config::builder(); let mut s = Config::builder();
// setting default values // setting default values
const CURRENT_DIR: &str = "./config.toml";
const ETC: &str = "/etc/libmedium/config.toml";
if let Ok(path) = env::var("LIBMEDIUM") { if let Ok(path) = env::var("LIBMEDIUM") {
s = s.add_source(File::with_name(&path)); s = s.add_source(File::with_name(&path));
} else if Path::new(CURRENT_DIR).exists() { } else if Path::new("./config.toml").exists() {
// merging default config from file s = s.add_source(File::with_name("./config.toml");
s = s.add_source(File::with_name(CURRENT_DIR));
} else if Path::new(ETC).exists() {
s = s.add_source(File::with_name(ETC));
} else { } else {
log::warn!("configuration file not found"); log::warn!("configuration file not found");
} }

View File

@ -3,6 +3,7 @@
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="/static/main.css">
<title>LibMedium</title> <title>LibMedium</title>
</head> </head>
<body> <body>
@ -30,7 +31,4 @@
</div> </div>
</main> </main>
</body> </body>
<style>
<. include!("./main.css"); .>
</style>
</html> </html>

View File

@ -29,7 +29,4 @@
</article> </article>
</main> </main>
</body> </body>
<style>
<. include!("./main.css"); .>
</style>
</html> </html>

View File

@ -74,3 +74,4 @@
rel="canonical" rel="canonical"
href="http://<.= &*crate::SETTINGS.domain .>/<.= data.creator.name .>/<.= data.unique_slug .>" href="http://<.= &*crate::SETTINGS.domain .>/<.= data.creator.name .>/<.= data.unique_slug .>"
/> />
<link rel="stylesheet" href="/static/main.css">