almost prod product

This commit is contained in:
Romulus21
2024-11-02 16:44:02 +01:00
parent 6b32f3ee05
commit bd48522b66
11 changed files with 31 additions and 22 deletions

3
Cargo.lock generated
View File

@@ -368,7 +368,9 @@ checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
dependencies = [ dependencies = [
"android-tzdata", "android-tzdata",
"iana-time-zone", "iana-time-zone",
"js-sys",
"num-traits", "num-traits",
"wasm-bindgen",
"windows-targets 0.52.6", "windows-targets 0.52.6",
] ]
@@ -2454,6 +2456,7 @@ name = "rust_leptos"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"axum", "axum",
"chrono",
"console_error_panic_hook", "console_error_panic_hook",
"jsonwebtoken", "jsonwebtoken",
"leptos", "leptos",

View File

@@ -35,6 +35,7 @@ tracing-subscriber = { version = "0.3", features = ["fmt"] }
tracing-wasm = { version = "0.2", optional = true } tracing-wasm = { version = "0.2", optional = true }
wasm-bindgen = "0.2.93" wasm-bindgen = "0.2.93"
chrono = "0.4.38"
[features] [features]
default = ["ssr", "hydrate"] default = ["ssr", "hydrate"]
@@ -119,7 +120,7 @@ lib-features = ["hydrate"]
# Optional. Defaults to false. # Optional. Defaults to false.
lib-default-features = false lib-default-features = false
bin-target-triple = "aarch64-unknown-linux-gnu" #bin-target-triple = "aarch64-unknown-linux-gnu"
tailwind-input-file = "input.css" tailwind-input-file = "input.css"
tailwind-config-file = "tailwind.config.js" tailwind-config-file = "tailwind.config.js"

View File

View File

@@ -1,5 +1,8 @@
deploy: deploy:
npx tailwindcss -i ./input.css -o ./style/output.css --minify cargo leptos build
cargo build --release --target=aarch64-unknown-linux-gnu -vv #cargo leptos build --release
scp target/release/rust_leptos raspiwork:/var/www/rust_leptos/ ssh raspiwork "sudo systemctl stop rust_leptos.service"
scp target/aarch64-unknown-linux-gnu/debug/rust_leptos raspiwork:/var/www/rust_leptos/rust_leptos
#scp target/aarch64-unknown-linux-gnu/debug/rust_leptos raspiwork:/var/www/rust_leptos/rust_leptos
scp -r target/site raspiwork:/var/www/rust_leptos/site/ scp -r target/site raspiwork:/var/www/rust_leptos/site/
ssh raspiwork "sudo systemctl start rust_leptos.service"

View File

@@ -3,6 +3,21 @@ source : https://github.com/Oishh/leptos-axum-tailwind-start
wasm-pack build --target=web --debug --no-default-features --features=hydrate wasm-pack build --target=web --debug --no-default-features --features=hydrate
cargo run --no-default-features --features=ssr cargo run --no-default-features --features=ssr
example of systemd config
```
[Unit]
Description=Running rust script
After=multi-user.target
[Service]
EnvironmentFile=/home/pi/Scripts/rust_mosquitto/target/release/.env
ExecStart=/home/pi/Scripts/rust_mosquitto/target/release/rust_mosquitto
Type=simple
[Install]
WantedBy=multi-user.target
```
# dev # dev
source .env source .env
cargo sqlx migrate run cargo sqlx migrate run

View File

@@ -1,11 +0,0 @@
CREATE TABLE IF NOT EXISTS donnees (
id int(11) NOT NULL AUTO_INCREMENT,
service varchar(12) NOT NULL,
capteur varchar(12) NOT NULL,
type varchar(12) NOT NULL,
donnee varchar(12) NOT NULL,
date_donnee datetime NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE INDEX grafana_index ON donnees(date_donnee, capteur, type);

View File

@@ -2,7 +2,6 @@ static DB: std::sync::OnceLock<sqlx::MySqlPool> = std::sync::OnceLock::new();
async fn create_pool() -> sqlx::MySqlPool { async fn create_pool() -> sqlx::MySqlPool {
let database_url = std::env::var("DATABASE_URL").expect("no database url specify"); let database_url = std::env::var("DATABASE_URL").expect("no database url specify");
dbg!(&database_url);
let pool = sqlx::mysql::MySqlPoolOptions::new() let pool = sqlx::mysql::MySqlPoolOptions::new()
.max_connections(4) .max_connections(4)
.connect(database_url.as_str()) .connect(database_url.as_str())

View File

@@ -1,7 +1,7 @@
#[cfg(feature = "ssr")] #[cfg(feature = "ssr")]
#[tokio::main] #[tokio::main]
async fn main() { async fn main() {
rust_leptos::setup::init_app(Some("Cargo.toml")).await; rust_leptos::setup::init_app(None).await;
} }
#[cfg(not(feature = "ssr"))] #[cfg(not(feature = "ssr"))]

View File

@@ -61,11 +61,12 @@ impl Value {
}; };
sqlx::query!( sqlx::query!(
"INSERT INTO donnees(service, capteur, type, donnee, date_donnee) VALUES (?, ?, ?, ?, NOW())", "INSERT INTO donnees(service, capteur, type, donnee, date_donnee) VALUES (?, ?, ?, ?, ?)",
option.service, option.service,
option.device, option.device,
option.r_type, option.r_type,
value, value,
chrono::Local::now().naive_local(),
) )
.execute(crate::database::get_db()) .execute(crate::database::get_db())
.await .await

View File

@@ -8,6 +8,7 @@ pub fn Links() -> impl IntoView {
<ul class="flex gap-5 mt-5 justify-center"> <ul class="flex gap-5 mt-5 justify-center">
<Link link="aa".to_string() name="Mon Lien".to_string() /> <Link link="aa".to_string() name="Mon Lien".to_string() />
<Link link="aa".to_string() name="mon lien 2".to_string() /> <Link link="aa".to_string() name="mon lien 2".to_string() />
<Link link="aa".to_string() name="mon lien 3".to_string() />
</ul> </ul>
} }
} }

View File

@@ -3,9 +3,6 @@ use leptos_axum::{generate_route_list, LeptosRoutes};
use crate::app::App; use crate::app::App;
/// # Panics
///
/// Will panic if anything is badly setup from database, or web server
pub async fn init_app(configuration_path: Option<&str>) { pub async fn init_app(configuration_path: Option<&str>) {
tracing_subscriber::fmt() tracing_subscriber::fmt()
.with_level(true) .with_level(true)
@@ -24,7 +21,7 @@ pub async fn init_app(configuration_path: Option<&str>) {
let leptos_options = conf.leptos_options; let leptos_options = conf.leptos_options;
let serve_dir = tower_http::services::ServeDir::new(&leptos_options.site_root) let serve_dir = tower_http::services::ServeDir::new(&leptos_options.site_root)
.append_index_html_on_directories(false); .append_index_html_on_directories(false);
logging::log!("listening on http://{}", &addr);
let app = axum::Router::new() let app = axum::Router::new()
.leptos_routes(&leptos_options, routes, || view! { <App/> }) .leptos_routes(&leptos_options, routes, || view! { <App/> })
.fallback_service(serve_dir) .fallback_service(serve_dir)