diff --git a/status-web/app.vue b/status-web/app.vue
index a925194..833658e 100644
--- a/status-web/app.vue
+++ b/status-web/app.vue
@@ -1,37 +1,36 @@
diff --git a/status-web/nuxt.config.ts b/status-web/nuxt.config.ts
index 3578723..18c57c9 100644
--- a/status-web/nuxt.config.ts
+++ b/status-web/nuxt.config.ts
@@ -1,42 +1,55 @@
// https://nuxt.com/docs/api/configuration/nuxt-config
-import Aura from '@primeuix/themes/aura';
+import Aura from '@primeuix/themes/aura'
export default defineNuxtConfig({
- compatibilityDate: '2025-07-15',
- devtools: {enabled: true},
modules: [
'@nuxt/eslint',
'@nuxt/image',
'@nuxt/fonts',
'@primevue/nuxt-module',
],
- eslint: {
- checker: true,
+ ssr: true,
+ devtools: { enabled: true },
- config: {
- stylistic: true
- }
+ runtimeConfig: {
+ apiHost: '',
},
- primevue: {
- autoImport: false,
- options: {
- ripple: false,
- inputVariant: 'filled',
- theme: {
- preset: Aura,
- }
- }
+ routeRules: {
+ '/api/**': {
+ proxy: {
+ to: process.env.NUXT_API_HOST + '/api/**',
+ },
+ },
},
+ compatibilityDate: '2025-07-15',
vite: {
css: {
preprocessorOptions: {
scss: {
additionalData: `@forward '~/assets/global';
- @use '~/assets/variables' as *;`
- }
- }
- }
- }
+ @use '~/assets/variables' as *;`,
+ },
+ },
+ },
+ },
+ eslint: {
+ checker: true,
+
+ config: {
+ stylistic: true,
+ },
+ },
+
+ primevue: {
+ autoImport: true,
+ options: {
+ ripple: false,
+ inputVariant: 'filled',
+ theme: {
+ preset: Aura,
+ },
+ },
+ },
})
diff --git a/status-web/types/response/publicServices.ts b/status-web/types/response/publicServices.ts
new file mode 100644
index 0000000..42541a8
--- /dev/null
+++ b/status-web/types/response/publicServices.ts
@@ -0,0 +1,8 @@
+import type { ServiceStatus } from '~/types/response/services'
+
+export interface PublicService {
+ name: string
+ description: string | null
+ statuses: ServiceStatus[]
+ uptime: number
+}
diff --git a/status-web/types/response/services.ts b/status-web/types/response/services.ts
new file mode 100644
index 0000000..b0711b2
--- /dev/null
+++ b/status-web/types/response/services.ts
@@ -0,0 +1,11 @@
+export interface ServiceStatus {
+ id: number
+ status: 'ok' | 'warn' | 'failed' | 'unchecked'
+ description: string | null
+ createdAt: string
+}
+
+// todo
+export interface Service {
+
+}
diff --git a/status-web/view/public/ServicesView.vue b/status-web/view/public/ServicesView.vue
index 8aebe45..1f22396 100644
--- a/status-web/view/public/ServicesView.vue
+++ b/status-web/view/public/ServicesView.vue
@@ -12,7 +12,13 @@
- 313
+
+ {{ service.uptime }}
+
@@ -20,14 +26,14 @@
-
- {{ moment(service.statuses[service.statuses.length - 1].created_at).fromNow() }}
+
+ {{ moment(service.statuses[0].createdAt).fromNow() }}
@@ -44,273 +50,36 @@