mirror of
https://github.com/pockethost/pockethost.git
synced 2025-07-03 03:12:29 +00:00
enh: dashboard env var refactor
This commit is contained in:
parent
fb099b2a87
commit
ebd0802baf
@ -4,7 +4,7 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"preview": "npx http-server@latest ./build -P \"http://localhost:8080?\"",
|
"preview": "npx http-server@latest ./build -P \"http://localhost:8080?\"",
|
||||||
"dev": "vite dev --force",
|
"dev": "DEBUG=1 source ../../.env && vite dev --force",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
"lint": "prettier --check .",
|
"lint": "prettier --check .",
|
||||||
"format": "prettier --write .",
|
"format": "prettier --write .",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
import { page } from '$app/stores'
|
import { page } from '$app/stores'
|
||||||
import Logo from '$components/Logo.svelte'
|
import Logo from '$components/Logo.svelte'
|
||||||
import MediaQuery from '$components/MediaQuery.svelte'
|
import MediaQuery from '$components/MediaQuery.svelte'
|
||||||
|
import { BLOG_DOMAIN, HTTP_PROTOCOL } from '$src/env'
|
||||||
import { handleLogoutAndRedirect } from '$util/database'
|
import { handleLogoutAndRedirect } from '$util/database'
|
||||||
import { getInstances } from '$util/getInstances'
|
import { getInstances } from '$util/getInstances'
|
||||||
import { globalInstancesStore } from '$util/stores'
|
import { globalInstancesStore } from '$util/stores'
|
||||||
@ -79,7 +80,7 @@
|
|||||||
>
|
>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
href="https://pockethost.io/docs"
|
href={`${HTTP_PROTOCOL}://${BLOG_DOMAIN}/docs`}
|
||||||
class={linkClasses}
|
class={linkClasses}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { PUBLIC_APP_DOMAIN, PUBLIC_HTTP_PROTOCOL } from '$src/env'
|
import { APP_DOMAIN, HTTP_PROTOCOL } from '$src/env'
|
||||||
|
|
||||||
const baseUrl = `${PUBLIC_HTTP_PROTOCOL}://${PUBLIC_APP_DOMAIN}/`
|
const baseUrl = `${HTTP_PROTOCOL}://${APP_DOMAIN}/`
|
||||||
const imageUrl = `${baseUrl}poster.png`
|
const imageUrl = `${baseUrl}poster.png`
|
||||||
const tagline = `Get a PocketBase backend for your next app in under 10 seconds.`
|
const tagline = `Get a PocketBase backend for your next app in under 10 seconds.`
|
||||||
</script>
|
</script>
|
||||||
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
<!-- Twitter Meta Tags -->
|
<!-- Twitter Meta Tags -->
|
||||||
<meta name="twitter:card" content="summary_large_image" />
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
<meta property="twitter:domain" content={PUBLIC_APP_DOMAIN} />
|
<meta property="twitter:domain" content={APP_DOMAIN} />
|
||||||
<meta property="twitter:url" content={baseUrl} />
|
<meta property="twitter:url" content={baseUrl} />
|
||||||
<meta name="twitter:title" content="PocketHost" />
|
<meta name="twitter:title" content="PocketHost" />
|
||||||
<meta name="twitter:description" content={tagline} />
|
<meta name="twitter:description" content={tagline} />
|
||||||
|
@ -20,9 +20,14 @@ export const envi = (name: PublicEnvName, _default: number) =>
|
|||||||
export const envb = (name: PublicEnvName, _default: boolean) =>
|
export const envb = (name: PublicEnvName, _default: boolean) =>
|
||||||
boolean(env(name, _default.toString()))
|
boolean(env(name, _default.toString()))
|
||||||
|
|
||||||
export const PUBLIC_APP_DB = env('PUBLIC_APP_DB', 'pockethost-central')
|
export const BLOG_DOMAIN = env('PUBLIC_BLOG_DOMAIN', 'pockethost.io')
|
||||||
export const PUBLIC_APP_DOMAIN = env('PUBLIC_APP_DOMAIN', 'pockethost.io')
|
export const APP_DOMAIN = env('PUBLIC_APP_DOMAIN', 'app.pockethost.io')
|
||||||
export const PUBLIC_HTTP_PROTOCOL = env('PUBLIC_HTTP_PROTOCOL', 'https')
|
export const EDGE_APEX_DOMAIN = env('PUBLIC_EDGE_APEX_DOMAIN', 'pockethost.io')
|
||||||
|
export const HTTP_PROTOCOL = env('PUBLIC_HTTP_PROTOCOL', 'https')
|
||||||
|
export const MOTHERSHIP_DOMAIN = env(
|
||||||
|
'PUBLIC_MOTHERSHIP_DOMAIN',
|
||||||
|
'pockethost-central.pockethost.io',
|
||||||
|
)
|
||||||
|
|
||||||
export const PUBLIC_DEBUG = envb('PUBLIC_DEBUG', dev)
|
export const PUBLIC_DEBUG = envb('PUBLIC_DEBUG', dev)
|
||||||
|
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
import { browser } from '$app/environment'
|
import { browser } from '$app/environment'
|
||||||
import {
|
import { HTTP_PROTOCOL, MOTHERSHIP_DOMAIN } from '$src/env'
|
||||||
PUBLIC_APP_DB,
|
|
||||||
PUBLIC_APP_DOMAIN,
|
|
||||||
PUBLIC_HTTP_PROTOCOL,
|
|
||||||
} from '$src/env'
|
|
||||||
import { logger } from '@pockethost/common'
|
import { logger } from '@pockethost/common'
|
||||||
import {
|
import {
|
||||||
createPocketbaseClient,
|
createPocketbaseClient,
|
||||||
@ -17,7 +13,7 @@ export const client = (() => {
|
|||||||
if (clientInstance) return clientInstance
|
if (clientInstance) return clientInstance
|
||||||
const { info } = logger()
|
const { info } = logger()
|
||||||
info(`Initializing pocketbase client`)
|
info(`Initializing pocketbase client`)
|
||||||
const url = `${PUBLIC_HTTP_PROTOCOL}://${PUBLIC_APP_DB}.${PUBLIC_APP_DOMAIN}`
|
const url = `${HTTP_PROTOCOL}://${MOTHERSHIP_DOMAIN}`
|
||||||
clientInstance = createPocketbaseClient({ url })
|
clientInstance = createPocketbaseClient({ url })
|
||||||
return clientInstance
|
return clientInstance
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { APP_DOMAIN } from '$src/env'
|
||||||
import { assertExists } from '@pockethost/common'
|
import { assertExists } from '@pockethost/common'
|
||||||
|
import { slide } from 'svelte/transition'
|
||||||
import Code from './Code.svelte'
|
import Code from './Code.svelte'
|
||||||
import UsageChart from './UsageChart.svelte'
|
import DangerZoneTitle from './Danger/DangerZoneTitle.svelte'
|
||||||
|
import Maintenance from './Danger/Maintenance.svelte'
|
||||||
|
import RenameInstance from './Danger/RenameInstance.svelte'
|
||||||
|
import VersionChange from './Danger/VersionChange.svelte'
|
||||||
import Ftp from './Ftpx.svelte'
|
import Ftp from './Ftpx.svelte'
|
||||||
import Logging from './Logging.svelte'
|
import Logging from './Logging.svelte'
|
||||||
import Secrets from './Secrets/Secrets.svelte'
|
import Secrets from './Secrets/Secrets.svelte'
|
||||||
|
import UsageChart from './UsageChart.svelte'
|
||||||
import { instance } from './store'
|
import { instance } from './store'
|
||||||
import { PUBLIC_APP_DOMAIN } from '$src/env'
|
|
||||||
import DangerZoneTitle from './Danger/DangerZoneTitle.svelte'
|
|
||||||
import RenameInstance from './Danger/RenameInstance.svelte'
|
|
||||||
import Maintenance from './Danger/Maintenance.svelte'
|
|
||||||
import VersionChange from './Danger/VersionChange.svelte'
|
|
||||||
import { slide } from 'svelte/transition'
|
|
||||||
|
|
||||||
$: ({ status, version, secondsThisMonth } = $instance)
|
$: ({ status, version, secondsThisMonth } = $instance)
|
||||||
|
|
||||||
@ -43,7 +43,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a
|
<a
|
||||||
href="https://{$instance.subdomain}.{PUBLIC_APP_DOMAIN}/_"
|
href="https://{$instance.subdomain}.{APP_DOMAIN}/_"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
class="btn btn-primary"
|
class="btn btn-primary"
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import CodeSample from '$components/CodeSample.svelte'
|
import CodeSample from '$components/CodeSample.svelte'
|
||||||
import { PUBLIC_APP_DOMAIN, PUBLIC_HTTP_PROTOCOL } from '$src/env'
|
|
||||||
import { instance } from './store'
|
|
||||||
import Card from '$components/cards/Card.svelte'
|
import Card from '$components/cards/Card.svelte'
|
||||||
import CardHeader from '$components/cards/CardHeader.svelte'
|
import CardHeader from '$components/cards/CardHeader.svelte'
|
||||||
|
import { EDGE_APEX_DOMAIN, HTTP_PROTOCOL } from '$src/env'
|
||||||
|
import { instance } from './store'
|
||||||
|
|
||||||
let installSnippet = `npm i pocketbase`
|
let installSnippet = `npm i pocketbase`
|
||||||
|
|
||||||
let connectionSnippet = ''
|
let connectionSnippet = ''
|
||||||
$: {
|
$: {
|
||||||
const url = `${PUBLIC_HTTP_PROTOCOL}://${$instance.subdomain}.${PUBLIC_APP_DOMAIN}`
|
const url = `${HTTP_PROTOCOL}://${$instance.subdomain}.${EDGE_APEX_DOMAIN}`
|
||||||
connectionSnippet = `import PocketBase from 'pocketbase';\n\nconst url = '${url}'\nconst client = new PocketBase(url)`
|
connectionSnippet = `import PocketBase from 'pocketbase';\n\nconst url = '${url}'\nconst client = new PocketBase(url)`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Card from '$components/cards/Card.svelte'
|
import Card from '$components/cards/Card.svelte'
|
||||||
import CardHeader from '$components/cards/CardHeader.svelte'
|
import CardHeader from '$components/cards/CardHeader.svelte'
|
||||||
|
import { BLOG_DOMAIN, HTTP_PROTOCOL } from '$src/env'
|
||||||
import { client } from '$src/pocketbase'
|
import { client } from '$src/pocketbase'
|
||||||
import { instance } from '../store'
|
import { instance } from '../store'
|
||||||
|
|
||||||
@ -20,7 +21,9 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Card>
|
<Card>
|
||||||
<CardHeader documentation="https://pockethost.io/docs/usage/maintenance">
|
<CardHeader
|
||||||
|
documentation={`${HTTP_PROTOCOL}://${BLOG_DOMAIN}/docs/usage/maintenance`}
|
||||||
|
>
|
||||||
Maintenance Mode
|
Maintenance Mode
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Card from '$components/cards/Card.svelte'
|
import Card from '$components/cards/Card.svelte'
|
||||||
import CardHeader from '$components/cards/CardHeader.svelte'
|
import CardHeader from '$components/cards/CardHeader.svelte'
|
||||||
|
import { BLOG_DOMAIN, HTTP_PROTOCOL } from '$src/env'
|
||||||
import { client } from '$src/pocketbase'
|
import { client } from '$src/pocketbase'
|
||||||
import { instance } from '../store'
|
import { instance } from '../store'
|
||||||
|
|
||||||
@ -36,7 +37,9 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Card>
|
<Card>
|
||||||
<CardHeader documentation="https://pockethost.io/docs/usage/rename-instance">
|
<CardHeader
|
||||||
|
documentation={`${HTTP_PROTOCOL}://${BLOG_DOMAIN}/docs/usage/rename-instance`}
|
||||||
|
>
|
||||||
Rename Instance
|
Rename Instance
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Card from '$components/cards/Card.svelte'
|
import Card from '$components/cards/Card.svelte'
|
||||||
import CardHeader from '$components/cards/CardHeader.svelte'
|
import CardHeader from '$components/cards/CardHeader.svelte'
|
||||||
|
import { BLOG_DOMAIN, HTTP_PROTOCOL } from '$src/env'
|
||||||
import { client } from '$src/pocketbase'
|
import { client } from '$src/pocketbase'
|
||||||
import { instance } from '../store'
|
import { instance } from '../store'
|
||||||
|
|
||||||
@ -31,7 +32,9 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Card>
|
<Card>
|
||||||
<CardHeader documentation="https://pockethost.io/docs/usage/upgrading">
|
<CardHeader
|
||||||
|
documentation={`${HTTP_PROTOCOL}://${BLOG_DOMAIN}/docs/usage/upgrading`}
|
||||||
|
>
|
||||||
Version Change
|
Version Change
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
import CodeSample from '$components/CodeSample.svelte'
|
import CodeSample from '$components/CodeSample.svelte'
|
||||||
import Card from '$components/cards/Card.svelte'
|
import Card from '$components/cards/Card.svelte'
|
||||||
import CardHeader from '$components/cards/CardHeader.svelte'
|
import CardHeader from '$components/cards/CardHeader.svelte'
|
||||||
import { PUBLIC_APP_DOMAIN } from '$src/env'
|
import { BLOG_DOMAIN, EDGE_APEX_DOMAIN, HTTP_PROTOCOL } from '$src/env'
|
||||||
import { client } from '$src/pocketbase'
|
import { client } from '$src/pocketbase'
|
||||||
import { bash } from 'svelte-highlight/languages'
|
import { bash } from 'svelte-highlight/languages'
|
||||||
|
|
||||||
@ -13,13 +13,13 @@
|
|||||||
if (!email) {
|
if (!email) {
|
||||||
throw new Error(`Email expected here`)
|
throw new Error(`Email expected here`)
|
||||||
}
|
}
|
||||||
const ftpUrl = `ftp://${encodeURIComponent(
|
const ftpUrl = `ftp://${encodeURIComponent(email)}@ftp.${EDGE_APEX_DOMAIN}`
|
||||||
email,
|
|
||||||
)}@ftp.sfo-1.${PUBLIC_APP_DOMAIN}`
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Card>
|
<Card>
|
||||||
<CardHeader documentation="https://pockethost.io/docs/usage/ftp">
|
<CardHeader
|
||||||
|
documentation={`${HTTP_PROTOCOL}://${BLOG_DOMAIN}/docs/usage/ftp`}
|
||||||
|
>
|
||||||
FTP Access
|
FTP Access
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Card from '$components/cards/Card.svelte'
|
import Card from '$components/cards/Card.svelte'
|
||||||
import CardHeader from '$components/cards/CardHeader.svelte'
|
import CardHeader from '$components/cards/CardHeader.svelte'
|
||||||
import { PUBLIC_APP_DOMAIN } from '$src/env'
|
import { EDGE_APEX_DOMAIN } from '$src/env'
|
||||||
import { handleCreateNewInstance } from '$util/database'
|
import { handleCreateNewInstance } from '$util/database'
|
||||||
import { generateSlug } from 'random-word-slugs'
|
import { generateSlug } from 'random-word-slugs'
|
||||||
import { slide } from 'svelte/transition'
|
import { slide } from 'svelte/transition'
|
||||||
@ -64,7 +64,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h4 class="text-center font-bold py-12">
|
<h4 class="text-center font-bold py-12">
|
||||||
https://{instanceName}.{PUBLIC_APP_DOMAIN}
|
https://{instanceName}.{EDGE_APEX_DOMAIN}
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
{#if formError}
|
{#if formError}
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
<script>
|
<script>
|
||||||
import { globalInstancesStore } from '$util/stores'
|
|
||||||
import { fly } from 'svelte/transition'
|
|
||||||
import { backOut } from 'svelte/easing'
|
|
||||||
import { PUBLIC_APP_DOMAIN } from '$src/env'
|
|
||||||
import ProvisioningStatus from '$components/ProvisioningStatus.svelte'
|
|
||||||
import Card from '$components/cards/Card.svelte'
|
import Card from '$components/cards/Card.svelte'
|
||||||
import CardHeader from '$components/cards/CardHeader.svelte'
|
import CardHeader from '$components/cards/CardHeader.svelte'
|
||||||
|
import { EDGE_APEX_DOMAIN, HTTP_PROTOCOL } from '$src/env'
|
||||||
|
import { globalInstancesStore } from '$util/stores'
|
||||||
|
|
||||||
// Convert the object of objects into an array of objects
|
// Convert the object of objects into an array of objects
|
||||||
const allInstancesArray = Object.values($globalInstancesStore)
|
const allInstancesArray = Object.values($globalInstancesStore)
|
||||||
@ -55,7 +52,7 @@
|
|||||||
|
|
||||||
<a
|
<a
|
||||||
class="btn btn-secondary"
|
class="btn btn-secondary"
|
||||||
href={`https://${instance.subdomain}.${PUBLIC_APP_DOMAIN}/_`}
|
href={`${HTTP_PROTOCOL}://${instance.subdomain}.${EDGE_APEX_DOMAIN}/_`}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
|
Loading…
x
Reference in New Issue
Block a user