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.

Optional & Advanced: This VPS auto-setup script is entirely optional and provided as a convenience for advanced users. It is not risk-free and modifies your server configuration. If you choose to use this script without following the exact recommended specifications (including OS version and storage type), issues encountered are not covered by customer support. For guaranteed support, use our standard web-based installation on a pre-configured hosting environment.

When used correctly: This is the fastest way to get Appy running with the builder server. Everything is configured automatically, including SSL certificates.

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
Get Recommended VPS

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.

1

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.

2

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:

  1. Domain Name - Your domain (e.g., example.com or app.example.com)
  2. 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.

1

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
2

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
3

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)
Security Notice: Adminer provides full database access. Keep your Adminer URL and database credentials secure. If you don't need database management via web interface, you can remove it for security.

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:

  1. Verify your domain DNS is pointing to the server IP
  2. Wait a few more minutes for DNS propagation
  3. 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.