]> Untitled Git - lemmy.git/blob - server/src/main.rs
Merge branch 'master' into lint
[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
10 embed_migrations!();
11
12 fn main() {
13   env_logger::init();
14   let sys = actix::System::new("lemmy");
15
16   // Run the migrations from code
17   let conn = establish_connection();
18   embedded_migrations::run(&conn).unwrap();
19
20   let settings = Settings::get();
21
22   // Create Http server with websocket support
23   HttpServer::new(move || {
24     App::new()
25       .configure(federation::config)
26       .configure(feeds::config)
27       .configure(index::config)
28       .configure(nodeinfo::config)
29       .configure(webfinger::config)
30       .configure(websocket::config)
31       .service(actix_files::Files::new(
32         "/static",
33         settings.front_end_dir.to_owned(),
34       ))
35       .service(actix_files::Files::new(
36         "/docs",
37         settings.front_end_dir.to_owned() + "/documentation",
38       ))
39   })
40   .bind((settings.bind, settings.port))
41   .unwrap()
42   .start();
43
44   println!("Started http server at {}:{}", settings.bind, settings.port);
45   let _ = sys.run();
46 }