feat: initialize dashboard with bug reporting functionality

- Add HTML structure for the dashboard application.
- Create database schema for bug reports and associated files.
- Implement database connection using Drizzle ORM with MySQL.
- Add utility functions for class names, byte formatting, and date formatting.
- Create error handling page for the application.
- Implement layout and main page structure with navigation and report listing.
- Add server-side logic for loading reports with pagination and filtering.
- Create report detail page with metadata, description, and file attachments.
- Implement API endpoints for downloading reports and files, refreshing report counts, and managing report statuses.
- Set up SvelteKit configuration and TypeScript support.
- Configure Vite for SvelteKit and Tailwind CSS integration.
- Update Docker Compose configuration for the dashboard service.
- Create systemd service for managing the dashboard server.
This commit is contained in:
Flavio Fois
2026-02-14 23:01:08 +01:00
parent c2052595cb
commit 492db8fcf8
28 changed files with 25 additions and 1 deletions

View File

@@ -12,6 +12,7 @@ ADMIN_KEY=change_me_admin_key
# Server # Server
PORT=3000 PORT=3000
DASHBOARD_PORT=3001
# Rate Limiting # Rate Limiting
RATE_LIMIT_MAX=5 RATE_LIMIT_MAX=5

7
server/.gitignore vendored
View File

@@ -2,3 +2,10 @@ node_modules/
.env .env
dist/ dist/
*.log *.log
# Dashboard
dashboard/node_modules/
dashboard/.svelte-kit/
dashboard/build/
dashboard/.env
dashboard/bun.lock

View File

@@ -37,7 +37,7 @@ services:
condition: service_healthy condition: service_healthy
dashboard: dashboard:
build: ../dashboard build: ./dashboard
ports: ports:
- "${DASHBOARD_PORT:-3001}:3000" - "${DASHBOARD_PORT:-3001}:3000"
environment: environment:

View File

@@ -0,0 +1,16 @@
[Unit]
Description=EMLy Bug Report Server (Docker Compose)
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/opt/emly-server
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
Restart=on-failure
TimeoutStartSec=120
[Install]
WantedBy=multi-user.target