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:
- Database setup and migrations
- Administrator account creation
- Initial configuration setup
- License key verification
- 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:
"repositories": [
{
"type": "composer",
"url": "https://composer.devso.me"
}
]Set the API token globally via Composer auth headers:
composer config --global --auth custom-headers.composer.devso.me "API-TOKEN: YOUR_API_TOKEN"Check which header/token is currently configured:
composer config --global custom-headers.composer.devso.me --authFor 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?
- Right-click the Laragon tray icon
- Navigate to PHP > Version
- Select PHP 8.3
- Laragon will restart automatically
I'm getting "Permission Denied" errors on Windows
This usually happens because:
- Laragon or Apache isn't running as administrator
- Antivirus software is blocking file operations
- The
publicdirectory 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?
- Find your local IP address by running
ipconfigin Command Prompt - In Laragon, your application is accessible at
http://<your-local-ip>/ - Make sure Windows Firewall allows HTTP traffic
- 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:
ssh user@server-ip-addressOr 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:
sudo certbot --nginx -d yourdomain.comHow 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:
- Nginx hasn't been restarted:
sudo systemctl restart nginx - Firewall is blocking ports 80/443: Check UFW rules
- Domain isn't pointing to your server: Check DNS records
- Application crashed: Check logs at
storage/logs/laravel.log
How do I increase PHP upload size limit on Ubuntu?
Edit PHP configuration:
sudo nano /etc/php/8.3/fpm/php.iniFind and modify:
upload_max_filesize = 100M
post_max_size = 100MThen restart PHP-FPM:
sudo systemctl restart php8.3-fpmCaching
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:
php artisan config:cache
php artisan route:cache
php artisan view:cacheThese 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 (
.envupdates) - You update
.phpconfig files - You add/modify routes
- You modify blade view files
- After deploying updates
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clearWhat'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:
# File-based cache (default)
CACHE_DRIVER=file
# Database cache
CACHE_DRIVER=database
# Redis cache (requires Redis)
CACHE_DRIVER=redisRedis 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?
- Go to Admin Panel → Users Management
- Select the user to edit
- Choose the desired role
- Assign specific servers if needed (for limited roles)
- Save changes
Can I create custom roles?
No.
How do I remove a user's access?
- Go to Admin Panel → Users Management
- Find the user
- 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:
- Go to Users Management
- Find the user
- Click "Reset Password"
- 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:
php artisan migrateThis creates/updates database tables.
How do I rollback migrations?
To undo the last batch of migrations:
php artisan migrate:rollbackTo rollback all migrations:
php artisan migrate:resetWhat 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?
Tail application logs:
bashtail -f storage/logs/laravel.logEnable debug mode in
.env:mdAPP_DEBUG=trueWARNING
Only enable
APP_DEBUG=trueduring development. Never in production!Use Laravel Tinker for interactive debugging:
bashphp 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:
- Different PHP version on server (check
php -v) - Missing PHP extensions (check
php -m) - Incorrect
.envconfiguration - Database connection issues
- File permissions problems
Solution: Check storage/logs/laravel.log for specific error messages.
Emails are not sending
- Check mail driver in
.env:MAIL_MAILER=smtp(recommended) - Verify SMTP credentials are correct
- Check if your hosting allows outgoing SMTP connections
- Run:
php artisan tinkerthenMail::raw('Test', fn($m) => $m->to('[email protected]'));
Database migration fails
- Ensure database user has all required privileges
- Check database name in
.env - Run:
php artisan migrate:rollbackto undo partial migrations - Check
storage/logs/laravel.logfor specific errors
500 Internal Server Error
- Check application logs:
tail -f storage/logs/laravel.log - Enable DEBUG mode temporarily:
APP_DEBUG=truein.env - Clear all caches:
php artisan cache:clear && php artisan config:clear - Ensure
storage/andbootstrap/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:
- Check the Installation Guide
- Review the Configuration Documentation
- Open an issue on GitHub
- Contact us at Discord for support