> ## Documentation Index
> Fetch the complete documentation index at: https://docs.startmyvpn.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Get StartMyVPN running in under 15 minutes.

## Prerequisites

Before you begin, make sure you have:

* A server running **Ubuntu 22.04+** with SSH access
* **PHP 8.2+** and **Composer** installed
* **MySQL 8.0+** running
* **Nginx** or Apache
* A domain pointed at your server

See the full [requirements page](/getting-started/requirements) for details.

***

## Step 1 — Install the application

Download the latest `.zip` from your customer portal, upload it to your server, and extract it:

```bash theme={null}
unzip startmyvpn-latest.zip -d /var/www/startmyvpn
cd /var/www/startmyvpn

# Install dependencies
composer install --no-dev --optimize-autoloader
npm install && npm run build

# Create config
cp .env.example .env
php artisan key:generate
```

Edit `.env` with your database credentials, app URL, and mail settings:

```ini theme={null}
APP_URL=https://yourdomain.com
DB_DATABASE=startmyvpn
DB_USERNAME=your_user
DB_PASSWORD=your_password
```

Run migrations, seed, and publish required assets:

```bash theme={null}
php artisan migrate --force
php artisan db:seed
php artisan storage:link
php artisan livewire:publish --assets
```

***

## Step 2 — Configure the web server

**Nginx** (quick example — see [full guide](/getting-started/web-server)):

```nginx theme={null}
server {
    listen 80;
    server_name yourdomain.com;
    root /var/www/startmyvpn/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;
    }
}
```

Set up SSL with Let's Encrypt:

```bash theme={null}
sudo certbot --nginx -d yourdomain.com
```

***

## Step 3 — Start queue workers and the scheduler

```bash theme={null}
# One-time cron entry
echo "* * * * * www-data cd /var/www/startmyvpn && php artisan schedule:run >> /dev/null 2>&1" | sudo tee /etc/cron.d/startmyvpn
```

Set up Supervisor for queue workers — see [Queue Workers](/getting-started/queue-workers).

***

## Step 4 — Complete setup in the admin panel

1. Open `https://yourdomain.com/setup` in your browser
2. Log in with the default admin credentials from the seeder
3. **Change your password immediately**
4. Navigate to **Admin → Settings** to configure:
   * App name and branding
   * SMTP email settings
   * Payment gateways (Stripe, PayPal, or CryptAPI)
   * Cloud provider keys (DigitalOcean / Vultr)

***

## Step 5 — Create your first plan and deploy a server

1. Go to **Admin → Plans → Create Plan** — define bandwidth, speed limits, trial days
2. Add a billing cycle under the plan (e.g. Monthly at \$9.99)
3. Go to **Admin → Deployments → DigitalOcean** (or Vultr) to deploy your first VPN server
4. Create a **Server Group** and add the server to it
5. Assign the server group to your plan

Your VPN service is now live. Customers can register at `yourdomain.com`, subscribe, and download their VPN configs.
