Native Update Guide

Guide for updating your native Pyrodactyl installation and resolving common issues

Updating Your Native Installation

Before proceeding with any updates, make sure to back up your database and panel files.

Prerequisites

  • Root or sudo access on your server
  • Latest NodeJS LTS installed
  • Composer installed globally
  • Backup of your current installation

Update Steps

  1. Install a Node Version Manager:

    curl -o- https://fnm.vercel.app/install | bash
  2. Install Node 22:

    fnm install 22
  3. Navigate to your Pyrodactyl installation directory:

    cd /path/to/your/pyrodactyl
  4. Download the latest release:

    curl -L https://github.com/pyrohost/pyrodactyl/releases/latest/download/panel.tar.gz | tar -xzv
  5. Enable maintenance mode:

    php artisan down
  6. Set proper permissions:

    chmod -R 755 storage/* bootstrap/cache
  7. Install PHP dependencies:

    composer install --no-dev --optimize-autoloader
  8. Clear application cache:

    php artisan view:clear
    php artisan config:clear
  9. Run database migrations:

    php artisan migrate --seed --force
  10. Set ownership based on your web server:

    # For NGINX (non-CentOS)
    chown -R www-data:www-data /var/www/pterodactyl/*
    
    # For NGINX (CentOS)
    chown -R nginx:nginx /var/www/pterodactyl/*
    
    # For Apache (CentOS)
    chown -R apache:apache /var/www/pterodactyl/*
  11. Restart the queue worker:

    php artisan queue:restart
  12. Install and build frontend assets:

    npm install -g corepack@latest
    corepack enable pnpm
    pnpm i --frozen-lockfile && pnpm run ship
  13. Verify permissions:

    chmod -R 755 storage/* bootstrap/cache/
  14. Disable maintenance mode:

    php artisan up

Troubleshooting Common Issues

Hydration Mismatch Errors

If you encounter hydration mismatch errors in the browser console, try these steps:

  1. Clear your browser cache and cookies

  2. Rebuild the frontend assets:

    pnpm i --frozen-lockfile && pnpm run ship
  3. Clear the application cache:

    php artisan view:clear
    php artisan config:clear

Hydration mismatches often occur when the server-rendered content doesn't match the client-side rendered content. This can happen due to browser extensions or cached assets.

Permission Issues

If you encounter permission issues after updating:

  1. Verify the ownership of your files matches your web server user

  2. Ensure storage and cache directories are writable:

    chmod -R 755 storage/* bootstrap/cache/
    chown -R www-data:www-data storage bootstrap/cache

Replace www-data with your web server user (nginx, apache) if different.