From d6aee1e99d8817615e1d54fabba226d7cd329628 Mon Sep 17 00:00:00 2001 From: Leonard Lorenz Date: Fri, 23 Oct 2020 00:20:26 +0200 Subject: [PATCH] Cleaned up directory, created documentation and readme --- .gitignore | 2 +- README.md | 4 ++ doc/environment.md | 7 +++ Cargo.lock => site/Cargo.lock | 43 +++++++++++++++++++ Cargo.toml => site/Cargo.toml | 2 + diesel.toml => site/diesel.toml | 0 {migrations => site/migrations}/.gitkeep | 0 .../2020-10-21-144212_create_posts/down.sql | 0 .../2020-10-21-144212_create_posts/up.sql | 0 {src => site/src}/config.rs | 0 {src => site/src}/db.rs | 0 {src => site/src}/db/models.rs | 0 {src => site/src}/db/schema.rs | 0 {src => site/src}/main.rs | 15 ++++++- {src => site/src}/routes.rs | 0 {src => site/src}/schema.rs | 0 16 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 README.md create mode 100644 doc/environment.md rename Cargo.lock => site/Cargo.lock (98%) rename Cargo.toml => site/Cargo.toml (97%) rename diesel.toml => site/diesel.toml (100%) rename {migrations => site/migrations}/.gitkeep (100%) rename {migrations => site/migrations}/2020-10-21-144212_create_posts/down.sql (100%) rename {migrations => site/migrations}/2020-10-21-144212_create_posts/up.sql (100%) rename {src => site/src}/config.rs (100%) rename {src => site/src}/db.rs (100%) rename {src => site/src}/db/models.rs (100%) rename {src => site/src}/db/schema.rs (100%) rename {src => site/src}/main.rs (56%) rename {src => site/src}/routes.rs (100%) rename {src => site/src}/schema.rs (100%) diff --git a/.gitignore b/.gitignore index 4052e46..bec1af8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -/target +target .env html templates diff --git a/README.md b/README.md new file mode 100644 index 0000000..762d93a --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# My website + +Pure rust. Built with actix, diesel, tera, serde and sqlite3. +Environment variables are documented in [variables](./doc/environment.md) diff --git a/doc/environment.md b/doc/environment.md new file mode 100644 index 0000000..54c6566 --- /dev/null +++ b/doc/environment.md @@ -0,0 +1,7 @@ +# Environment Variables + +- SUBMIT_TOKEN: Alphanumeric string to be used for creating blog posts +- ROOT_PATH: path where html, static and database reside +- SSL_PATH: path to SSL certificates containing key.pem and cert.pem +- BIND_PORT: port to bind to + diff --git a/Cargo.lock b/site/Cargo.lock similarity index 98% rename from Cargo.lock rename to site/Cargo.lock index 5f997aa..53a28c1 100644 --- a/Cargo.lock +++ b/site/Cargo.lock @@ -727,6 +727,21 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -1284,6 +1299,33 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "openssl" +version = "0.10.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4" +dependencies = [ + "bitflags", + "cfg-if 0.1.10", + "foreign-types", + "lazy_static", + "libc", + "openssl-sys", +] + +[[package]] +name = "openssl-sys" +version = "0.9.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "parking_lot" version = "0.11.0" @@ -1538,6 +1580,7 @@ dependencies = [ "chrono", "diesel 1.4.5", "diesel_codegen", + "openssl", "serde", "serde_derive", "serde_json", diff --git a/Cargo.toml b/site/Cargo.toml similarity index 97% rename from Cargo.toml rename to site/Cargo.toml index d8ae533..96e32fe 100644 --- a/Cargo.toml +++ b/site/Cargo.toml @@ -21,3 +21,5 @@ diesel_codegen = { version = "*", default-features = false } uuid = { version = "*", features = ["serde", "v5"] } tera = "*" + +openssl = "*" diff --git a/diesel.toml b/site/diesel.toml similarity index 100% rename from diesel.toml rename to site/diesel.toml diff --git a/migrations/.gitkeep b/site/migrations/.gitkeep similarity index 100% rename from migrations/.gitkeep rename to site/migrations/.gitkeep diff --git a/migrations/2020-10-21-144212_create_posts/down.sql b/site/migrations/2020-10-21-144212_create_posts/down.sql similarity index 100% rename from migrations/2020-10-21-144212_create_posts/down.sql rename to site/migrations/2020-10-21-144212_create_posts/down.sql diff --git a/migrations/2020-10-21-144212_create_posts/up.sql b/site/migrations/2020-10-21-144212_create_posts/up.sql similarity index 100% rename from migrations/2020-10-21-144212_create_posts/up.sql rename to site/migrations/2020-10-21-144212_create_posts/up.sql diff --git a/src/config.rs b/site/src/config.rs similarity index 100% rename from src/config.rs rename to site/src/config.rs diff --git a/src/db.rs b/site/src/db.rs similarity index 100% rename from src/db.rs rename to site/src/db.rs diff --git a/src/db/models.rs b/site/src/db/models.rs similarity index 100% rename from src/db/models.rs rename to site/src/db/models.rs diff --git a/src/db/schema.rs b/site/src/db/schema.rs similarity index 100% rename from src/db/schema.rs rename to site/src/db/schema.rs diff --git a/src/main.rs b/site/src/main.rs similarity index 56% rename from src/main.rs rename to site/src/main.rs index 5c21511..2ad5f23 100644 --- a/src/main.rs +++ b/site/src/main.rs @@ -10,11 +10,24 @@ extern crate tera; use actix_files as fs; use actix_web::{App, HttpServer}; +use openssl::ssl::{SslAcceptor, SslFiletype, SslMethod}; #[actix_web::main] async fn main() -> std::io::Result<()> { HttpServer::new(|| { let root_path = config::get_from_env("ROOT_PATH", true); + let mut builder = SslAcceptor::mozilla_intermediate(SslMethod::tls()).unwrap(); + builder + .set_private_key_file( + config::get_from_env("SSL_PATH", true) + "/key.pem", + SslFiletype::PEM, + ) + .unwrap(); + + builder + .set_certificate_chain_file(config::get_from_env("SSL_PATH", true) + "/cert.pem") + .unwrap(); + App::new() //.wrap(middleware::NormalizePath::default()) .service(routes::root) @@ -24,7 +37,7 @@ async fn main() -> std::io::Result<()> { .service(routes::blog_new_post) .service(fs::Files::new("/static", root_path + "/static")) }) - .bind("localhost:8000")? + .bind(String::from("localhost:") + &config::get_from_env("BIND_PORT", true))? .run() .await } diff --git a/src/routes.rs b/site/src/routes.rs similarity index 100% rename from src/routes.rs rename to site/src/routes.rs diff --git a/src/schema.rs b/site/src/schema.rs similarity index 100% rename from src/schema.rs rename to site/src/schema.rs