Installation Guide
This guide covers installation on various platforms. MIVO is designed to be lightweight and runs on almost any PHP-capable server.
General Requirements
- PHP: 8.0 or higher
- Extensions:
sqlite3,openssl,mbstring,json - Database: SQLite (File based, no server needed)
Manual Installation (Linux/VPS)
Recommended for VPS users (Ubuntu/Debian/CentOS) who prefer manual setup over Docker.
1. Requirements
Ensure you have git, unzip, and php installed.
sudo apt update
sudo apt install git unzip php php-sqlite3 php-openssl php-curl php-mbstring php-json2. Clone Repository
cd /var/www/html
git clone https://github.com/mivodev/mivo.git
cd mivo3. Install Dependencies
You need Composer. If not installed, get it here.
composer install --no-dev --optimize-autoloader4. Permissions (Important)
Give the web server write access to the database and config folders.
chown -R www-data:www-data app/Database public app/Config
chmod -R 775 app/Database public app/ConfigDocker (Recommended)
The easiest way to run MIVO.
Build & Run
bashdocker-compose up -d --buildGo to
http://localhost:8080Manual Pull (Alternative) If you prefer to pull the image manually:
bashdocker pull ghcr.io/mivodev/mivo:latest # Stable docker pull ghcr.io/mivodev/mivo:v1.0.0 # Specific Version docker pull ghcr.io/mivodev/mivo:edge # Bleeding Edge
Note: The database is persisted in app/Database via volumes.
Web Servers
Apache / OpenLiteSpeed
- Document Root: Set your web server's document root to the
public/folder. - Rewrite Rules: Ensure
mod_rewriteis enabled. MIVO includes a.htaccessfile inpublic/that handles URL routing automatically. - Permissions: Ensure the web server user (e.g.,
www-data) has write access to:app/Database/(directory and file)app/Config/(if using installer).envfile
Nginx
Nginx does not read .htaccess. Use this configuration block in your server block:
server {
listen 80;
server_name your-domain.com;
root /path/to/mivo/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock; # Adjust version
}
location ~ /\.ht {
deny all;
}
}IIS (Windows)
- Document Root: Point the site to the
public/folder. - Web Config: A
web.configfile has been provided inpublic/to handle URL Rewriting. - Requirements: Ensure URL Rewrite Module 2.0 is installed on IIS.
Mobile / STB
Awebserver
- Copy the MIVO files to
/htdocs. - Point the document root to
publicif supported, or access viahttp://localhost:8080/public. - Ensure PHP version is compatible.
Termux
- Install PHP:
pkg install php - Navigate to MIVO directory:
cd mivo - Use the built-in server:bash
php mivo serve --host=0.0.0.0 --port=8080 - Access via browser.
Shared Hosting
Most shared hosting uses Apache or OpenLiteSpeed, which is fully compatible.
- Upload Files: Upload the MIVO files to
public_html/mivo(or a subdomain folder). - Point Domain:
- Recommended: Go to "Domains" or "Subdomains" in cPanel and set the Document Root to point strictly to the
public/folder (e.g.,public_html/mivo/public). - Alternative: If you cannot change Document Root, you can move contents of
public/to the rootpublic_htmland moveapp/,routes/, etc. one level up (not recommended for security).
- Recommended: Go to "Domains" or "Subdomains" in cPanel and set the Document Root to point strictly to the
- PHP Version: Select PHP 8.0+ in "Select PHP Version" menu.
- Extensions: Ensure
sqlite3andfileinfoare checked.
VPS & Cloud
aaPanel
- Create Website: Add site -> PHP-8.x.
- Site Directory:
- Set Running Directory (bukan Site Directory) to
/public. - Uncheck "Anti-XSS" (sometimes blocks config saving).
- Set Running Directory (bukan Site Directory) to
- URL Rewrite: Select
thinkphporlaraveltemplate (compatible) OR just use the Nginx config provided above. - Permissions: Chown
wwwuser to the site directory.
PaaS Cloud (Railway / Render / Heroku)
WARNING
MIVO uses SQLite (File Database). Most PaaS cloud have Ephemeral Filesytem (Reset on restart).
- Requirement: You MUST mount a Persistent Volume/Disk.
- Mount Path: Mount your volume to
/var/www/html/app/Database(or wherever you put MIVO). - Docker: Use the Docker deployment method, it works natively on these platforms.
Post-Installation
After setting up the server:
- Copy
.env.exampleto.env(if not already done). - Install Application
- Option A: CLI Run
php mivo installin your terminal. - Option B: Web Installer Open
http://your-domain.com/installin your browser.
- Option A: CLI Run