/* This file is part of jellything (https://codeberg.org/metamuffin/jellything) which is licensed under the GNU Affero General Public License (version 3); see /COPYING. Copyright (C) 2023 metamuffin */ #![feature(lazy_cell)] use crate::routes::ui::admin::log::enable_logging; use database::Database; use federation::Federation; use jellybase::CONF; use jellyremuxer::RemuxerContext; use routes::build_rocket; use tokio::fs::create_dir_all; pub mod database; pub mod federation; pub mod import; pub mod routes; fn main() { enable_logging(); #[cfg(feature = "bypass-auth")] log::warn!("authentification bypass enabled"); tokio::runtime::Builder::new_multi_thread() .enable_all() .build() .unwrap() .block_on(async_main()) } async fn async_main() { create_dir_all(&CONF.cache_path).await.unwrap(); let remuxer = RemuxerContext::new(); let database = Database::open(&CONF.database_path).unwrap(); let federation = Federation::initialize(); database.create_admin(); // if let Err(err) = import::import(&database, &federation).await { // log::error!("import not sucessful: {err:?}") // } build_rocket(remuxer, database, federation) .launch() .await .unwrap(); }