This guide walks you through getting Ava CMS live on the internet. Whether you're hosting your first website ever or you're a seasoned developer, there's an option that fits your needs.
public/ directory, run composer install, and configure. Done!
Before You Start
Ava CMS needs:
- PHP 8.3 or later
- Composer (PHP's package manager)
That's it. No database, no special server software, no complex stack to configure.
What's Composer?
Composer manages PHP dependencies (the libraries Ava uses). Most hosts have it pre-installed. You only need to run composer install once after uploading Ava — it downloads everything into the vendor/ folder.
Storage Requirements
Ava CMS itself is small. What consumes significant disk space:
- Uploaded media in
public/media/ - Cache files in
storage/cache/ - Logs in
storage/logs/
Make sure PHP can write to the storage/ directory. For large sites (10k+ items), the content index cache can grow to 100 MB or more depending on your content size and index backend.
Local Development
PHP includes a built-in server perfect for local development:
php -v # Check PHP is installed (need 8.3+)
cd /path/to/your/ava-site
php -S localhost:8000 -t public # Start the dev server
Open http://localhost:8000 in your browser. No Apache, Nginx, or LAMP stack required.
Don't have PHP? Install via brew install php (macOS), sudo apt install php (Linux), or download from windows.php.net (Windows).
Shared Hosting
Shared hosting is the easiest and most affordable option. The hosting company handles server maintenance while you get a control panel, file manager, and one-click SSL.
What to Look For
- PHP 8.3+ — Check before signing up
- SSH access — Optional but highly recommended for running commands
- Enough RAM — Ava works fine with 128M
memory_limit, but larger sites may need more - SSD/NVMe storage — Faster file reads/writes
- Write permissions — PHP must be able to write to
storage/ - Free SSL — Look for Let's Encrypt support
- Daily backups — Your content is files, so backups matter
Recommended Providers
| Provider | Starting Price | Notes |
|---|---|---|
| Krystal Hosting | From £7/month | UK-based, SSH access, renewable energy |
| Porkbun Easy PHP | From $10/month | Simple setup, includes domain management |
Had a good experience elsewhere? Let us know in the Discord!
File Structure
Shared hosts typically give you a public_html/ folder as your web root. For security, install Ava CMS above that:
/home/yourusername/
├── public_html/ ← Web root (publicly accessible)
│ ├── index.php ← Copy from ava/public/, edit AVA_ROOT path
│ ├── assets/
│ ├── robots.txt
│ └── media/
├── ava/ ← Ava CMS installation (protected)
│ ├── app/
│ ├── content/
│ ├── core/
│ └── storage/
Setup steps:
- Upload Ava CMS to a folder above your web root (e.g.,
/home/you/ava/). - If your host lets you set the document root, point it directly at Ava's
public/folder — no copying needed.
If you can't set the document root, copy the contents ofava/public/intopublic_html/(or equivalent). - Run
composer install --no-devand./ava rebuild.
If SSH isn’t available, generate thevendor/folder locally, upload it, then rebuild via the admin dashboard.
Connecting to Your Server
You'll need to connect to your server to upload files and run commands. Both SSH and SFTP use the same credentials—look in your hosting control panel under "SSH Access" or "SFTP".
Your credentials:
- Host: Your domain or server IP
- Username: Your hosting account username
- Password: Your account password (or SSH key)
- Port: 22
SSH (Running Commands)
SSH lets you run commands on your server. It's optional but highly recommended — it makes ./ava rebuild and troubleshooting much easier.
Don't Be Scared of the Terminal!
SSH looks intimidating at first — a black screen with a blinking cursor. But it's just typing commands instead of clicking buttons. You only need a few commands:
cd folder-name— Go into a folderls— See what's in the current folder./ava status— Check if Ava is happy
That's 90% of what you'll do. See the CLI Guide for all available commands.
| Platform | Client |
|---|---|
| macOS/Linux | Built-in Terminal |
| Windows | Windows Terminal, PowerShell, or PuTTY |
ssh [email protected]
Once connected, you can run Ava CMS commands:
cd ~/ava # Go to your Ava folder
./ava status # Check site health
./ava rebuild # Rebuild content index
./ava cache:clear # Clear webpage cache
Optional: Using SSH keys instead of passwords
SSH Keys
SSH keys are more secure and convenient than passwords. Generate a key pair once:
ssh-keygen -t ed25519 -C "[email protected]"
ssh-copy-id [email protected]
Now you can connect without entering your password each time.
SFTP (Uploading Files)
SFTP lets you upload files via a graphical interface. Use "SFTP" (not plain "FTP") in your client.
| Platform | Client |
|---|---|
| macOS | Cyberduck (free), Transmit |
| Windows | WinSCP, FileZilla |
| Linux | FileZilla, built-in file managers |
Tip: VS Code's Remote - SSH extension lets you edit files on your server directly—no separate SFTP client needed.
Uploading Ava CMS
- Upload all Ava CMS files to your server
- Run
composer install --no-dev(via SSH, or locally then upload thevendor/folder) - Run
./ava rebuild(or visit your site — auto mode will rebuild on first load)
No SSH? Run composer install --no-dev on your computer, upload the vendor/ folder, then visit your site.
Troubleshooting: "composer: command not found"
# Install Composer locally to your project
curl -sS https://getcomposer.org/installer | php
php composer.phar install --no-dev
VPS Hosting
A VPS (Virtual Private Server) gives you dedicated resources and full control. Consider this when shared hosting can't keep up, you need specific PHP extensions, or you want to host multiple sites.
Recommended VPS Providers
| Provider | Starting Price | Notes |
|---|---|---|
| Hetzner Cloud | From €4/month | Excellent value, EU-based |
| Krystal Cloud VPS | From £10/month | UK-based, renewable energy |
Don't want to manage a server? Use Ploi.io—it connects to your VPS and handles server setup, SSL, and deployments through a friendly dashboard.
Deployment Workflows
Manual (SFTP)
Upload changed files via SFTP, then run ./ava rebuild if you have SSH.
Git-Based
# On your server
cd ~/ava && git pull origin main && ./ava rebuild
Automated (CI/CD)
Use GitHub Actions, Ploi, or Laravel Forge to deploy automatically when you push:
name: Deploy
on: { push: { branches: [main] } }
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_KEY }}
script: cd ~/ava && git pull && composer install --no-dev && ./ava rebuild
CDN (Optional)
Ava CMS's built-in page cache is already fast. A CDN helps most when you have a global audience or lots of large media files.
Cloudflare (free tier) provides caching, DDoS protection, and free SSL. Just point your domain's nameservers to Cloudflare.
Other options: BunnyCDN (pay-as-you-go), KeyCDN (simple).
Server Configuration (Advanced)
PHP Settings
| Setting | Recommended | Purpose |
|---|---|---|
memory_limit |
128M |
Increase for 10k+ items |
max_execution_time |
30 |
Increase if rebuilds timeout |
upload_max_filesize |
10M |
For admin media uploads |
Nginx
server {
listen 80;
server_name example.com;
root /home/user/ava/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\. { deny all; }
}
Apache
Ava CMS includes a .htaccess file in public/. Just enable mod_rewrite:
sudo a2enmod rewrite && sudo systemctl restart apache2
Need Help?
- CLI Reference — All available commands
- Configuration — Site settings
- Performance — Optimisation tips
- Discord Community — Ask questions, get help