This commit is contained in:
Lars Behrends
2026-05-22 09:57:56 +02:00
parent b0cb8ca0a2
commit 901b342871
6 changed files with 75 additions and 5 deletions
+4 -2
View File
@@ -3,8 +3,10 @@
# Used for self-referential links, OAuth callbacks, and API endpoints.
APP_URL="MY_APP_URL"
# Backend API URL
VITE_API_URL="http://192.168.1.102:6400"
# Backend API URL (Omnyx Backend)
# Default: http://localhost:3001 for local dev
# Change this if backend runs on different host/port
VITE_API_URL="http://localhost:3001"
# Importer Configurations
# XBVR Importer
+17
View File
@@ -378,6 +378,23 @@ export default defineConfig({
- Check tsconfig.json configuration
- Use `npm run type-check` for type checking
## Task Management
### Todo-Listen System
Alle AIs MÜSSEN Todo-Listen für komplexe Aufgaben verwenden:
- **Erstellung**: Bei mehreren Schritten oder komplexen Aufgaben eine Todo-Liste erstellen
- **Aktualisierung**: Fortschritt regelmäßig aktualisieren (in_progress, completed)
- **Priorisierung**: Aufgaben mit high/medium/low priorisieren
- **Dokumentation**: Wichtige Entscheidungen in der Todo festhalten
Beispiel Workflow:
1. Todo-Liste am Anfang erstellen mit allen geplanten Schritten
2. Aktuellen Schritt als `in_progress` markieren
3. Erledigte Schritte als `completed` markieren
4. Bei neuen Erkenntnissen die Liste aktualisieren
## Reference Resources
- [React Official Documentation](https://react.dev/)
+51
View File
@@ -0,0 +1,51 @@
# Multi-stage build for Omnyx Frontend
# Stage 1: Build
FROM node:20-alpine AS builder
WORKDIR /app
# Copy package files
COPY package*.json ./
# Install dependencies
RUN npm ci
# Copy source code
COPY . .
# Build the application
RUN npm run build
# Stage 2: Production
FROM nginx:alpine AS production
# Copy built files to nginx
COPY --from=builder /app/dist /usr/share/nginx/html
# Copy nginx configuration
RUN echo 'server { \
listen 3000; \
server_name localhost; \
location / { \
root /usr/share/nginx/html; \
index index.html; \
try_files $uri $uri/ /index.html; \
} \
location /api { \
proxy_pass http://backend:3001; \
proxy_http_version 1.1; \
proxy_set_header Upgrade $http_upgrade; \
proxy_set_header Connection "upgrade"; \
proxy_set_header Host $host; \
proxy_set_header X-Real-IP $remote_addr; \
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; \
proxy_set_header X-Forwarded-Proto $scheme; \
} \
}' > /etc/nginx/conf.d/default.conf
# Expose port
EXPOSE 3000
# Start nginx
CMD ["nginx", "-g", "daemon off;"]
+1 -1
View File
@@ -2,7 +2,7 @@ import { Staff, Media } from '../../types';
import { ApiResponse, PaginatedResponse, ApiCastItem, CreateCastInput, UpdateCastInput } from './types';
import { convertApiCastToStaff, convertApiToMedia } from './converters';
const BASE_URL = import.meta.env.VITE_API_URL;
const BASE_URL = import.meta.env.VITE_API_URL || '';
export async function fetchAllCast(page: number = 1, limit: number = 100000): Promise<Staff[]> {
try {
+1 -1
View File
@@ -2,7 +2,7 @@ import { Media } from '../../types';
import { ApiResponse, PaginatedResponse, ApiMediaItem, CreateMediaInput, UpdateMediaInput } from './types';
import { convertApiToMedia } from './converters';
const BASE_URL = import.meta.env.VITE_API_URL;
const BASE_URL = import.meta.env.VITE_API_URL || '';
export async function fetchAllMedia(page: number = 1, limit: number = 10000): Promise<Media[]> {
try {
+1 -1
View File
@@ -2,7 +2,7 @@ import { UserSettings } from '../../types';
import { ApiResponse, ApiSettingsItem, CreateSettingsInput, UpdateSettingsInput } from './types';
import { convertApiToSettings, convertSettingsToApi } from './converters';
const BASE_URL = import.meta.env.VITE_API_URL;
const BASE_URL = import.meta.env.VITE_API_URL || '';
export async function fetchSettings(): Promise<UserSettings | null> {
try {