chore: move IS_SELFHOSTED to public env

This commit is contained in:
Rotimi Best
2025-09-07 10:24:34 +01:00
parent f7a66f851f
commit 9055c45384
8 changed files with 15 additions and 14 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ PUBLIC_SUPABASE_ANON_KEY=
PRIVATE_SUPABASE_SERVICE_ROLE= PRIVATE_SUPABASE_SERVICE_ROLE=
# Selfhosting - should be true if you are selfhosting # Selfhosting - should be true if you are selfhosting
IS_SELFHOSTED=false PUBLIC_IS_SELFHOSTED=false
DEPLOYMENT_PROVIDER= # docker or empty. empty will use adapter-auto for sveltekit build DEPLOYMENT_PROVIDER= # docker or empty. empty will use adapter-auto for sveltekit build
# Unsplash setup - Optional if you want to use Unsplash images # Unsplash setup - Optional if you want to use Unsplash images
+2 -2
View File
@@ -30,7 +30,7 @@ RUN pnpm install
COPY apps/dashboard ./apps/dashboard COPY apps/dashboard ./apps/dashboard
# Set env vars for SvelteKit to use Node adapter # Set env vars for SvelteKit to use Node adapter
ENV IS_SELFHOSTED=true \ ENV PUBLIC_IS_SELFHOSTED=true \
DEPLOYMENT_PROVIDER=docker \ DEPLOYMENT_PROVIDER=docker \
PUBLIC_SUPABASE_URL=$PUBLIC_SUPABASE_URL \ PUBLIC_SUPABASE_URL=$PUBLIC_SUPABASE_URL \
PUBLIC_SUPABASE_ANON_KEY=$PUBLIC_SUPABASE_ANON_KEY \ PUBLIC_SUPABASE_ANON_KEY=$PUBLIC_SUPABASE_ANON_KEY \
@@ -67,7 +67,7 @@ EXPOSE 3000
# Set environment variables for production # Set environment variables for production
ENV NODE_ENV=production \ ENV NODE_ENV=production \
IS_SELFHOSTED=true \ PUBLIC_IS_SELFHOSTED=true \
DEPLOYMENT_PROVIDER=docker \ DEPLOYMENT_PROVIDER=docker \
PUBLIC_SUPABASE_URL=$PUBLIC_SUPABASE_URL \ PUBLIC_SUPABASE_URL=$PUBLIC_SUPABASE_URL \
PUBLIC_SUPABASE_ANON_KEY=$PUBLIC_SUPABASE_ANON_KEY \ PUBLIC_SUPABASE_ANON_KEY=$PUBLIC_SUPABASE_ANON_KEY \
+2 -2
View File
@@ -7,7 +7,7 @@ import { ROLE } from '$lib/utils/constants/roles';
import { STEPS } from '../constants/quiz'; import { STEPS } from '../constants/quiz';
import type { UserLessonDataType } from '$lib/utils/types'; import type { UserLessonDataType } from '$lib/utils/types';
import type { Writable } from 'svelte/store'; import type { Writable } from 'svelte/store';
import { env } from '$env/dynamic/public'; import { PUBLIC_IS_SELFHOSTED } from '$env/static/public';
// Trigger build // Trigger build
export const defaultCurrentOrgState: CurrentOrg = { export const defaultCurrentOrgState: CurrentOrg = {
@@ -70,7 +70,7 @@ export const currentOrgDomain = derived(currentOrg, ($currentOrg) => {
}); });
export const isFreePlan = derived(currentOrg, ($currentOrg) => { export const isFreePlan = derived(currentOrg, ($currentOrg) => {
if (!$currentOrg.id || env.IS_SELFHOSTED === 'true') return false; if (!$currentOrg.id || PUBLIC_IS_SELFHOSTED === 'true') return false;
const plan = getActivePlan($currentOrg); const plan = getActivePlan($currentOrg);
+6 -5
View File
@@ -1,7 +1,7 @@
import { getSupabase, supabase } from '$lib/utils/functions/supabase'; import { getSupabase, supabase } from '$lib/utils/functions/supabase';
import type { CurrentOrg } from '$lib/utils/types/org'; import type { CurrentOrg } from '$lib/utils/types/org';
import { IS_SELFHOSTED } from '$env/static/private'; import { PUBLIC_IS_SELFHOSTED } from '$env/static/public';
import type { MetaTagsProps } from 'svelte-meta-tags'; import type { MetaTagsProps } from 'svelte-meta-tags';
import { blockedSubdomain } from '$lib/utils/constants/app'; import { blockedSubdomain } from '$lib/utils/constants/app';
import { dev } from '$app/environment'; import { dev } from '$app/environment';
@@ -13,7 +13,7 @@ if (!supabase) {
getSupabase(); getSupabase();
} }
export const ssr = IS_SELFHOSTED === 'true' ? false : true; export const ssr = PUBLIC_IS_SELFHOSTED === 'true' ? false : true;
interface LoadOutput { interface LoadOutput {
orgSiteName: string; orgSiteName: string;
@@ -36,10 +36,10 @@ export const load = async ({ url, cookies, request }): Promise<LoadOutput> => {
serverLang: request.headers?.get('accept-language') || '' serverLang: request.headers?.get('accept-language') || ''
}; };
console.log('IS_SELFHOSTED', IS_SELFHOSTED); console.log('PUBLIC_IS_SELFHOSTED', PUBLIC_IS_SELFHOSTED);
// Selfhosted usecase would be here // Selfhosted usecase would be here
if (IS_SELFHOSTED === 'true') { if (PUBLIC_IS_SELFHOSTED === 'true') {
const subdomain = getSubdomain(url); const subdomain = getSubdomain(url);
console.log('subdomain', subdomain); console.log('subdomain', subdomain);
@@ -87,7 +87,8 @@ export const load = async ({ url, cookies, request }): Promise<LoadOutput> => {
console.log('custom domain response.org', response.org); console.log('custom domain response.org', response.org);
if (!response.org) { if (!response.org) {
throw redirect(307, 'https://app.classroomio.com/404?type=org'); console.error('Custom domain org not found, loading dashboard');
return response;
} }
response.isOrgSite = true; response.isOrgSite = true;
+1 -1
View File
@@ -7,7 +7,7 @@ import path from 'path';
import 'dotenv/config'; import 'dotenv/config';
const useNodeAdapter = const useNodeAdapter =
process.env.IS_SELFHOSTED === 'true' && process.env.DEPLOYMENT_PROVIDER === 'docker'; process.env.PUBLIC_IS_SELFHOSTED === 'true' && process.env.DEPLOYMENT_PROVIDER === 'docker';
/** @type {import('@sveltejs/kit').Config} */ /** @type {import('@sveltejs/kit').Config} */
const config = { const config = {
+1 -1
View File
@@ -68,7 +68,7 @@ services:
- /app/node_modules - /app/node_modules
- /app/apps/dashboard/node_modules - /app/apps/dashboard/node_modules
environment: environment:
- IS_SELFHOSTED=true - PUBLIC_IS_SELFHOSTED=true
- DEPLOYMENT_PROVIDER=docker - DEPLOYMENT_PROVIDER=docker
# Supabase - Database # Supabase - Database
- PUBLIC_SUPABASE_URL=${PUBLIC_SUPABASE_URL} - PUBLIC_SUPABASE_URL=${PUBLIC_SUPABASE_URL}
+1 -1
View File
@@ -10,7 +10,7 @@
"release": "standard-version", "release": "standard-version",
"ci": "cypress run", "ci": "cypress run",
"supabase": "pnpx supabase", "supabase": "pnpx supabase",
"dashboard:build": "cd apps/dashboard && pnpm i && IS_SELFHOSTED=true NODE_OPTIONS='--max-old-space-size=20384' DEPLOYMENT_PROVIDER=docker pnpm build", "dashboard:build": "cd apps/dashboard && pnpm i && PUBLIC_IS_SELFHOSTED=true NODE_OPTIONS='--max-old-space-size=20384' DEPLOYMENT_PROVIDER=docker pnpm build",
"dashboard:start": "cd apps/dashboard && node build" "dashboard:start": "cd apps/dashboard && node build"
}, },
"license": "MIT", "license": "MIT",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"$schema": "https://turbo.build/schema.json", "$schema": "https://turbo.build/schema.json",
"globalEnv": ["IS_SELFHOSTED", "DEPLOYMENT_PROVIDER"], "globalEnv": ["PUBLIC_IS_SELFHOSTED", "DEPLOYMENT_PROVIDER"],
"pipeline": { "pipeline": {
"build": { "build": {
"dependsOn": ["^build"], "dependsOn": ["^build"],