VPS Auto Setup Guide
Deploy Appy on a fresh Ubuntu 24.04 VPS with a single command. This automated script installs everything you need, including the builder server.
When used correctly: This is the fastest way to get Appy running with the builder server. Everything is configured automatically, including SSL certificates.
On this page
Prerequisites
Before running the auto-setup script, ensure you have the following:
| Requirement | Specification | Notes |
|---|---|---|
| VPS | Ubuntu 24.04 LTS | MUST be clean/minimal install with NO pre-installed software (no control panels, no LAMP stacks) |
| RAM | 4 GB minimum | 8 GB recommended for better build performance |
| Storage | 40 GB NVMe minimum | NVMe storage strongly recommended for faster builds. Android SDK requires ~10 GB |
| Domain | Valid domain name | Required for SSL certificate |
| Root Access | SSH root login | Script must run as root |
Recommended VPS Provider
Need a VPS? We've pre-configured a recommended VPS option with the correct specifications for running Appy:
- Operating System: Ubuntu 24.04 (clean, without any pre-installed applications)
- Storage Type: NVMe SSD (required for optimal build performance)
- RAM: Pre-configured with recommended specifications
Critical: This script is designed ONLY for fresh VPS installations with Ubuntu 24.04 and NO pre-installed software. Do NOT use VPS images that come with control panels (cPanel, Plesk, etc.) or pre-installed LAMP/LEMP stacks. Running this script on servers with existing software will cause conflicts and is not supported.
What Gets Installed
The auto-setup script installs and configures everything needed to run Appy and build Android apps:
Web Stack
- PHP 8.4 with all Laravel extensions
- MySQL 8.0 Database Server
- Nginx Web Server
- Let's Encrypt SSL Certificate
- Adminer Database Manager
Build Tools
- Node.js 20 LTS
- PM2 Process Manager
- Java 17 (OpenJDK)
- Android SDK (API 35, Build Tools 35.0.0)
The script also automatically:
- Creates secure database credentials
- Generates an admin account with a secure password
- Configures the builder server with PM2
- Registers the builder in the database
- Sets up UFW firewall
- Enables automatic SSL renewal
Step 1: Upload Files via SFTP
Upload the entire contents of your CodeCanyon ZIP package to /home/ on your VPS.
Connect to VPS via SFTP
Use an SFTP client like FileZilla, WinSCP, or Cyberduck to connect to your VPS using the root credentials provided by your VPS provider.
Upload Everything to /home/
Extract the CodeCanyon ZIP file and upload all folders to /home/ on your VPS:
/home/
├── Documentation/ (optional - for reference)
├── Install/ (Laravel app + setup script)
│ ├── app/
│ ├── config/
│ ├── database/
│ ├── public/
│ ├── resources/
│ ├── routes/
│ ├── storage/
│ ├── vendor/
│ ├── autosetup.sh ← Setup script
│ └── ... (other Laravel files)
└── Builder/ (Builder server)
└── prebuilt/
├── appy-builder-linux
├── templates/
└── storage/
The Laravel application files are at the root of the Install/ folder. The setup script will automatically organize these files to the correct locations.
Step 2: Connect via SSH
Connect to your VPS using SSH with root access:
ssh root@your-server-ip
Example:
Step 3: Run the Setup Script
Run the setup script from your SSH terminal (you'll typically be in /root/ after logging in):
bash /home/Install/autosetup.sh
The script will prompt you for:
- Domain Name - Your domain (e.g.,
example.comorapp.example.com) - Purchase Code - Your CodeCanyon purchase code (optional, can be set later)
Tip: You can also pass arguments directly: bash /home/Install/autosetup.sh --domain example.com --purchase-code ABC123
Script Execution
After confirming, the script will begin installing components. This process takes approximately 10-15 minutes. You'll see progress updates for each step:
[INFO] Updating package repositories...
[SUCCESS] System packages updated successfully
[INFO] Installing PHP 8.4 and extensions...
[SUCCESS] PHP installed: PHP 8.4.x
[INFO] Installing MySQL 8.0...
[SUCCESS] MySQL 8.0 installed and secured
... and so on
Step 4: Configure DNS
During the SSL certificate step, the script will pause and display your server's IP address. You need to configure your DNS before continuing.
Add DNS A Record
Go to your domain registrar or DNS provider and add an A record pointing to your server:
| Type | Name | Value | TTL |
|---|---|---|---|
| A | @ (or your subdomain) | Your server IP | 300 or Auto |
| A | www | Your server IP | 300 or Auto |
Verify DNS Propagation
Wait for DNS propagation (usually a few minutes). You can verify using:
- dnschecker.org - Check DNS propagation worldwide
nslookup yourdomain.com- Command line check
Continue Installation
Once DNS is configured, press Enter in the SSH terminal to continue. The script will obtain your SSL certificate automatically.
Post-Installation
When the script completes, it displays all your credentials. Save these immediately!
═══════════════════════════════════════════════════════════════════
APPY INSTALLATION COMPLETED!
═══════════════════════════════════════════════════════════════════
ACCESS YOUR PLATFORM:
Website: https://yourdomain.com
ADMIN LOGIN:
URL: https://yourdomain.com/login
Email: [email protected]
Password: [auto-generated]
DATABASE CREDENTIALS:
Host: localhost
Database: appy
Username: appy_xxxx
Password: [auto-generated]
MySQL Root: [auto-generated]
DATABASE MANAGER:
Adminer: https://yourdomain.com/adminer
System: MySQL
Server: localhost
Username: appy_xxxx
Password: [auto-generated]
BUILDER SERVER:
URL: http://127.0.0.1:8080
Server Key: [auto-generated]
Verify Installation
The script automatically verifies all services are running. You can also manually check:
# Check web services
systemctl status nginx
systemctl status php8.4-fpm
systemctl status mysql
# Check builder server
pm2 status
# Check SSL certificate
sudo certbot certificates
Useful Commands
| Action | Command |
|---|---|
| View builder logs | pm2 logs appy-builder |
| Restart builder | pm2 restart all |
| Restart Nginx | systemctl restart nginx |
| View installation log | cat /home/install.log |
| Check Java version | java -version |
| List Android SDK | sdkmanager --list_installed |
Adminer Database Manager
Adminer is a lightweight database management tool that comes pre-installed. It provides a web interface for managing your MySQL database.
Accessing Adminer
Navigate to https://yourdomain.com/adminer in your browser. You'll be prompted to login with your database credentials:
- System: MySQL
- Server:
localhost - Username: Your generated database username (e.g.,
appy_xxxx) - Password: Your generated database password
- Database:
appy(leave blank to see all databases)
Removing Adminer
If you don't need Adminer or want to remove it for security:
sudo rm /var/www/html/adminer.php
After deletion, the /adminer URL will return a 404 error.
Alternative Database Management
You can also manage your database via SSH:
# Connect to MySQL as root
mysql -u root -p
# Or use Laravel's tinker from your app directory
cd /home/appy
php artisan tinker
Troubleshooting
SSL Certificate Failed
If SSL certificate generation fails:
- Verify your domain DNS is pointing to the server IP
- Wait a few more minutes for DNS propagation
- Run certbot manually:
sudo certbot --nginx -d yourdomain.com
Builder Not Starting
If the builder fails to start:
# Check logs for errors
pm2 logs appy-builder --lines 50
# Ensure environment is loaded
source /etc/profile.d/java.sh
source /etc/profile.d/android.sh
# Restart the builder
cd /home/appy-builder
pm2 restart all
Permission Errors
If you encounter permission errors:
# Reset Laravel permissions
cd /home/appy
chown -R www-data:www-data .
chmod -R 755 .
chmod -R 775 storage bootstrap/cache
Database Connection Failed
If Laravel can't connect to the database:
# Check MySQL is running
systemctl status mysql
# Verify credentials in .env file
cat /home/appy/.env | grep DB_
# Test connection
mysql -u [username] -p[password] [database]
Viewing Logs
For detailed troubleshooting, check these log files:
# Installation log
cat /home/install.log
# Laravel logs
tail -f /home/appy/storage/logs/laravel.log
# Nginx error logs
tail -f /var/log/nginx/error.log
# Builder logs
pm2 logs appy-builder
Need Help? If you're still experiencing issues, contact our support team with the contents of /home/install.log.
© 2026 Titan Systems. All Rights Reserved.