forked from jmug/stoatchat
Compare commits
4 Commits
20240408-2
...
20240408-4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7703475868 | ||
|
|
4be3bdc4c3 | ||
|
|
3e26e7e89d | ||
|
|
13b95d383e |
@@ -15,7 +15,7 @@ mod websocket;
|
||||
#[async_std::main]
|
||||
async fn main() {
|
||||
// Configure requirements for Bonfire.
|
||||
revolt_config::configure!();
|
||||
revolt_config::configure!(events);
|
||||
database::connect().await;
|
||||
|
||||
// Clean up the current region information.
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
sentry_dsn = ""
|
||||
|
||||
[database]
|
||||
mongodb = "mongodb://database"
|
||||
redis = "redis://redis/"
|
||||
@@ -14,7 +12,6 @@ voso_legacy = ""
|
||||
voso_legacy_ws = ""
|
||||
|
||||
[api]
|
||||
staging = false
|
||||
|
||||
[api.registration]
|
||||
invite_only = false
|
||||
@@ -68,3 +65,7 @@ background_size = 6000000
|
||||
icon_size = 2500000
|
||||
banner_size = 6000000
|
||||
emoji_size = 500000
|
||||
|
||||
[sentry]
|
||||
api = ""
|
||||
events = ""
|
||||
|
||||
@@ -6,6 +6,9 @@ use futures_locks::RwLock;
|
||||
use once_cell::sync::Lazy;
|
||||
use serde::Deserialize;
|
||||
|
||||
#[cfg(not(debug_assertions))]
|
||||
use std::env;
|
||||
|
||||
static CONFIG_BUILDER: Lazy<RwLock<Config>> = Lazy::new(|| {
|
||||
RwLock::new({
|
||||
let mut builder = Config::builder().add_source(File::from_str(
|
||||
@@ -93,7 +96,6 @@ pub struct ApiWorkers {
|
||||
|
||||
#[derive(Deserialize, Debug, Clone)]
|
||||
pub struct Api {
|
||||
pub staging: bool,
|
||||
pub registration: ApiRegistration,
|
||||
pub smtp: ApiSmtp,
|
||||
pub vapid: ApiVapid,
|
||||
@@ -138,13 +140,19 @@ pub struct Features {
|
||||
pub webhooks_enabled: bool,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug, Clone)]
|
||||
pub struct Sentry {
|
||||
pub api: String,
|
||||
pub events: String,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Debug, Clone)]
|
||||
pub struct Settings {
|
||||
pub database: Database,
|
||||
pub hosts: Hosts,
|
||||
pub api: Api,
|
||||
pub features: Features,
|
||||
pub sentry_dsn: String,
|
||||
pub sentry: Sentry,
|
||||
}
|
||||
|
||||
impl Settings {
|
||||
@@ -188,7 +196,7 @@ pub async fn config() -> Settings {
|
||||
}
|
||||
|
||||
/// Configure logging and common Rust variables
|
||||
pub async fn setup_logging(release: &'static str) -> Option<sentry::ClientInitGuard> {
|
||||
pub async fn setup_logging(release: &'static str, dsn: String) -> Option<sentry::ClientInitGuard> {
|
||||
dotenv::dotenv().ok();
|
||||
|
||||
if std::env::var("RUST_LOG").is_err() {
|
||||
@@ -202,12 +210,11 @@ pub async fn setup_logging(release: &'static str) -> Option<sentry::ClientInitGu
|
||||
pretty_env_logger::init();
|
||||
log::info!("Starting {release}");
|
||||
|
||||
let config = config().await;
|
||||
if config.sentry_dsn.is_empty() {
|
||||
if dsn.is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(sentry::init((
|
||||
config.sentry_dsn,
|
||||
dsn,
|
||||
sentry::ClientOptions {
|
||||
release: Some(release.into()),
|
||||
..Default::default()
|
||||
@@ -218,12 +225,12 @@ pub async fn setup_logging(release: &'static str) -> Option<sentry::ClientInitGu
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! configure {
|
||||
() => {
|
||||
let _sentry = $crate::setup_logging(concat!(
|
||||
env!("CARGO_PKG_NAME"),
|
||||
"@",
|
||||
env!("CARGO_PKG_VERSION")
|
||||
))
|
||||
($application: ident) => {
|
||||
let config = $crate::config().await;
|
||||
let _sentry = $crate::setup_logging(
|
||||
concat!(env!("CARGO_PKG_NAME"), "@", env!("CARGO_PKG_VERSION")),
|
||||
config.sentry.$application,
|
||||
)
|
||||
.await;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -284,7 +284,7 @@ impl User {
|
||||
db.fetch_user(
|
||||
&db.fetch_bot_by_token(token)
|
||||
.await
|
||||
.map_err(|_| create_error!(InternalError))?
|
||||
.map_err(|_| create_error!(InvalidSession))?
|
||||
.id,
|
||||
)
|
||||
.await
|
||||
|
||||
@@ -60,7 +60,7 @@ impl AbstractUsers for MongoDb {
|
||||
.map_err(|_| create_database_error!("find_one", "sessions"))?
|
||||
.ok_or_else(|| create_error!(InvalidSession))?;
|
||||
|
||||
self.fetch_user(&session.id).await
|
||||
self.fetch_user(&session.user_id).await
|
||||
}
|
||||
|
||||
/// Fetch multiple users by their ids
|
||||
|
||||
@@ -194,7 +194,7 @@ pub async fn authifier_config() -> AuthifierConfig {
|
||||
#[launch]
|
||||
async fn rocket() -> _ {
|
||||
// Configure logging and environment
|
||||
revolt_config::configure!();
|
||||
revolt_config::configure!(api);
|
||||
|
||||
// Start web server
|
||||
web().await
|
||||
|
||||
2
scripts/publish-debug-image.sh
Normal file → Executable file
2
scripts/publish-debug-image.sh
Normal file → Executable file
@@ -11,7 +11,7 @@ echo "[profile.release]" >> Cargo.toml
|
||||
echo "debug = true" >> Cargo.toml
|
||||
|
||||
TAG=$1-debug
|
||||
echo "Building images, will tag for ghcr.io with $TAG-debug!"
|
||||
echo "Building images, will tag for ghcr.io with $TAG!"
|
||||
docker build -t ghcr.io/revoltchat/base:latest -f Dockerfile.useCurrentArch .
|
||||
docker build -t ghcr.io/revoltchat/server:$TAG - < crates/delta/Dockerfile
|
||||
docker build -t ghcr.io/revoltchat/bonfire:$TAG - < crates/bonfire/Dockerfile
|
||||
|
||||
Reference in New Issue
Block a user