RestoRoot is a lightweight, portable, self-hosted PHP CMS designed specifically for restaurants, cafes, and bars. Built on a clean, "old school" file-based architecture, it requires no frameworks, no composer packages, and runs on Vanilla PHP and SQLite.
This software is designed to be easily deployed on standard shared hosting environments or run locally for development.
- One-Click Bootstrapper (
installer.php): Dynamically pulls the latest stable source code directly from GitHub, creates folders, and secures server directories. - Product Dashboard: Manage categories, upload item images, toggle item availability, and define custom variations/add-ons (e.g., "+ Cheese").
- Smart Localizations (Geo-Banners): Displays targeted regional banners using a lightweight IP-lookup service without requiring browser permissions.
- Dismissible Announcement Banner: Maintain a global, dismissible banner (managed from the settings panel) to communicate current specials or alerts.
- Searchable Menu & Allergy Indicators: Includes real-time client-side search filtering and an allergy guide displaying tags (Vegan, Gluten-Free, Dairy, Nuts).
- Viral Share Loops: Built-in item sharing generates social share URLs (
/share.php?id=X) to foster organic user advertising. - Customer Feedback Logs: A private channel for customers to leave feedback, accessible only to admins.
- Adaptive Branding: Customize the currency symbol, opening hours, theme colors, and restaurant logo dynamically from the settings panel.
RestoRoot utilizes a clean two-step setup to ensure complete file integrity and directory security:
[1. Upload installer.php]
│
▼
[Run installer.php in Browser] ──► Auto-downloads latest files & secures directories
│
▼
[Self-Deletes installer.php] ──► The bootstrapper cleans itself up automatically
│
▼
[Run install.php Setup] ──► Builds the SQLite schema & default Admin account
│
▼
[Manually Delete install.php] ──► Mandatory security step to protect database
Warning
Some hosts may block you from accessing your site untill an index.html or index.php file is created. If you get errors from your browser when you try to access the installer file, create an index.html file with no content or just hi. You will delete that file after installation is completed to make sure all users land up at correct index.php page.
- Download the standalone
installer.phpfile from this repository. - Upload
installer.phpto your web server's root directory (e.g.,public_html/) via FTP or cPanel File Manager. - Ensure your root directory is writable (
chmod 775or777depending on host). - Access the bootstrapper via your browser:
http://example.com/installer.php - Click Pull Files & Secure System. The script will fetch all necessary code and generate the standard
/dataand/uploadsdirectories.
- Once the downloads finish, click Launch Setup & Self-Delete.
- Note: This action automatically and permanently deletes
installer.phpfrom your server. - You will be redirected to the wizard setup (
install.php). - Review the success confirmation. Your database file (
data/database.sqlite) is now created, and the default administrator user has been initialized:- Default User:
admin - Default Password:
admin123
- Default User:
⚠️ IMPORTANT SECURITY STEP: Once the installation screen confirms success, you must manually deleteinstall.phpfrom your server. This script does not self-delete to prevent accidental database resets, so you must remove it manually via FTP, cPanel, or command line.- Log in at
http://example.com/login.phpto change your password, accept the EULA, and begin customizing your menu.
You do not need heavy local environments like Apache, Nginx, or Docker to run RestoRoot locally. You can use PHP's built-in development server.
- macOS: Install via Homebrew:
brew install php
- Linux (Ubuntu/Debian):
sudo apt update && sudo apt install php php-sqlite3 - Windows:
- Download the Thread Safe ZIP package from windows.php.net.
- Extract it to
C:\php. - Rename
php.ini-developmenttophp.ini. Open it in a text editor and uncomment these lines by removing the semicolon (;):extension=pdo_sqlite extension=sqlite3
- Add
C:\phpto your Windows System Environment Variables (PATH).
- Create a folder on your computer (e.g.,
RestoRoot/). - Place
installer.phpinside that folder. - Open your terminal or command prompt, navigate to that directory, and run:
php -S localhost:8000
- Open your web browser and go to:
http://localhost:8000/installer.php - Follow the standard installation steps to pull down the repository files and run the setup.
- Remember to manually delete
install.phponce setup is complete.
RestoRoot uses SQLite, meaning your database is a local file (/data/database.sqlite).
- Apache/LiteSpeed: The bootstrapper automatically creates a
/data/.htaccessfile that blocks all web traffic from directly accessing the SQLite file. - Nginx: You must manually configure your server block to prevent database downloads. Add the following block to your Nginx site configuration file:
location ~* \.sqlite$ { deny all; }
- App Code Ownership: All application architecture, logic, and structure are owned by Po2432.
- Attribution: You must preserve the "Powered by RestoRoot" attribution link in the footer of all pages.
- Modifications: You are permitted to modify or build upon the source code strictly for your own internal business use.
- Distribution: You are strictly prohibited from distributing, publishing, or sharing modified or unmodified versions of this software anywhere.
- Commercial Use: Limited exclusively to running the software to support your commercial establishment. No commercial sales or reselling of the software is permitted.
For complete details, please read LICENSE.md and EULA.md inside the repository.