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