-import { isBrowser } from './utils';
-
-const testHost = 'localhost:8536';
-
-const internalHost =
- (!isBrowser() && process.env.LEMMY_INTERNAL_HOST) || testHost; // used for local dev
-export const externalHost = isBrowser()
- ? `${window.location.hostname}${
- ['1234', '1235'].includes(window.location.port)
- ? ':8536'
- : window.location.port == ''
- ? ''
- : `:${window.location.port}`
- }`
- : process.env.LEMMY_EXTERNAL_HOST || testHost;
-
-const secure = isBrowser()
- ? window.location.protocol == 'https:'
- ? 's'
- : ''
- : process.env.LEMMY_HTTPS == 'true'
- ? 's'
- : '';
-
-const host = isBrowser() ? externalHost : internalHost;
-
-const httpBase = `http://${host}`; // Don't use secure here
-export const wsUri = `ws${secure}://${host}/api/v1/ws`;
-export const httpUri = `${httpBase}/api/v1`;
-export const pictrsUri = `http${secure}://${host}/pictrs/image`;
+import { isBrowser } from "./utils";
+
+const testHost = "0.0.0.0:8536";
+
+let internalHost =
+ (!isBrowser() && process.env.LEMMY_UI_LEMMY_INTERNAL_HOST) || testHost; // used for local dev
+export let externalHost: string;
+let host: string;
+let wsHost: string;
+let secure: string;
+
+if (isBrowser()) {
+ // browser
+ const lemmyConfig =
+ typeof window.lemmyConfig !== "undefined" ? window.lemmyConfig : {};
+
+ externalHost = `${window.location.hostname}${
+ ["1234", "1235"].includes(window.location.port)
+ ? ":8536"
+ : window.location.port == ""
+ ? ""
+ : `:${window.location.port}`
+ }`;
+
+ host = externalHost;
+ wsHost = lemmyConfig.wsHost || host;
+ secure = window.location.protocol == "https:" ? "s" : "";
+} else {
+ // server-side
+ externalHost = process.env.LEMMY_UI_LEMMY_EXTERNAL_HOST || testHost;
+ host = internalHost;
+ wsHost = process.env.LEMMY_UI_LEMMY_WS_HOST || externalHost;
+ secure = process.env.LEMMY_UI_HTTPS == "true" ? "s" : "";
+}
+
+export const httpBaseInternal = `http://${host}`; // Don't use secure here
+export const httpBase = `http${secure}://${host}`;
+export const wsUriBase = `ws${secure}://${wsHost}`;
+export const wsUri = `${wsUriBase}/api/v3/ws`;
+export const pictrsUri = `${httpBase}/pictrs/image`;
+export const isHttps = secure.endsWith("s");
console.log(`httpbase: ${httpBase}`);
console.log(`wsUri: ${wsUri}`);
+console.log(`isHttps: ${isHttps}`);
// This is for html tags, don't include port
-const httpExternalUri = `http${secure}://${externalHost.split(':')[0]}`;
+const httpExternalUri = `http${secure}://${externalHost.split(":")[0]}`;
export function httpExternalPath(path: string) {
return `${httpExternalUri}${path}`;
}