diff --git a/src/api/Server.ts b/src/api/Server.ts
index 9cc1820f..d371ed9c 100644
--- a/src/api/Server.ts
+++ b/src/api/Server.ts
@@ -114,9 +114,20 @@ export class SpacebarServer extends Server {
app.use("/imageproxy/:hash/:size/:url", ImageProxy);
- app.get("/", (req, res) => res.sendFile(path.join(PUBLIC_ASSETS_FOLDER, "index.html")));
- app.get("/verify-email", (req, res) => res.sendFile(path.join(PUBLIC_ASSETS_FOLDER, "verify.html")));
- app.get("/widget", (req, res) => res.sendFile(path.join(PUBLIC_ASSETS_FOLDER, "widget.html")));
+ app.get("/", (req, res) => {
+ res.set("Cache-Control", "public, max-age=21600");
+ return res.sendFile(path.join(PUBLIC_ASSETS_FOLDER, "index.html"));
+ });
+
+ app.get("/verify-email", (req, res) => {
+ res.set("Cache-Control", "public, max-age=21600");
+ return res.sendFile(path.join(PUBLIC_ASSETS_FOLDER, "verify.html"));
+ });
+
+ app.get("/widget", (req, res) => {
+ res.set("Cache-Control", "public, max-age=21600");
+ return res.sendFile(path.join(PUBLIC_ASSETS_FOLDER, "widget.html"));
+ });
app.get("/_spacebar/api/schemas.json", (req, res) => {
res.sendFile(path.join(ASSETS_FOLDER, "schemas.json"));
diff --git a/src/api/routes/invites/index.ts b/src/api/routes/invites/index.ts
index b4fa8a5d..7e43aa56 100644
--- a/src/api/routes/invites/index.ts
+++ b/src/api/routes/invites/index.ts
@@ -44,7 +44,7 @@ router.get(
relations: PublicInviteRelation,
});
- res.status(200).send(invite);
+ res.status(200).send(invite.toPublicJSON());
},
);
diff --git a/src/util/config/types/GeneralConfiguration.ts b/src/util/config/types/GeneralConfiguration.ts
index beafe01c..f4f76441 100644
--- a/src/util/config/types/GeneralConfiguration.ts
+++ b/src/util/config/types/GeneralConfiguration.ts
@@ -20,6 +20,7 @@ import { Snowflake } from "@spacebar/util";
export class GeneralConfiguration {
instanceName: string = "Spacebar Instance";
+ serverName: string | null = null;
instanceDescription: string | null = "This is a Spacebar instance made in the pre-release days";
frontPage: string | null = null;
tosPage: string | null = null;
diff --git a/src/util/entities/Invite.ts b/src/util/entities/Invite.ts
index b7066819..20346883 100644
--- a/src/util/entities/Invite.ts
+++ b/src/util/entities/Invite.ts
@@ -104,6 +104,12 @@ export class Invite extends BaseClassWithoutId {
if (this.max_uses !== 0 && this.uses >= this.max_uses) return true;
return false;
}
+ toPublicJSON() {
+ return {
+ ...this,
+ inviter: this.inviter.toPublicUser(),
+ };
+ }
static async joinGuild(user_id: string, code: string) {
const invite = await Invite.findOneOrFail({ where: { code } });
diff --git a/src/util/util/Config.ts b/src/util/util/Config.ts
index 1ca455ff..e31b541f 100644
--- a/src/util/util/Config.ts
+++ b/src/util/util/Config.ts
@@ -184,10 +184,15 @@ function validateFinalConfig(config: ConfigValue) {
}
}
- assertConfig("api_endpointPublic", (v) => v != null, 'A valid public API endpoint URL, ex. "http://localhost:3001/api/v9"');
- assertConfig("cdn_endpointPublic", (v) => v != null, 'A valid public CDN endpoint URL, ex. "http://localhost:3003/"');
- assertConfig("cdn_endpointPrivate", (v) => v != null, 'A valid private CDN endpoint URL, ex. "http://localhost:3003/" - must be routable from the API server!');
- assertConfig("gateway_endpointPublic", (v) => v != null, 'A valid public gateway endpoint URL, ex. "ws://localhost:3002/"');
+ assertConfig(
+ "general_serverName",
+ (v) => v != null,
+ 'A valid domain hosting your .well-known (defaulting to https at port 443), eg. "spacebar.chat" or "http://localhost:3001"',
+ );
+ assertConfig("api_endpointPublic", (v) => v != null, 'A valid public API endpoint URL, eg. "http://localhost:3001/api/v9"');
+ assertConfig("cdn_endpointPublic", (v) => v != null, 'A valid public CDN endpoint URL, eg. "http://localhost:3003/"');
+ assertConfig("cdn_endpointPrivate", (v) => v != null, 'A valid private CDN endpoint URL, eg. "http://localhost:3003/" - must be routable from the API server!');
+ assertConfig("gateway_endpointPublic", (v) => v != null, 'A valid public gateway endpoint URL, eg. "ws://localhost:3002/"');
if (hasErrors) {
console.error("[Config] Your config has invalid values. Fix them first https://docs.spacebar.chat/setup/server/configuration");
|