# atomcms-next AtomCMS (Laravel) converted to **Next.js 16** (App Router) + **Prisma 7** against the same Arcturus-emulator MySQL/MariaDB database. Auth via NextAuth (argon2id/bcrypt + md5→argon2id upgrade), RCON to the emulator, full public site + admin panel. ## Try it now (no database) The dev/preview server is already running — open: > **http://localhost:3000** Public pages render with fallback defaults (empty data). Login / register / admin need a database (below). ## Try it for real (your AtomCMS database) Point it at your live (or a copy of your) AtomCMS database to log in with real accounts and see real data: 1. Edit `atomcms-next/.env`: ```dotenv DATABASE_URL=mysql://USER:PASSWORD@HOST:3306/DBNAME DATABASE_CONNECT_TIMEOUT_MS=10000 AUTH_SECRET=any-long-random-string-at-least-32-chars HOTEL_NAME=YourHotel # Optional emulator link (for RCON: give credits, ban, motto, disconnect): RCON_HOST=127.0.0.1 RCON_PORT=3001 ``` 2. Restart the server (`pnpm -C atomcms-next start`, or `pnpm dev`). 3. Log in at `/login` with any existing account. Staff (rank ≥ `min_staff_rank`, default 7) get the **/admin** panel. New users can `/register`. It reads the schema you already have — no migrations are run against the emulator tables (introspect/conform only). `prisma generate` is already done; if you add tables, `pnpm -C atomcms-next prisma:generate`. ## Run it yourself ```bash cd atomcms-next pnpm install # already done pnpm dev # dev server (hot reload) on :3000 # or: pnpm build && pnpm start # production pnpm typecheck # tsc --noEmit pnpm test # vitest (unit tests) ``` ## What's built - **Public:** home, news (+comments/reactions), shop, marketplace, community, rankings, staff, photos, guilds, rares, leaderboard, help (+tickets), profile `/u/` (badges/photos/guestbook), client launcher `/client` (SSO ticket), login / register / logout, settings, voucher redeem. - **Admin (`/admin`, staff-gated):** users (give currency/motto/rank/alert/kick via RCON), rooms, articles, catalog, vouchers, badges, radio, achievements, rare-values, photos, bans, applications, word-filter, IP, logs, teams, housekeeping, permissions, emulator config, email templates, calendar, subscriptions, CMS settings. - **Core:** Prisma data layer (190 models), NextAuth auth core (byte-compatible argon2id/bcrypt/md5 + SSO ticket + Laravel encrypter + TOTP), RCON client + currency service, atom visual theme (self-hosted Nunito).