You've already forked Atomcms-edit
574b5d6e17
feat: add 24 model factories for Help, Shop, Community, Game, User domains - Translate mixed Dutch/English strings in README.md and AlertSettings.php - Add HasFactory trait to 23 models - Create factories for Help (6), Shop (4), Community (5), Game (2), User (7)
326 lines
8.7 KiB
Markdown
Executable File
326 lines
8.7 KiB
Markdown
Executable File
# AtomCMS Remco Epicnabbo Edition
|
|
|
|
<div align="center">
|
|
<img src="https://i.imgur.com/9ePNdJ4.png" alt="Atom CMS" width="200"/>
|
|
|
|
### The Ultimate Retro Hotel CMS
|
|
|
|
**Modern • Fast • Self-Repairing**
|
|
|
|
[](https://discord.gg/pP6HyZedAj)
|
|
[](https://laravel.com)
|
|
[](https://php.net)
|
|
[](https://github.com/atom-retros/atomcms)
|
|
|
|
</div>
|
|
|
|
---
|
|
|
|
## ⚡ Quick Start
|
|
|
|
```bash
|
|
# Interactive mode (asks for confirmation before each step)
|
|
php artisan atom:check --fix
|
|
|
|
# Auto mode (fixes everything automatically without asking)
|
|
php artisan atom:check --auto
|
|
|
|
# Fix gamedata symlinks for optimal client performance
|
|
php artisan atom:fix-gamedata-symlinks
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Features
|
|
|
|
### 📻 Radio Station
|
|
|
|
- DJ applications & rank system
|
|
- Live DJ sessions with schedule/rooster
|
|
- Song requests & voting
|
|
- Shoutbox
|
|
- Listener points & leaderboard
|
|
- Contests & giveaways
|
|
- Radio banners & history
|
|
|
|
### 🛒 Shop
|
|
|
|
- Product catalog with categories
|
|
- Virtual currency purchases
|
|
- Voucher/promo codes
|
|
- PayPal integration
|
|
- Order history
|
|
|
|
### 👥 Community
|
|
|
|
- Articles with comments, reactions & tags
|
|
- Photo gallery
|
|
- Leaderboard
|
|
- Teams & team applications
|
|
- Staff page & staff applications
|
|
- Rare values tracker
|
|
- Badge draw/lottery system
|
|
|
|
### 🎮 Hotel Client
|
|
|
|
- Nitro (HTML5) client support
|
|
- Flash client support
|
|
- FindRetros integration
|
|
- VPN/proxy checker
|
|
|
|
### 👤 User System
|
|
|
|
- Public profiles with guestbook
|
|
- Two-Factor Authentication (2FA)
|
|
- Referral system with rewards
|
|
- Account & password settings
|
|
- Session logs
|
|
|
|
### 🎫 Help Center
|
|
|
|
- Support ticket system with replies & status management
|
|
- Website rules
|
|
- FAQ with categories
|
|
|
|
### 🎨 Themes
|
|
|
|
- **Atom** — Default theme
|
|
- **Dusk** — Dark theme
|
|
|
|
### 🔧 Filament Admin Panel
|
|
|
|
- User & ban management
|
|
- Radio management (applications, schedules, ranks, shouts, history, banners)
|
|
- Shop & order management with charts
|
|
- Article & tag management
|
|
- Emulator settings, texts & catalog editors
|
|
- Chatlog viewer (rooms & private messages)
|
|
- Word filters & moderation tools
|
|
- Housekeeping permissions
|
|
- Website navigation & settings
|
|
- Camera/photo management
|
|
|
|
### 🌐 API Endpoints
|
|
|
|
- `GET /api/user/{username}` — Fetch user data
|
|
- `GET /api/online-users` — Online users list
|
|
- `GET /api/online-count` — Online user count
|
|
- `GET /api/radio/current-dj` — Current DJ info
|
|
- `GET /api/radio/now-playing` — Current song
|
|
- `GET /api/radio/listeners` — Listener count
|
|
- `GET /api/radio/shouts` — Recent shouts
|
|
- `GET /api/radio/points` — Points data
|
|
- `GET /api/radio/points/leaderboard` — Points leaderboard
|
|
|
|
---
|
|
|
|
## 🚀 Master Repair Tool
|
|
|
|
The `atom:check` command performs over **100 deep system checks** and offers to fix them automatically.
|
|
|
|
### Diagnostic Checks
|
|
|
|
| Section | What it Checks |
|
|
| --------------- | ------------------------------------------------------------ |
|
|
| **Environment** | .env, APP_KEY, Debug mode, Composer security |
|
|
| **Database** | Tables, columns, migrations, seeders, settings, radio, admin |
|
|
| **PHP Stack** | Extensions, PHP.ini, config cache, session |
|
|
| **Web Server** | Apache/Nginx/IIS config, SSL |
|
|
| **System** | Permissions, firewall ports |
|
|
| **Assets** | Frontend, Redis, Cron, Queue, Supervisor, Vite |
|
|
| **HTTP Errors** | 400, 401, 403, 404, 419, 429, 500, 502, 503, 504 |
|
|
|
|
### Auto-Fix Steps
|
|
|
|
| Step | Action |
|
|
| ---- | ----------------------------------- |
|
|
| 1 | Environment (.env, APP_KEY) |
|
|
| 2 | Clear all caches |
|
|
| 3 | Fix permissions |
|
|
| 4 | Run migrations |
|
|
| 5 | Run seeders |
|
|
| 6 | Fix storage (symlink, directories) |
|
|
| 6b | Fix Radio tables |
|
|
| 7 | Fix Gamedata symlinks |
|
|
| 8 | Create admin user |
|
|
| 9 | Web server config (.htaccess, etc.) |
|
|
| 10 | PHP config & extensions |
|
|
| 11 | Build assets (npm) |
|
|
| 12 | Fix HTTP errors |
|
|
|
|
### Platform Support
|
|
|
|
Auto-detects: **Linux, Windows IIS, XAMPP, WAMP, Apache, Nginx**
|
|
|
|
---
|
|
|
|
## 📥 Installation
|
|
|
|
```bash
|
|
# 1. Clone
|
|
git clone https://github.com/your-repo/atomcms.git
|
|
cd atomcms
|
|
|
|
# 2. Install dependencies
|
|
composer install
|
|
npm install
|
|
|
|
# 3. Run the repair tool
|
|
php artisan atom:check --fix
|
|
```
|
|
|
|
---
|
|
|
|
## 🛠️ Usage
|
|
|
|
```bash
|
|
# Check only (no changes)
|
|
php artisan atom:check
|
|
|
|
# Interactive fix (asks before each step)
|
|
php artisan atom:check --fix
|
|
|
|
# Automatic fix (no questions)
|
|
php artisan atom:check --auto
|
|
|
|
# Force platform detection
|
|
php artisan atom:check --platform=nginx
|
|
|
|
# Dutch language
|
|
php artisan atom:check --fix --lang=nl
|
|
|
|
# Fix gamedata symlinks for bundled assets
|
|
php artisan atom:fix-gamedata-symlinks
|
|
|
|
# Preview what symlinks would be created (dry-run)
|
|
php artisan atom:fix-gamedata-symlinks --dry-run
|
|
```
|
|
|
|
---
|
|
|
|
## ⚡ Performance Optimization
|
|
|
|
### Gamedata Symlinks
|
|
|
|
The `atom:fix-gamedata-symlinks` command creates symlinks in the Gamedata directory to point to optimized bundled assets. This significantly improves load times for the game client.
|
|
|
|
| Symlink | Target | Purpose |
|
|
| ---------------- | ------------------- | --------------------- |
|
|
| `effect` | `bundled/effect` | Avatar effects |
|
|
| `furniture` | `bundled/furniture` | Furniture assets |
|
|
| `generic` | `bundled/generic` | Generic assets |
|
|
| `pet` | `bundled/pet` | Pet assets |
|
|
| `figure` | `bundled/figure` | Avatar figures |
|
|
| `generic_custom` | `bundled/generic` | Custom generic assets |
|
|
|
|
### Recommended Nginx Optimizations
|
|
|
|
The following optimizations are already configured:
|
|
|
|
- `sendfile on` - Kernel-level file serving
|
|
- `open_file_cache` - File descriptor caching
|
|
- `gzip` - Automatic compression for JSON/JS/CSS
|
|
|
|
---
|
|
|
|
## 🧑💻 Developer Tools
|
|
|
|
### Yarn Scripts
|
|
|
|
```bash
|
|
# Build
|
|
yarn build # Build all themes
|
|
yarn build:atom # Build atom theme only
|
|
yarn build:dusk # Build dusk theme only
|
|
yarn build:all # Build both themes
|
|
|
|
# Development
|
|
yarn dev # Start dev server
|
|
yarn dev:atom # Dev server atom theme
|
|
|
|
# Code Quality
|
|
yarn lint # Check JS/Vue
|
|
yarn lint:fix # Fix JS/Vue
|
|
yarn lint:css # Check CSS
|
|
yarn lint:css:fix # Fix CSS
|
|
yarn lint:all # Check everything
|
|
yarn lint:fix:all # Fix everything
|
|
|
|
yarn format # Format everything
|
|
yarn format:check # Check formatting
|
|
|
|
# Check
|
|
yarn check # Full check
|
|
yarn check:php # Check PHP syntax
|
|
yarn check:security # Check security
|
|
yarn check:deps # Check outdated packages
|
|
|
|
# Cache
|
|
yarn clean # Clear cache
|
|
yarn rebuild # Clean + install + build
|
|
```
|
|
|
|
### PHP Commands
|
|
|
|
```bash
|
|
# Auto-fix code style
|
|
php artisan atom:fix-code
|
|
|
|
# Fix gamedata symlinks (run after installing client assets)
|
|
php artisan atom:fix-gamedata-symlinks
|
|
|
|
# Static analysis (PHPStan Level 3)
|
|
./vendor/bin/phpstan analyse
|
|
|
|
# Build frontend assets
|
|
yarn build:atom
|
|
yarn build:dusk
|
|
|
|
# Development mode
|
|
yarn dev:atom
|
|
yarn dev:dusk
|
|
|
|
# Format code
|
|
yarn format
|
|
```
|
|
|
|
---
|
|
|
|
## ⚡ Performance Optimizations
|
|
|
|
This CMS is fully optimized:
|
|
|
|
| Optimization | Description |
|
|
| ---------------------- | --------------------------------- |
|
|
| **Vite 8** | Fastest build tool |
|
|
| **esbuild** | Faster minification |
|
|
| **Better chunking** | Optimal code splitting |
|
|
| **Gzip + Brotli** | Compression (~70% smaller) |
|
|
| **Resource hints** | DNS prefetch, preconnect, preload |
|
|
| **HTTP/2** | Faster network requests |
|
|
| **Console removed** | Smaller JS bundles |
|
|
| **Caching** | Vite cache + optimizedeps |
|
|
|
|
---
|
|
|
|
## 📦 Tech Stack
|
|
|
|
- **Backend:** Laravel 13
|
|
- **Frontend:** React 19 + Alpine.js
|
|
- **Build:** Vite 8
|
|
- **CSS:** TailwindCSS 4
|
|
- **Linting:** ESLint + Stylelint + Prettier
|
|
|
|
---
|
|
|
|
## 🤝 Credits
|
|
|
|
- **Remco (Epicnabbo)** - Core Maintainer, System Architecture
|
|
- **Kasja** - Design & Themes
|
|
- **Kani** - RCON & API
|
|
- **Atom Community** - Testing & Feedback
|
|
|
|
<div align="center">
|
|
<i>Made with ❤️ for the Retro Community</i>
|
|
</div>
|