Files
Atomcms-edit/README.md
T

11 KiB
Executable File

AtomCMS — Remco Epicnabbo Edition

Atom CMS

Modern • Fast • Self-Repairing

Discord Laravel PHP


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


Nitro V3 Update System

One-click update via Commandocentrum → "Configureer Paths" (9 configurable paths stored in DB) → "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.

Sudoers (required for restart)

sudo tee /etc/sudoers.d/www-data << 'EOF'
www-data ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart emulator
www-data ALL=(ALL) NOPASSWD: /usr/bin/systemctl status emulator
www-data ALL=(ALL) NOPASSWD: /usr/bin/chown
EOF
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
cp .env.example.linux .env   # or .windows
php artisan key:generate

⚠️ XAMPP is not supported. Extremely unsafe for production.


Requirements

Component Requirement
PHP 8.5+
Database MariaDB 10.6+ / MySQL 8.0+
Web Server Nginx / Apache
Node.js 20+
Yarn 1.22+
Composer 2.x

Installation (Ubuntu 26.04)

# ─────────────────────────────────────────────────
# 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

# ─────────────────────────────────────────────────
# 5. Clone the project
# ─────────────────────────────────────────────────
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
# ─────────────────────────────────────────────────
cp .env.example.linux .env
# !! EDIT .env FIRST !! — set DB_PASSWORD, APP_URL, SESSION_DOMAIN, etc.
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

# ─────────────────────────────────────────────────
# 8. Install dependencies
# ─────────────────────────────────────────────────
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
# ─────────────────────────────────────────────────
sudo systemctl enable --now redis-server

# ─────────────────────────────────────────────────
# 12. Configure PHP (tune for production)
# ─────────────────────────────────────────────────
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)

server {
    listen 80;
    server_name your-domain.com;
    root /var/www/atomcms/public;
    index index.php;
    charset utf-8;

    add_header X-Frame-Options "SAMEORIGIN" always;
    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 ~ \.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; }
}
# 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

# ─────────────────────────────────────────────────
# Optional: Firewall
# ─────────────────────────────────────────────────
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw --force enable

# ─────────────────────────────────────────────────
# Optional: SSL via Certbot
# ─────────────────────────────────────────────────
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

Yarn Scripts

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

Tech Stack

Laravel 13 · React 19 + Alpine.js · Vite 8 · TailwindCSS 4 · Filament 5 · MariaDB/MySQL


Credits

Remco (Epicnabbo) — Core Maintainer · Kasja — Design & Themes · Kani — RCON & API · Atom Community — Testing & Feedback

Made with love for the Retro Community