Expose externally

This commit is contained in:
2026-06-19 10:20:15 -04:00
parent 58a6a8acce
commit b8d7cdddcd
3 changed files with 26 additions and 13 deletions
+2 -2
View File
@@ -3,8 +3,8 @@ import { defineConfig } from 'astro/config';
export default defineConfig({ export default defineConfig({
output: 'static', output: 'static',
trailingSlash: 'always', trailingSlash: 'always',
site: process.env.PUBLIC_SITE_URL ?? 'https://swansea-airport.wales', site: process.env.PUBLIC_SITE_URL ?? 'https://egfhtest.pattinson.org',
server: { server: {
allowedHosts: ['docker', 'localhost'], allowedHosts: ['docker', 'docker.pattinson.org', 'localhost', 'egfhtest.pattinson.org'],
}, },
}); });
+12 -4
View File
@@ -38,13 +38,15 @@ services:
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 10 retries: 10
ports:
- "${DIRECTUS_PORT}:8055"
depends_on: depends_on:
db: db:
condition: service_healthy condition: service_healthy
volumes: volumes:
- directus_uploads:/directus/uploads - directus_uploads:/directus/uploads
networks:
- default
- webapps
directus-bootstrap: directus-bootstrap:
image: node:22-alpine image: node:22-alpine
@@ -79,16 +81,22 @@ services:
directus-bootstrap: directus-bootstrap:
condition: service_completed_successfully condition: service_completed_successfully
restart: unless-stopped restart: unless-stopped
ports:
- "${FRONTEND_PORT}:80"
volumes: volumes:
- ./:/app - ./:/app
- ./public/images:/app/public/images - ./public/images:/app/public/images
- web_node_modules:/app/node_modules - web_node_modules:/app/node_modules
- web_astro:/app/.astro - web_astro:/app/.astro
networks:
- default
- webapps
volumes: volumes:
db_data: db_data:
directus_uploads: directus_uploads:
web_node_modules: web_node_modules:
web_astro: web_astro:
networks:
default:
webapps:
external: true
+12 -7
View File
@@ -16,18 +16,23 @@ function resolveEventImageSource(realimage: EventItem['realimage']): string | nu
const candidate = typeof realimage === 'string' ? realimage : realimage.id; const candidate = typeof realimage === 'string' ? realimage : realimage.id;
if (!candidate) return null; if (!candidate) return null;
if (candidate.startsWith('http://') || candidate.startsWith('https://') || candidate.startsWith('/')) { const configuredDirectusPublicUrl = process.env.DIRECTUS_PUBLIC_URL;
return candidate;
}
const configuredPublicUrl = process.env.DIRECTUS_PUBLIC_URL;
const directusPort = process.env.DIRECTUS_PORT ?? '8066'; const directusPort = process.env.DIRECTUS_PORT ?? '8066';
const localFallbackUrl = `${Astro.url.protocol}//${Astro.url.hostname}:${directusPort}`; const localFallbackUrl = `${Astro.url.protocol}//${Astro.url.hostname}:${directusPort}`;
const directusBaseUrl = const directusBaseUrl =
configuredPublicUrl && !configuredPublicUrl.includes('example.com') configuredDirectusPublicUrl && !configuredDirectusPublicUrl.includes('example.com')
? configuredPublicUrl ? configuredDirectusPublicUrl
: localFallbackUrl; : localFallbackUrl;
if (candidate.startsWith('/')) {
return new URL(candidate, directusBaseUrl).toString();
}
if (candidate.startsWith('http://') || candidate.startsWith('https://')) {
const candidateUrl = new URL(candidate);
return candidateUrl.pathname.startsWith('/assets/') ? new URL(candidateUrl.pathname, directusBaseUrl).toString() : candidate;
}
return new URL(`/assets/${candidate}`, directusBaseUrl).toString(); return new URL(`/assets/${candidate}`, directusBaseUrl).toString();
} }