diff --git a/Cargo.lock b/Cargo.lock
index 5d88e985f482995cbebd42d551f594de689f9d82..388dfcec2e27b8a05604a86a06e2390a7417f95c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2475,7 +2475,7 @@ dependencies = [
 
 [[package]]
 name = "revolt"
-version = "0.4.0-alpha.1"
+version = "0.4.0-alpha.2"
 dependencies = [
  "async-std",
  "async-tungstenite",
diff --git a/Cargo.toml b/Cargo.toml
index 6cbdf5b3c4f482b0f160ebb6c7f18e4e09e350d7..e08d63bfbc762c78844df832b501a3a452349a5b 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "revolt"
-version = "0.4.0-alpha.1"
+version = "0.4.0-alpha.2"
 authors = ["Paul Makles <paulmakles@gmail.com>"]
 edition = "2018"
 
diff --git a/src/routes/root.rs b/src/routes/root.rs
index 7f8940f31331a2f7ae0bec49dfac7f05b7bee308..b8cc6c950e5488b0db99dda215bd338f1be79118 100644
--- a/src/routes/root.rs
+++ b/src/routes/root.rs
@@ -1,6 +1,6 @@
 use crate::util::variables::{
-    AUTUMN_URL, DISABLE_REGISTRATION, EXTERNAL_WS_URL, HCAPTCHA_SITEKEY, INVITE_ONLY, USE_AUTUMN,
-    USE_EMAIL, USE_HCAPTCHA, VAPID_PUBLIC_KEY, USE_VOSO, VOSO_URL
+    AUTUMN_URL, DISABLE_REGISTRATION, EXTERNAL_WS_URL, HCAPTCHA_SITEKEY, INVITE_ONLY, USE_AUTUMN, APP_URL,
+    USE_EMAIL, USE_HCAPTCHA, VAPID_PUBLIC_KEY, USE_VOSO, VOSO_URL, VOSO_WS_HOST
 };
 
 use mongodb::bson::doc;
@@ -9,7 +9,7 @@ use rocket_contrib::json::JsonValue;
 #[get("/")]
 pub async fn root() -> JsonValue {
     json!({
-        "revolt": "0.4.0-alpha.1",
+        "revolt": "0.4.0-alpha.2",
         "features": {
             "registration": !*DISABLE_REGISTRATION,
             "captcha": {
@@ -24,10 +24,12 @@ pub async fn root() -> JsonValue {
             },
             "voso": {
                 "enabled": *USE_VOSO,
-                "url": *VOSO_URL
+                "url": *VOSO_URL,
+                "ws": *VOSO_WS_HOST
             }
         },
         "ws": *EXTERNAL_WS_URL,
+        "app": *APP_URL,
         "vapid": *VAPID_PUBLIC_KEY
     })
 }
diff --git a/src/util/variables.rs b/src/util/variables.rs
index 948b40308f24bdde2b3411ccf06ba0a39ca07928..f8f7d3f827711db3ca4d4c968a6eb906da480e07 100644
--- a/src/util/variables.rs
+++ b/src/util/variables.rs
@@ -12,7 +12,7 @@ lazy_static! {
     pub static ref PUBLIC_URL: String =
         env::var("REVOLT_PUBLIC_URL").expect("Missing REVOLT_PUBLIC_URL environment variable.");
     pub static ref APP_URL: String =
-        env::var("REVOLT_APP_URL").unwrap_or_else(|_| "https://app.revolt.chat".to_string());
+        env::var("REVOLT_APP_URL").expect("Missing REVOLT_APP_URL environment variable.");
     pub static ref EXTERNAL_WS_URL: String =
         env::var("REVOLT_EXTERNAL_WS_URL").expect("Missing REVOLT_EXTERNAL_WS_URL environment variable.");
     
@@ -20,6 +20,8 @@ lazy_static! {
         env::var("AUTUMN_PUBLIC_URL").unwrap_or_else(|_| "https://example.com".to_string());
     pub static ref VOSO_URL: String =
         env::var("VOSO_PUBLIC_URL").unwrap_or_else(|_| "https://example.com".to_string());
+    pub static ref VOSO_WS_HOST: String =
+        env::var("VOSO_WS_HOST").unwrap_or_else(|_| "wss://example.com".to_string());
     pub static ref VOSO_MANAGE_TOKEN: String =
         env::var("VOSO_MANAGE_TOKEN").unwrap_or_else(|_| "0".to_string());
     
@@ -62,6 +64,7 @@ lazy_static! {
 }
 
 pub fn preflight_checks() {
+    format!("{}", *APP_URL);
     format!("{}", *MONGO_URI);
     format!("{}", *PUBLIC_URL);
     format!("{}", *EXTERNAL_WS_URL);