You've already forked Atomcms-edit
Initial commit
This commit is contained in:
@@ -0,0 +1,273 @@
|
||||
# AtomCMS (epicnabbo edit) - v1.0 Ultimate Setup Guide
|
||||
|
||||
**AtomCMS** is a powerful Habbo retro CMS. This guide ensures a **100% working installation** on **any system**: Linux (Nginx/Apache), Windows (IIS/XAMPP), and macOS.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
```bash
|
||||
git clone ssh://git@localhost:8422/RemcoEpic/atomcms-edit.git
|
||||
cd atomcms-edit
|
||||
composer install --no-dev
|
||||
cp .env.example .env
|
||||
php artisan key:generate
|
||||
# Configure your .env (DB settings below)
|
||||
php artisan migrate --seed
|
||||
php artisan storage:link
|
||||
php artisan serve
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 System Requirements
|
||||
|
||||
### Universal Requirements
|
||||
|
||||
- **PHP**: 8.1, 8.2, or 8.3 (8.2 Recommended)
|
||||
- **Extensions**: `pdo_mysql`, `curl`, `mbstring`, `openssl`, `tokenizer`, `xml`, `zip`
|
||||
- **Database**: MySQL 5.7+ or MariaDB 10.3+
|
||||
- **Composer**: 2.x
|
||||
|
||||
### Linux (Ubuntu/Debian)
|
||||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install -y php8.2 php8.2-{mysql,curl,mbstring,xml,zip,fpm} nginx mysql-server
|
||||
```
|
||||
|
||||
### Windows (XAMPP/IIS)
|
||||
|
||||
- Download **XAMPP** with PHP 8.2 or install **PHP 8.2** manually.
|
||||
- Ensure `php.ini` has `extension=pdo_mysql`, `extension=curl`, etc. enabled.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Step 1: Clone the Repository
|
||||
|
||||
```bash
|
||||
# For RemcoEpic epicnabbo edit version:
|
||||
git clone ssh://git@localhost:8422/RemcoEpic/atomcms-edit.git
|
||||
cd atomcms-edit
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📦 Step 2: Install Dependencies
|
||||
|
||||
Run composer to install all required packages. The system is optimized to handle missing extensions automatically via the `SystemCheck` middleware.
|
||||
|
||||
```bash
|
||||
composer install --optimize-autoloader
|
||||
```
|
||||
|
||||
_Windows Note: Run CMD/PowerShell as Administrator if you get permission errors._
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Step 3: Environment Configuration
|
||||
|
||||
### 3.1 Create .env
|
||||
|
||||
If `.env` is missing, the system tries to create it automatically. You can also do it manually:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
### 3.2 Generate App Key
|
||||
|
||||
```bash
|
||||
php artisan key:generate
|
||||
```
|
||||
|
||||
### 3.3 Database Settings
|
||||
|
||||
Edit `.env` and configure your database connection:
|
||||
|
||||
```env
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=127.0.0.1
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=atomcms
|
||||
DB_USERNAME=root
|
||||
DB_PASSWORD=your_password
|
||||
|
||||
APP_URL=http://localhost:8000
|
||||
```
|
||||
|
||||
_Windows IIS Note: If `127.0.0.1` fails, try `localhost`._
|
||||
|
||||
---
|
||||
|
||||
## 💾 Step 4: Database Setup
|
||||
|
||||
### 4.1 Create Database
|
||||
|
||||
Login to MySQL and create the database:
|
||||
|
||||
```sql
|
||||
CREATE DATABASE atomcms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE USER 'atomcms_user'@'localhost' IDENTIFIED BY 'strong_password';
|
||||
GRANT ALL PRIVILEGES ON atomcms.* TO 'atomcms_user'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
EXIT;
|
||||
```
|
||||
|
||||
### 4.2 Run Migrations
|
||||
|
||||
```bash
|
||||
php artisan migrate --seed
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Step 5: Storage Link (Crucial!)
|
||||
|
||||
The system uses a **Bulletproof Middleware (`SystemCheck`)** that attempts to create the storage symlink automatically on the first request.
|
||||
|
||||
**Manual Fallback (if auto-fails):**
|
||||
|
||||
_Linux:_
|
||||
|
||||
```bash
|
||||
php artisan storage:link
|
||||
sudo chmod -R 755 storage bootstrap/cache
|
||||
```
|
||||
|
||||
_Windows (CMD as Admin):_
|
||||
|
||||
```cmd
|
||||
mklink /J "C:\path\to\atomcms-edit\public\storage" "C:\path\to\atomcms-edit\storage\app\public"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Step 6: Web Server Configuration
|
||||
|
||||
### Option A: PHP Built-in (Testing)
|
||||
|
||||
```bash
|
||||
php artisan serve --host=0.0.0.0 --port=8000
|
||||
```
|
||||
|
||||
Visit: `http://localhost:8000`
|
||||
|
||||
### Option B: Nginx (Linux Production)
|
||||
|
||||
Edit `/etc/nginx/sites-available/atomcms`:
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name epicnabbo.nl; # Your domain
|
||||
root /var/www/atomcms/public;
|
||||
|
||||
add_header X-Frame-Options "SAMEORIGIN";
|
||||
add_header X-Content-Type-Options "nosniff";
|
||||
|
||||
index index.php;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php?$query_string;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
|
||||
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Enable: `sudo ln -s /etc/nginx/sites-available/atomcms /etc/nginx/sites-enabled/ && sudo systemctl restart nginx`
|
||||
|
||||
### Option C: Windows IIS
|
||||
|
||||
1. Open **IIS Manager** -> **Sites** -> **Add Website**.
|
||||
2. Physical Path: `C:\inetpub\wwwroot\atomcms-edit\public`
|
||||
3. Install **URL Rewrite Module**.
|
||||
4. Add `web.config` in `public/`:
|
||||
|
||||
```xml
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="Laravel Routes" stopProcessing="true">
|
||||
<match url=".*" />
|
||||
<conditions>
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
|
||||
</conditions>
|
||||
<action type="Rewrite" url="index.php" />
|
||||
</rule>
|
||||
</rules>
|
||||
</rewrite>
|
||||
</system.webServer>
|
||||
</configuration>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🛡️ Step 7: Production Optimization
|
||||
|
||||
```bash
|
||||
php artisan config:cache
|
||||
php artisan route:cache
|
||||
php artisan view:cache
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Step 8: Verify & Test
|
||||
|
||||
1. Open `http://your-domain.com` (or `http://localhost:8000`).
|
||||
2. Test **Registration** at `/register`.
|
||||
- _Note:_ v1.0 fixes the "500 Error" on registration (Cloudflare Turnstile & IP fields).
|
||||
3. Check logs if needed: `tail -f storage/logs/laravel.log`
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Troubleshooting (v1.0 Fixes)
|
||||
|
||||
### 500 Error on Registration?
|
||||
|
||||
**Fixed in v1.0!**
|
||||
|
||||
- ✅ Cloudflare Turnstile null-response handled.
|
||||
- ✅ `ip_register` and `ip_current` added to User model.
|
||||
- ✅ MySQL Strict Mode disabled for Windows/IIS/XAMPP compatibility.
|
||||
|
||||
### "Missing .env" or "No Application Key"
|
||||
|
||||
The `SystemCheck` middleware (auto-runs on every request) will attempt to:
|
||||
|
||||
1. Copy `.env.example` to `.env`.
|
||||
2. Generate `APP_KEY` automatically.
|
||||
|
||||
### Storage Link Issues
|
||||
|
||||
The system auto-creates the symlink. If it fails on Windows, ensure you run the server with **Administrator** privileges.
|
||||
|
||||
### Database Connection Failed
|
||||
|
||||
1. Check `.env` credentials.
|
||||
2. Ensure MySQL service is running (`systemctl status mysql` or Windows Services).
|
||||
3. Use `127.0.0.1` instead of `localhost` if socket errors occur.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 What's new in v1.0 (epicnabbo edit)?
|
||||
|
||||
This version is **Bulletproof**. It is designed to work immediately after `composer install` on any environment.
|
||||
|
||||
- ✅ **Cross-Platform**: Works on Linux (Nginx/Apache), Windows (IIS/XAMPP).
|
||||
- ✅ **Auto-Recovery**: `SystemCheck` middleware fixes missing `.env`, `APP_KEY`, and storage links automatically.
|
||||
- ✅ **Zero 500 Errors**: Registration bugs (Turnstile & IP fields) fixed.
|
||||
- ✅ **MySQL Strict Mode**: Disabled for maximum compatibility.
|
||||
- ✅ **Windows Path Fix**: `index.php` handles Windows backslash paths.
|
||||
|
||||
---
|
||||
|
||||
**© 2026 RemcoEpic - epicnabbo.nl**
|
||||
Reference in New Issue
Block a user