Skip to content

Frequently Asked Questions ​

General ​

What is SilkPanel? ​

SilkPanel is a CMS for „Silkroad Online“ build on laravel.

What are the system requirements? ​

Minimum Requirements:

  • PHP 8.3 or higher
  • MySQL 5.7+ or MariaDB 10.3+
  • Node.js 18+
  • 2GB RAM (4GB recommended for production)
  • 10GB disk space

Recommended for Production:

  • PHP 8.3 or 8.4
  • MySQL 8.0+ or MariaDB 10.6+
  • Node.js 20 LTS
  • 8GB+ RAM
  • 50GB+ SSD storage

Installation ​

What's the easiest way to get started? ​

For local development on Windows, we recommend using Laragon. It comes pre-packaged with PHP, Apache, Nginx, and MySQL, making setup incredibly fast. See our Windows Installation Guide.

For production on a server, use Ubuntu 22.04 LTS with Nginx. See our Ubuntu Installation Guide.

Do I need to install PHP, Composer, and Node.js separately? ​

Windows with Laragon: No, Laragon includes PHP and other tools. You still need to install Git, Composer (or it's included in some Laragon versions), and Node.js.

Ubuntu: Yes, you need to install all of them separately. Follow our Ubuntu Installation Guide for step-by-step instructions.

How long does the installation take? ​

Typically 15-30 minutes depending on your internet speed and system performance. The longest part is usually downloading Node.js modules (npm install) and PHP packages (composer install).

What does the installation wizard do? ​

The installation wizard at /install performs:

  1. Database setup and migrations
  2. Administrator account creation
  3. Initial configuration setup
  4. License key verification
  5. Application initialization

Where do I configure the Composer API token for the private repository? ​

The API token is no longer written into composer.json.

Your composer.json repository entry should only contain the repository URL:

json
"repositories": [
   {
      "type": "composer",
      "url": "https://composer.devso.me"
   }
]

Set the API token globally via Composer auth headers:

bash
composer config --global --auth custom-headers.composer.devso.me "API-TOKEN: YOUR_API_TOKEN"

If you get Setting custom-headers.composer.devso.me does not exist or is not supported by this command, run composer self-update first and then run the command again.

Check which header/token is currently configured:

bash
composer config --global custom-headers.composer.devso.me --auth

For the full license and token flow (account, server, token, and trial behavior), see the License System Guide.

Can I install multiple instances on one server? ​

Yes, but they need separate:

  • Document root folders
  • Virtual hosts/Nginx server blocks
  • Database names and users
  • Port numbers (if running multiple web servers)

Windows & Laragon ​

Why should I use Laragon instead of manual PHP installation? ​

Laragon provides:

  • Portable setup (no registry changes)
  • Easy version switching for PHP, MySQL, Node.js
  • Built-in Apache and Nginx
  • Simple project management
  • No complicated system configuration

How do I change the PHP version in Laragon? ​

  1. Right-click the Laragon tray icon
  2. Navigate to PHP > Version
  3. Select PHP 8.3
  4. Laragon will restart automatically

I'm getting "Permission Denied" errors on Windows ​

This usually happens because:

  1. Laragon or Apache isn't running as administrator
  2. Antivirus software is blocking file operations
  3. The public directory doesn't have proper permissions

Solution:

  • Run Laragon as administrator
  • Temporarily disable antivirus during development
  • Check Windows file permissions (Properties > Security)

How do I access my application from another computer on the network? ​

  1. Find your local IP address by running ipconfig in Command Prompt
  2. In Laragon, your application is accessible at http://<your-local-ip>/
  3. Make sure Windows Firewall allows HTTP traffic
  4. Both computers need to be on the same network

Can I use Laragon for production? ​

Not recommended. Laragon is designed for development only. For production, use a proper server running Ubuntu or similar Linux distribution with Nginx or Apache.


Ubuntu & Production ​

How do I connect to my Ubuntu server? ​

Use SSH from terminal:

bash
ssh user@server-ip-address

Or use an SSH client like PuTTY on Windows.

What's the difference between HTTP and HTTPS in your setup? ​

  • HTTP: Unencrypted traffic (port 80)
  • HTTPS: Encrypted traffic with SSL certificate (port 443)

For production, always use HTTPS with Let's Encrypt (free) or a commercial SSL certificate.

How do I enable HTTPS on Ubuntu? ​

We provide automated setup with Let's Encrypt in the Ubuntu Installation Guide:

bash
sudo certbot --nginx -d yourdomain.com

How often do SSL certificates renew? ​

Let's Encrypt certificates are valid for 90 days. Certbot automatically renews them 30 days before expiration. No manual intervention needed.

My site shows "Connection Refused" after setup ​

Common causes:

  1. Nginx hasn't been restarted: sudo systemctl restart nginx
  2. Firewall is blocking ports 80/443: Check UFW rules
  3. Domain isn't pointing to your server: Check DNS records
  4. Application crashed: Check logs at storage/logs/laravel.log

How do I increase PHP upload size limit on Ubuntu? ​

Edit PHP configuration:

bash
sudo nano /etc/php/8.3/fpm/php.ini

Find and modify:

ini
upload_max_filesize = 100M
post_max_size = 100M

Then restart PHP-FPM:

bash
sudo systemctl restart php8.3-fpm

Caching ​

What is caching and why is it important? ​

Caching stores frequently accessed data in memory to serve requests faster. SilkPanel caches:

  • Configuration values
  • Route definitions
  • View files
  • Database queries

This significantly reduces server load and improves response times.

How do I enable caching? ​

Run these commands in production:

bash
php artisan config:cache
php artisan route:cache
php artisan view:cache

These create cached versions of your config, routes, and views.

WARNING

Never run cache commands during active user sessions on a live application.

When should I clear the cache? ​

Clear cache when:

  • Your configuration changes (.env updates)
  • You update .php config files
  • You add/modify routes
  • You modify blade view files
  • After deploying updates
bash
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

What's the difference between cache and caching? ​

  • Cache: The storage mechanism (Files, Redis, Database, Memcached)
  • Caching: The process of storing and retrieving from cache

How do I switch cache drivers? ​

In your .env file:

md
# File-based cache (default)
CACHE_DRIVER=file

# Database cache
CACHE_DRIVER=database

# Redis cache (requires Redis)
CACHE_DRIVER=redis

Redis is recommended for production as it's faster and supports cache invalidation across multiple servers.

Is caching safe? ​

Yes, when used correctly. However:

  • Never cache sensitive user data like passwords
  • Clear cache when permissions change
  • Be careful with database query caching if data changes frequently
  • Always test caching thoroughly before deploying to production

Roles & Permissions ​

What roles are available in SilkPanel? ​

SilkPanel includes predefined roles:

  • Super Admin: Full access to everything
  • Supporter: Can manage some part stuff
  • Player: Normal registered user

How do I assign roles to users? ​

  1. Go to Admin Panel → Users Management
  2. Select the user to edit
  3. Choose the desired role
  4. Assign specific servers if needed (for limited roles)
  5. Save changes

Can I create custom roles? ​

No.

How do I remove a user's access? ​

  1. Go to Admin Panel → Users Management
  2. Find the user
  3. Either:
    • Delete the user account
    • Block the user (if you want to keep their data but prevent login)

What if a user forgets their password? ​

Admins can:

  1. Go to Users Management
  2. Find the user
  3. Click "Reset Password"
  4. The user will receive an email with a password reset link (if email is configured)

Users can also use the "Forgot Password" link on the login page if email is configured.


Laravel ​

What version of Laravel does SilkPanel use? ​

SilkPanel is built on Laravel. This ensures access to the latest features and security updates.

Can I deploy on shared hosting? ​

SilkPanel has relatively high requirements and is better suited for:

  • Dedicated servers
  • VPS (Virtual Private Servers)
  • Cloud platforms (AWS, DigitalOcean, Linode, etc.)

Shared hosting often lacks required PHP extensions or has restrictive configurations.

How do I run migrations? ​

To apply database migrations:

bash
php artisan migrate

This creates/updates database tables.

How do I rollback migrations? ​

To undo the last batch of migrations:

bash
php artisan migrate:rollback

To rollback all migrations:

bash
php artisan migrate:reset

What are Eloquent models? ​

Eloquent is Laravel's ORM (Object-Relational Mapping). In SilkPanel, models like User, Server, Subscription represent database tables and allow easy database operations in code.

How do I debug a Laravel application? ​

  1. Tail application logs:

    bash
    tail -f storage/logs/laravel.log
  2. Enable debug mode in .env:

    md
    APP_DEBUG=true

    WARNING

    Only enable APP_DEBUG=true during development. Never in production!

  3. Use Laravel Tinker for interactive debugging:

    bash
    php artisan tinker

What are Laravel Queues? ​

Queues allow you to defer time-consuming tasks to process them asynchronously. SilkPanel uses queues for:

  • Sending emails
  • Processing server health checks
  • Handling webhooks
  • Running background jobs

Troubleshooting ​

The application works locally but fails on the server ​

Common causes:

  1. Different PHP version on server (check php -v)
  2. Missing PHP extensions (check php -m)
  3. Incorrect .env configuration
  4. Database connection issues
  5. File permissions problems

Solution: Check storage/logs/laravel.log for specific error messages.

Emails are not sending ​

  1. Check mail driver in .env: MAIL_MAILER=smtp (recommended)
  2. Verify SMTP credentials are correct
  3. Check if your hosting allows outgoing SMTP connections
  4. Run: php artisan tinker then Mail::raw('Test', fn($m) => $m->to('[email protected]'));

Database migration fails ​

  1. Ensure database user has all required privileges
  2. Check database name in .env
  3. Run: php artisan migrate:rollback to undo partial migrations
  4. Check storage/logs/laravel.log for specific errors

500 Internal Server Error ​

  1. Check application logs: tail -f storage/logs/laravel.log
  2. Enable DEBUG mode temporarily: APP_DEBUG=true in .env
  3. Clear all caches: php artisan cache:clear && php artisan config:clear
  4. Ensure storage/ and bootstrap/cache/ are writable

Search and others not working ​

Please check your network tab in browser's developer tools. If you see that the requests is going for http instead of https, please check your APP_URL in .env file and make sure it is set to https://yourdomain.com. Also put the APP_ENV=production in .env file to make sure that the application is running in production mode and not in development mode.

After that you can run php artisan config:cache to make sure that the configuration is cached and the application is running with the latest configuration.

Images are not showing ​

Please check in your /publicfolder if there is an existing storage folder.

If not, please run php artisan storage:link to create a symbolic link from public/storage to storage/app/public. This will allow the application to access the images stored in the storage folder.

If yes, delete the existing storage folder in the /public folder and run php artisan storage:link again to create a new symbolic link.


More Questions? ​

If your question isn't answered here, please:

Released under the PolyForm Shield License 1.0.0.