From 889cec60e98021311b7876a40a737bdf00241f80 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 4 Jun 2026 19:37:10 +0200 Subject: [PATCH] Clean README in Arcturus style: badges, tables, quick start, clear sections --- README.md | 228 +++++++++++++++++++++++++----------------------------- 1 file changed, 105 insertions(+), 123 deletions(-) diff --git a/README.md b/README.md index bf0bbc5..5d1481b 100755 --- a/README.md +++ b/README.md @@ -1,38 +1,67 @@ # AtomCMS — Remco Epicnabbo Edition -
-Atom CMS +[![Discord](https://img.shields.io/badge/Discord-Join%20Server-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/pP6HyZedAj) +[![Laravel](https://img.shields.io/badge/Laravel-13.x-FF2D20?style=for-the-badge&logo=laravel&logoColor=white)](https://laravel.com) +[![PHP](https://img.shields.io/badge/PHP-8.5+-777BB4?style=for-the-badge&logo=php&logoColor=white)](https://php.net) +[![License](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge)](#) -**Modern • Fast • Self-Repairing** +A modern Habbo retro CMS powered by Laravel 13, Filament 5, React 19, and Nitro. Forked and maintained by Remco (Epicnabbo). -[![Discord](https://img.shields.io/badge/Discord-Join%20Server-5865F2?style=flat&logo=discord&logoColor=white)](https://discord.gg/pP6HyZedAj) -[![Laravel](https://img.shields.io/badge/Laravel-13.x-FF2D20?style=flat&logo=laravel&logoColor=white)](https://laravel.com) -[![PHP](https://img.shields.io/badge/PHP-8.5+-777BB4?style=flat&logo=php&logoColor=white)](https://php.net) -
+--- + +## Quick Start + +```bash +git clone https://your-gitea-server/remco/Atomcms-edit.git /var/www/atomcms +cd /var/www/atomcms +cp .env.example.linux .env +php artisan key:generate +# Edit .env with your DB credentials, then: +composer install --no-dev --optimize-autoloader +php artisan migrate --seed +yarn install && yarn build:all +``` + +> **Full installation guide** → `.env.install` or scroll down to [Installation](#installation-ubuntu-2604) --- ## Features -**Commandocentrum** — Nitro V3 one-click updater, emulator start/stop/restart, hotel alert, live monitoring, emulator logs viewer, clothing sync, notification settings, social login (Google/Discord/GitHub), staff activity log -**Radio** — DJ apps, live sessions, song requests, shoutbox, leaderboard, contests -**Shop** — Product catalog, virtual currency, vouchers, PayPal integration -**Community** — Articles, photo gallery, leaderboard, teams, staff page, rare values, badge lottery -**Client** — Nitro (HTML5), VPN/proxy checker -**Users** — Public profiles, 2FA, referrals, session logs -**Help** — Ticket system, FAQ, rules -**Themes** — Atom (light), Dusk (dark) -**Filament Admin** — Users, bans, radio, shop, articles, emulator settings/texts/catalog, chatlogs, word filters, permissions, navigation, camera +| Module | What it does | +|--------|-------------| +| **Commandocentrum** | Nitro V3 one-click updater, emulator start/stop/restart, hotel alerts, live monitoring, log viewer, clothing sync, social login (Google/Discord/GitHub) | +| **Radio** | DJ apps, live sessions, song requests, shoutbox, leaderboard, contests | +| **Shop** | Product catalog, virtual currency, vouchers, PayPal | +| **Community** | Articles, photo gallery, leaderboard, teams, rare values, badge lottery | +| **Users** | Public profiles, 2FA, referrals, session logs | +| **Help** | Ticket system, FAQ, rules | +| **Filament Admin** | Users, bans, radio, shop, articles, emulator settings/texts/catalog, chatlogs, word filters, permissions, navigation | +| **Themes** | Atom (light) & Dusk (dark) | --- -## Nitro V3 Update System +## Nitro V3 Update -One-click update via **Commandocentrum** → "Configureer Paths" (9 configurable paths stored in DB) → "Run Update". +One-click update from **Commandocentrum** → "Configureer Paths" → "Run Update". -The script: `git pull` emulator → DB backup + SQL imports → Maven build → `git pull` Nitro_Render_V3 + Nitro-V3 → `yarn build` → sync Gamedata → cleanup old logs/backups → permissions fix → emulator restart. +**What it does:** `git pull` emulator → DB backup → SQL imports → Maven build → `git pull` Nitro_Render_V3 + Nitro-V3 → `yarn build` → sync Gamedata → cleanup → restart emulator. -### Sudoers (required for restart) +**Configurable paths** (9 settings, stored in DB): + +| Setting | Default | +|---------|---------| +| Emulator map | `/var/www/emulator` | +| Service naam | `emulator` | +| Database | `habbo` | +| SQL updates | `{emulator}/Database Updates` | +| Backups | `{emulator}/Database Updates/backups` | +| Gamedata | `/var/www/Gamedata/config` | +| Nitro client | `{nitro}/public/configuration` | +| Nitro-V3 bron | `/var/www/Nitro-V3` | +| Nitro Render V3 | `/var/www/Nitro_Render_V3` | + +**Sudoers** (needed for restart/chown): ```bash sudo tee /etc/sudoers.d/www-data << 'EOF' www-data ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart emulator @@ -44,127 +73,97 @@ sudo chmod 440 /etc/sudoers.d/www-data --- -## Environment Files - -| File | Platform | Cache | DB | -| ---- | -------- | ----- | -- | -| `.env.install` | — | — | Setup guide | -| `.env.example.linux` | Linux (prod) | Redis | MariaDB | -| `.env.example.windows` | Windows (dev) | File | MySQL | - -```bash -cp .env.example.linux .env # or .windows -php artisan key:generate -``` - -> **⚠️ XAMPP is not supported.** Extremely unsafe for production. - ---- - ## Requirements -| Component | Requirement | -|-----------|-------------| +| Component | Version | +|-----------|---------| | **PHP** | 8.5+ | -| **Database** | MariaDB 10.6+ / MySQL 8.0+ | -| **Web Server** | Nginx / Apache | +| **Database** | MariaDB 10.6+ or MySQL 8.0+ | +| **Web Server** | Nginx or Apache | | **Node.js** | 20+ | | **Yarn** | 1.22+ | | **Composer** | 2.x | +| **Redis** | Recommended (Linux) | + +--- + +## Environment Files + +| File | Use | Cache | DB | +|------|-----|-------|----| +| `.env.install` | Step-by-step setup guide | — | — | +| `.env.example.linux` | Linux production | Redis | MariaDB | +| `.env.example.windows` | Windows development | File | MySQL | + +```bash +cp .env.example.linux .env +php artisan key:generate +``` + +> ⚠️ **XAMPP is not supported.** Extremely unsafe for production. --- ## Installation (Ubuntu 26.04) ```bash -# ───────────────────────────────────────────────── # 1. System dependencies -# ───────────────────────────────────────────────── sudo apt update sudo apt install -y git curl wget unzip nginx mariadb-server redis-server \ php8.5 php8.5-{cli,fpm,mysql,xml,mbstring,curl,zip,bcmath,gd,sockets,intl} \ build-essential -# ───────────────────────────────────────────────── # 2. Composer -# ───────────────────────────────────────────────── curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer -# ───────────────────────────────────────────────── # 3. Node.js + Yarn -# ───────────────────────────────────────────────── curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs sudo corepack enable corepack install -g yarn@latest -# ───────────────────────────────────────────────── -# 4. Secure MariaDB (set root password) -# ───────────────────────────────────────────────── -sudo mysql << EOF -ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_root_password'; -FLUSH PRIVILEGES; -EOF +# 4. Secure MariaDB +sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_root_password'; FLUSH PRIVILEGES;" -# ───────────────────────────────────────────────── -# 5. Clone the project -# ───────────────────────────────────────────────── +# 5. Clone git clone https://your-gitea-server/remco/Atomcms-edit.git /var/www/atomcms -# Or via SSH: git clone ssh://git@your-gitea-server:8422/remco/Atomcms-edit.git /var/www/atomcms cd /var/www/atomcms -# ───────────────────────────────────────────────── -# 6. Configure environment -# ───────────────────────────────────────────────── +# 6. Configure cp .env.example.linux .env -# !! EDIT .env FIRST !! — set DB_PASSWORD, APP_URL, SESSION_DOMAIN, etc. +# EDIT .env first: set DB_PASSWORD, APP_URL, SESSION_DOMAIN nano .env php artisan key:generate -# ───────────────────────────────────────────────── -# 7. Create database & user -# ───────────────────────────────────────────────── -sudo mysql << EOF -CREATE DATABASE IF NOT EXISTS habbo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -CREATE USER IF NOT EXISTS 'cms'@'localhost' IDENTIFIED BY 'your_db_password'; -GRANT ALL PRIVILEGES ON habbo.* TO 'cms'@'localhost'; -FLUSH PRIVILEGES; -EOF +# 7. Create database + user +sudo mysql -e "CREATE DATABASE IF NOT EXISTS habbo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" +sudo mysql -e "CREATE USER IF NOT EXISTS 'cms'@'localhost' IDENTIFIED BY 'your_db_password';" +sudo mysql -e "GRANT ALL ON habbo.* TO 'cms'@'localhost'; FLUSH PRIVILEGES;" -# ───────────────────────────────────────────────── -# 8. Install dependencies -# ───────────────────────────────────────────────── +# 8. Install PHP & JS deps composer install --no-dev --optimize-autoloader yarn install -# ───────────────────────────────────────────────── # 9. Migrate, seed & build -# ───────────────────────────────────────────────── php artisan migrate --seed yarn build:all -# ───────────────────────────────────────────────── # 10. Permissions -# ───────────────────────────────────────────────── sudo chown -R www-data:www-data storage bootstrap/cache public/build sudo chmod -R 775 storage bootstrap/cache -# ───────────────────────────────────────────────── -# 11. Start Redis -# ───────────────────────────────────────────────── +# 11. Start services sudo systemctl enable --now redis-server -# ───────────────────────────────────────────────── -# 12. Configure PHP (tune for production) -# ───────────────────────────────────────────────── +# 12. PHP tuning sudo sed -i 's/upload_max_filesize = .*/upload_max_filesize = 64M/' /etc/php/8.5/fpm/php.ini sudo sed -i 's/post_max_size = .*/post_max_size = 64M/' /etc/php/8.5/fpm/php.ini sudo sed -i 's/memory_limit = .*/memory_limit = 256M/' /etc/php/8.5/fpm/php.ini sudo sed -i 's/max_execution_time = .*/max_execution_time = 300/' /etc/php/8.5/fpm/php.ini ``` -### Nginx config (`/etc/nginx/sites-available/atomcms`) +### Nginx ```nginx server { @@ -178,55 +177,33 @@ server { add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; - # Gzip gzip on; gzip_types text/plain text/css application/json application/javascript text/xml image/svg+xml; gzip_vary on; - gzip_min_length 1024; - - location / { - try_files $uri $uri/ /index.php?$query_string; - } + location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.5-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } - - # Block hidden files location ~ /\.(?!well-known).* { deny all; } - - # Block sensitive files - location ~ /(\.env|\.git|composer\.(json|lock)|package\.json|yarn\.lock) { deny all; } + location ~ /(\.env|\.git|composer\.(json|lock)) { deny all; } } ``` ```bash -# Enable site & restart services sudo ln -sf /etc/nginx/sites-available/atomcms /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx sudo systemctl restart php8.5-fpm redis-server +sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw --force enable +``` -# ───────────────────────────────────────────────── -# Optional: Firewall -# ───────────────────────────────────────────────── -sudo ufw allow 80/tcp -sudo ufw allow 443/tcp -sudo ufw --force enable +### SSL (recommended) -# ───────────────────────────────────────────────── -# Optional: SSL via Certbot -# ───────────────────────────────────────────────── +```bash sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d your-domain.com - -# ───────────────────────────────────────────────── -# Verify everything works -# ───────────────────────────────────────────────── -curl -I http://your-domain.com -# Expected: HTTP/2 200 or 302 -# Visit https://your-domain.com in your browser ``` --- @@ -234,22 +211,27 @@ curl -I http://your-domain.com ## Yarn Scripts ```bash -yarn build:all # Build all themes -yarn build:atom # Atom theme -yarn build:dusk # Dusk theme -yarn dev # Vite dev server -yarn lint # Check JS/Vue -yarn lint:fix # Fix JS/Vue -yarn format # Format everything -yarn clean # Clear Vite cache -yarn rebuild # Clean + install + build +yarn build:all # Build all themes +yarn build:atom # Atom theme only +yarn build:dusk # Dusk theme only +yarn dev # Vite dev server +yarn lint # Lint JS/Vue +yarn format # Format code ``` --- ## Tech Stack -Laravel 13 · React 19 + Alpine.js · Vite 8 · TailwindCSS 4 · Filament 5 · MariaDB/MySQL +**Laravel 13 · React 19 + Alpine.js · Vite 8 · TailwindCSS 4 · Filament 5 · MariaDB/MySQL · Redis** + +--- + +## Support + +- **Discord:** [Join our server](https://discord.gg/pP6HyZedAj) +- **Issues:** Report bugs via the project issue tracker +- **Contributions:** Fork & submit merge requests — all help is welcome! ---