]> Untitled Git - lemmy.git/blob - server/src/main.rs
Merge branch 'actix-2.0' into dev
[lemmy.git] / server / src / main.rs
1 extern crate lemmy_server;
2 #[macro_use]
3 extern crate diesel_migrations;
4
5 use actix_web::*;
6 use lemmy_server::db::establish_connection;
7 use lemmy_server::routes::{federation, feeds, index, nodeinfo, webfinger, websocket};
8 use lemmy_server::settings::Settings;
9 use std::io;
10
11 embed_migrations!();
12
13 #[actix_rt::main]
14 async fn main() -> io::Result<()> {
15   env_logger::init();
16
17   // Run the migrations from code
18   let conn = establish_connection();
19   embedded_migrations::run(&conn).unwrap();
20
21   let settings = Settings::get();
22
23   println!(
24     "Starting http server at {}:{}",
25     settings.bind, settings.port
26   );
27
28   // Create Http server with websocket support
29   HttpServer::new(move || {
30     App::new()
31       .configure(federation::config)
32       .configure(feeds::config)
33       .configure(index::config)
34       .configure(nodeinfo::config)
35       .configure(webfinger::config)
36       .configure(websocket::config)
37       .service(actix_files::Files::new(
38         "/static",
39         settings.front_end_dir.to_owned(),
40       ))
41       .service(actix_files::Files::new(
42         "/docs",
43         settings.front_end_dir.to_owned() + "/documentation",
44       ))
45   })
46   .bind((settings.bind, settings.port))?
47   .run()
48   .await
49 }