6 changed files with 27 additions and 1 deletions
+3
View File
@@ -12,6 +12,9 @@ COPY . .
RUN composer install --no-dev --optimize-autoloader RUN composer install --no-dev --optimize-autoloader
ARG APP_VERSION=Dev
ENV VITE_APP_VERSION=$APP_VERSION
RUN npm install && npm run build && rm -f public/hot RUN npm install && npm run build && rm -f public/hot
COPY docker/nginx.conf /etc/nginx/nginx.conf COPY docker/nginx.conf /etc/nginx/nginx.conf
@@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
withDefaults(defineProps<{ withDefaults(defineProps<{
title: string, title?: string,
wide?: boolean, wide?: boolean,
blurb?: string blurb?: string
}>(), { wide: false }) }>(), { wide: false })
@@ -4,12 +4,14 @@ import { SharedProps } from "@/Types/types"
const page = usePage<SharedProps>().props const page = usePage<SharedProps>().props
const year = new Date().getFullYear() const year = new Date().getFullYear()
const version = __APP_VERSION__
</script> </script>
<template> <template>
<footer class="glass"> <footer class="glass">
<span class="footer-copyright"> <span class="footer-copyright">
&copy; {{ year }} FlightsGoneBy &copy; {{ year }} FlightsGoneBy
<span class="footer-version">v{{ version }}</span>
</span> </span>
<span class="footer-links"> <span class="footer-links">
@@ -73,4 +75,9 @@ footer {
font-size: 0.6rem; font-size: 0.6rem;
} }
} }
.footer-version {
opacity: 0.8;
margin-left: 0.4em;
}
</style> </style>
+1
View File
@@ -2,3 +2,4 @@
/// <reference types="vite-plugin-pwa/client" /> /// <reference types="vite-plugin-pwa/client" />
declare module '*.css' declare module '*.css'
declare const __APP_VERSION__: string
+1
View File
@@ -9,6 +9,7 @@
<link rel="icon" type="image/x-icon" href="{{ asset('img/favicons/favicon.png') }}"> <link rel="icon" type="image/x-icon" href="{{ asset('img/favicons/favicon.png') }}">
<!-- Fonts --> <!-- Fonts -->
<meta name="description" content="FlightsGoneBy is the ultimate flight diary — log every flight, earn achievements, visualise your travels on an interactive map, and share your stats with friends.">
<link rel="preconnect" href="https://fonts.bunny.net"> <link rel="preconnect" href="https://fonts.bunny.net">
<link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" /> <link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
+14
View File
@@ -4,8 +4,22 @@ import vue from '@vitejs/plugin-vue';
import path from 'path'; import path from 'path';
import vuetify from "vite-plugin-vuetify"; import vuetify from "vite-plugin-vuetify";
import { VitePWA } from 'vite-plugin-pwa'; import { VitePWA } from 'vite-plugin-pwa';
import { execSync } from 'child_process'
function getAppVersion(): string {
try {
// Prefer a tag if one points at HEAD, else fall back to short hash
return execSync('git describe --tags --always --dirty').toString().trim()
} catch {
return 'Unknown'
}
}
export default defineConfig({ export default defineConfig({
define: {
__APP_VERSION__: JSON.stringify(process.env.VITE_APP_VERSION ?? 'Dev'),
},
plugins: [ plugins: [
laravel({ laravel({
input: 'resources/js/app.ts', input: 'resources/js/app.ts',