From fc42a1c13842aee49ca1aee0c928165264c608f5 Mon Sep 17 00:00:00 2001 From: openhands Date: Fri, 24 Jul 2026 14:37:18 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20update=20README=20for=20v1.0.1=20?= =?UTF-8?q?=E2=80=94=20PM2=20deploy,=20premium=20features,=20production-re?= =?UTF-8?q?ady?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1a5ac713..a2ab3998 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# EpicNext-CMS +# EpicNext-CMS v1.0.1 A modern, high-performance content management system for Habbo hotel emulators, built on **Next.js 16** (App Router) with **Prisma 7** and **React 19**. Designed to integrate seamlessly with Polaris / Arcturus Morningstar MySQL/MariaDB databases. -Features a full public-facing website, an administrative panel, NextAuth authentication (argon2id/bcrypt with MD5-to-argon2id upgrade), real-time RCON communication with the emulator, Server-Sent Events for live radio data, smooth page transitions, and extensive extensibility. +Features a premium animated homepage (typewriter hero, floating orbs, scroll counters), a full admin panel, NextAuth authentication (argon2id/bcrypt with MD5-to-argon2id upgrade), real-time RCON communication, Server-Sent Events for live radio data, smooth page transitions, and PM2 production deployment. --- @@ -98,6 +98,27 @@ Open `http://localhost:3000` in your browser. --- +## Production Deployment (PM2) + +```bash +pnpm build +pm2 start pnpm --name "next" -- start +pm2 save +``` + +Restart after updates: + +```bash +git pull +pnpm install +pnpm build +pm2 restart next +``` + +The CMS runs behind an nginx reverse proxy on the default port 3000. Static assets (media uploads) are persisted via `/api/media/*` and survive rebuilds. + +--- + ## Scripts | Command | Description | @@ -125,13 +146,14 @@ Open `http://localhost:3000` in your browser. | **Server-Sent Events** | Real-time radio now-playing & listeners via SSE (no polling) | | **Redis Caching** | Caches API responses (home, radio config) up to 30s in Redis | | **Bundle Analyzer** | Run `pnpm analyze` to visualize and optimize bundle sizes | -| **AnimatePresence** | Framer Motion exit animations on modals, dialogs, and lightbox | | **RCON (TCP Socket)** | Live commands to the emulator (credits, badges, kick, ban) | | **Streaming & Suspense** | Next.js App Router streaming for fast page loads | | **Automatic Image Optimization** | `next/image` with Sharp for resizing and WebP/AVIF | -| **CSS-based Animations** | Base UI components use `data-open`/`data-closed` CSS animations | +| **CSS-based Animations** | `input-glow`, `btn-shine`, `Reveal` scroll animations, floating orbs | | **Compression** | Gzip compression enabled on all responses | | **Stale Times** | Optimized router cache (30s dynamic, 180s static) | +| **PWA** | Service worker with skip-waiting, stale CSS chunk recovery | +| **Biome** | Fast linting and formatting (replaces ESLint + Prettier) | --- @@ -158,7 +180,7 @@ Open `http://localhost:3000` in your browser. │ │ ├── cache.ts # In-memory cache fallback │ │ ├── motion.ts # Framer Motion animation variants │ │ └── use-event-source.ts # React hook for SSE subscriptions -│ ├── messages/ # i18n translations (en, nl, de, fr, es, it) +│ ├── messages/ # i18n translations (en, nl, de, fr, es, it, pt, da, no, sv) │ └── env.ts # Zod-validated environment schema ├── public/ │ ├── assets/ # Images, icons, fonts @@ -228,7 +250,7 @@ Optional OpenAI-powered moderation for comments and guestbook posts. Set `OPENAI ```bash pnpm dev # Start with hot reload pnpm typecheck # Type check all files -pnpm test # Run test suite (312+ tests) +pnpm test # Run test suite pnpm analyze # Build and analyze bundle sizes pnpm biome:check # Lint and format ```