diff --git a/config/config.yaml b/config/config.yaml
index 242fb31c..65532180 100644
--- a/config/config.yaml
+++ b/config/config.yaml
@@ -7,6 +7,7 @@ hosting_config:
port: 443
ssl: true
use_default_org: false
+ default_org: learnhouse
allowed_origins:
- https://learnhouse.app
- https://learnhouse.io
diff --git a/front/app/_orgs/[orgslug]/(withmenu)/courses/page.tsx b/front/app/_orgs/[orgslug]/(withmenu)/courses/page.tsx
index ae143509..86706ad1 100644
--- a/front/app/_orgs/[orgslug]/(withmenu)/courses/page.tsx
+++ b/front/app/_orgs/[orgslug]/(withmenu)/courses/page.tsx
@@ -4,7 +4,7 @@ import { useRouter } from "next/navigation";
import React from "react";
import styled from "styled-components";
import { Title } from "@components/UI/Elements/Styles/Title";
-import { getAPIUrl, getBackendUrl, getUriWithOrg } from "@services/config/config";
+import { getAPIUrl, getBackendUrl, getSelfHostedOption, getUriWithOrg } from "@services/config/config";
import { deleteCourseFromBackend } from "@services/courses/courses";
import useSWR, { mutate } from "swr";
import { swrFetcher } from "@services/utils/requests";
@@ -25,7 +25,7 @@ const CoursesIndexPage = (params: any) => {
function removeCoursePrefix(course_id: string) {
return course_id.replace("course_", "");
}
-
+
return (
<>
@@ -44,8 +44,8 @@ const CoursesIndexPage = (params: any) => {
-
-
+
+
diff --git a/front/middleware.ts b/front/middleware.ts
index 15a48cbc..56fd95cd 100644
--- a/front/middleware.ts
+++ b/front/middleware.ts
@@ -20,8 +20,8 @@ export default function middleware(req: NextRequest) {
const isSelfHosted = getSelfHostedOption();
const hostname = req.headers.get("host") || "learnhouse.app";
let currentHost = hostname.replace(".localhost:3000", "");
-
- if (!isSelfHosted && currentHost === ("localhost:3000")) {
+
+ if (!isSelfHosted && currentHost === "localhost:3000" && !url.pathname.startsWith("/organizations")) {
// Redirect to error page if not self-hosted and on localhost
const errorUrl = "/error";
return NextResponse.redirect(errorUrl, { status: 302 });
@@ -33,7 +33,11 @@ export default function middleware(req: NextRequest) {
}
if (url.pathname.startsWith("/organizations")) {
+ if (!isSelfHosted) {
+ currentHost = "";
+ }
url.pathname = url.pathname.replace("/organizations", `/organizations${currentHost}`).replace("localhost:3000", "");
+
return NextResponse.rewrite(url);
}
diff --git a/front/services/config/config.ts b/front/services/config/config.ts
index 08ee743a..b8352c0d 100644
--- a/front/services/config/config.ts
+++ b/front/services/config/config.ts
@@ -2,13 +2,12 @@ const LEARNHOUSE_API_URL = "http://localhost:1338/api/";
const LEARNHOUSE_BACKEND_URL = "http://localhost:1338/";
export const getAPIUrl = () => LEARNHOUSE_API_URL;
-
export const getBackendUrl = () => LEARNHOUSE_BACKEND_URL;
-
-export const getSelfHostedOption = () => false;
+export const getSelfHostedOption = () => (process.env.NEXT_PUBLIC_LEARNHOUSE_SELF_HOSTED === "true" ? true : false);
export const getUriWithOrg = (orgslug: string, path: string) => {
const selfHosted = getSelfHostedOption();
+
if (selfHosted) {
return `http://localhost:3000${path}`;
}
@@ -20,16 +19,16 @@ export const getOrgFromUri = () => {
if (selfHosted) {
getDefaultOrg();
} else {
- const hostname = window.location.hostname;
- // get the orgslug from the hostname
- const orgslug = hostname.split(".")[0];
- return orgslug;
+ if (typeof window !== "undefined") {
+ const hostname = window.location.hostname;
+ return hostname.replace(".localhost:3000", "");
+ }
}
};
export const getDefaultOrg = () => {
const selfHosted = getSelfHostedOption();
if (selfHosted) {
- return "test";
+ return process.env.NEXT_PUBLIC_LEARNHOUSE_DEFAULT_ORG;
}
};