Skip to content

Commit 7f69b82

Browse files
tweak coolify env grabber and ensure all head links are https (#55)
* refactor: simplify getCoolifyURL function and update usage in config * fix: update site configuration to use getCoolifyURL function * fix: update environment variable reference in getCoolifyURL function * fix: update COOLIFY_DOMAIN reference to COOLIFY_FQDN in getCoolifyURL function and restore astro.config.mts * fix: ensure getCoolifyURL fallback to default site URL if undefined * fix: ensure URLs are converted to HTTPS in Head.astro component
1 parent 3dfb296 commit 7f69b82

File tree

3 files changed

+23
-27
lines changed

3 files changed

+23
-27
lines changed

www/astro-config-utils.ts

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,3 @@
1-
function stripHTTPandHTTPS(url: string) {
2-
return url.replace('http://', '').replace('https://', '');
3-
}
4-
5-
function stripTrailingSlash(url: string) {
6-
return url.replace(/\/$/, '');
7-
}
8-
9-
function setHTTP(url: string) {
10-
return `http://${url}`;
11-
}
12-
131
function setHTTPS(url: string) {
142
return `https://${url}`;
153
}
@@ -26,17 +14,14 @@ function splitListAndSelectFirst(list: string) {
2614
*
2715
* @see https://coolify.io/docs/knowledge-base/environment-variables#predefined-variables
2816
*/
29-
export const getCoolifyURL = (returnHttps?: boolean) => {
30-
const urlList = process.env.COOLIFY_FQDN;
17+
export const getCoolifyURL = () => {
18+
const urlList = process.env.COOLIFY_FQDN; // should be a comma-separated list of URLs www.studiocms.dev,studiocms.dev
3119
if (!urlList) {
3220
return undefined;
3321
}
3422
const url = splitListAndSelectFirst(urlList);
35-
const strippedUrl = stripTrailingSlash(stripHTTPandHTTPS(url));
36-
if (returnHttps) {
37-
return setHTTPS(strippedUrl);
38-
}
39-
return setHTTP(strippedUrl);
23+
const strippedUrl = url;
24+
return setHTTPS(strippedUrl);
4025
};
4126

4227
export default getCoolifyURL;
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import db from '@astrojs/db';
22
import node from '@astrojs/node';
33
import cFetch from '@studiocms/cfetch';
4+
import getCoolifyURL from './astro-config-utils';
45
import { defineConfig } from 'astro/config';
56
import studiocms from 'studiocms';
6-
import getCoolifyURL from './astro-config-utils';
77

88
// https://astro.build/config
99
export default defineConfig({
1010
output: 'server',
11-
site: getCoolifyURL(true) || 'https://studiocms.dev',
11+
site: getCoolifyURL() || 'https://studiocms.dev',
1212
image: {
1313
remotePatterns: [
1414
{

www/src/components/Head.astro

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,16 @@ interface Props {
1515
videoPosterImage?: string;
1616
}
1717
18-
const OgBanner = new URL('/og.png', Astro.url);
18+
function convertToHTTPS(url: URL) {
19+
if (url.protocol === 'http:') {
20+
url.protocol = 'https:';
21+
}
22+
return url;
23+
}
24+
25+
const safeUrl = convertToHTTPS(Astro.url);
26+
27+
const OgBanner = new URL('/og.png', safeUrl);
1928
2029
const RSSFeed = new URL('rss.xml', Astro.site);
2130
@@ -29,6 +38,8 @@ const {
2938
videoPosterImage,
3039
} = Astro.props;
3140
41+
const safeOgImage = convertToHTTPS(ogImage);
42+
3243
const path = Astro.originPathname;
3344
---
3445

@@ -46,15 +57,15 @@ const path = Astro.originPathname;
4657

4758
<meta property='og:title' content={title} />
4859
<meta property='og:description' content={desc} />
49-
<meta property='og:image' content={ogImage} />
50-
<meta property='og:url' content={Astro.url} />
60+
<meta property='og:image' content={safeOgImage} />
61+
<meta property='og:url' content={safeUrl} />
5162
<meta property='og:type' content='website' />
5263

5364
<meta name='twitter:card' content='summary_large_image' />
54-
<meta name="twitter:url" content={Astro.url} />
65+
<meta name="twitter:url" content={safeUrl} />
5566
<meta name='twitter:title' content={title} />
5667
<meta name='twitter:description' content={desc} />
57-
<meta name='twitter:image' content={ogImage} />
68+
<meta name='twitter:image' content={safeOgImage} />
5869
<meta name='twitter:creator' content='withstudiocms' />
5970
<meta name='twitter:site' content='withstudiocms' />
6071

@@ -71,7 +82,7 @@ const path = Astro.originPathname;
7182
<meta property="article:author" content={author.name} />
7283
)}
7384

74-
<link rel="canonical" href={Astro.url} />
85+
<link rel="canonical" href={safeUrl} />
7586
<link rel="icon" href="https://cdn.studiocms.dev/favicon-light.png" type="image/png" media="(prefers-color-scheme: dark)" />
7687
<link rel="icon" href="https://cdn.studiocms.dev/favicon-dark.png" type="image/png" media="(prefers-color-scheme: light)" />
7788
<link rel="icon" href="https://cdn.studiocms.dev/favicon.svg" type="image/svg+xml" />

0 commit comments

Comments
 (0)