Initial commit: MOPC platform with Docker deployment setup

Full Next.js 15 platform with tRPC, Prisma, PostgreSQL, NextAuth.
Includes production Dockerfile (multi-stage, port 7600), docker-compose
with registry-based image pull, Gitea Actions CI workflow, nginx config
for portal.monaco-opc.com, deployment scripts, and DEPLOYMENT.md guide.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-30 13:41:32 +01:00
commit a606292aaa
290 changed files with 70691 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
import { Loader2 } from 'lucide-react'
import { cn } from '@/lib/utils'
interface LoadingSpinnerProps {
size?: 'sm' | 'md' | 'lg'
className?: string
}
export function LoadingSpinner({ size = 'md', className }: LoadingSpinnerProps) {
const sizeClasses = {
sm: 'h-4 w-4',
md: 'h-6 w-6',
lg: 'h-8 w-8',
}
return (
<Loader2
className={cn('animate-spin text-primary', sizeClasses[size], className)}
/>
)
}
interface FullPageLoaderProps {
text?: string
}
export function FullPageLoader({ text = 'Loading...' }: FullPageLoaderProps) {
return (
<div className="flex min-h-[400px] flex-col items-center justify-center gap-4">
<LoadingSpinner size="lg" />
<p className="text-sm text-muted-foreground">{text}</p>
</div>
)
}