1 System Requirements
Before you begin, make sure your hosting environment meets the minimum requirements:
| Requirement | Minimum |
| PHP | 7.3+ (8.0–8.2 recommended) |
| MySQL / MariaDB | MySQL 5.7+ or MariaDB 10.3+ |
| Required PHP Extensions | pdo, pdo_mysql, mbstring, openssl, json, fileinfo, tokenizer, xml, ctype |
| Web Server | Apache with mod_rewrite or Nginx |
Important: Your domain's document root must point to the public/ folder inside the script (e.g., public_html/public). This is a Laravel security requirement.
2 Upload Files
- Unzip the StreamVault_Source package on your computer.
- Upload all files and folders to your hosting account (usually via FTP/SFTP or cPanel File Manager).
- Make sure the
vendor/ folder is included in the upload.
3 Create a Database
- Log in to your hosting control panel (cPanel, Plesk, DirectAdmin, etc.).
- Create a new MySQL Database.
- Create a Database User and assign it ALL PRIVILEGES.
- Write down the database name, username, and password — you will need them in the next step.
4 Run the Web Installer
The web installer handles everything automatically. No command line needed.
- Open your browser and go to:
https://yourdomain.com/install/
- Step 1 — Requirements Check: The installer will check your server. If everything is green, click Next.
- Step 2 — Database: Enter your database host (usually
127.0.0.1 or localhost), database name, username, and password. Click Test Connection to verify, then click Next.
- Step 3 — Site Settings: Enter your site name, site URL, admin email, and admin password. You can also add your TMDB API token here (optional). Click Install StreamVault.
- Step 4 — Installation: Wait a few seconds while the installer creates tables and seeds data.
- Done! You will see the success screen with links to your website and admin panel.
Tip: If you don't have a TMDB token yet, you can leave it blank and add it later in the .env file.
5 Post-Installation Security
- Delete the installer — Remove the
public/install/ folder from your server.
- Change default credentials — Log in to
/admin and update the admin email and password immediately.
- Enable HTTPS — Install an SSL certificate on your domain and make sure your site runs on
https://.
- Set folder permissions — Make sure these folders are writable by the web server:
storage/
bootstrap/cache/
public/assets/ and all subfolders
6 TMDB API Setup (Recommended)
StreamVault can automatically fetch movie posters, backdrops, and metadata from The Movie Database.
- Go to themoviedb.org/settings/api.
- Sign up or log in.
- Copy the API Read Access Token (the long JWT string).
- Open the
.env file on your server and add:
TMDB_TOKEN=your_long_token_here
TMDB_LANG=en
- Save the file. The app will read the token automatically.
Note: Use the long API Read Access Token (JWT), not the short API Key. The short key will not work.
7 First Steps in the Admin Panel
- Visit
https://yourdomain.com/admin and log in.
- Go to Settings > General and upload your logo, favicon, and site description.
- Go to Settings > Search Engine to configure SEO titles and meta tags.
- Add your first Genre, then add a Movie or Series.
- If you plan to run ads, go to Settings > Advertisements.
- Generate a sitemap at Sitemaps and submit it to Google Search Console.
8 Troubleshooting
500 Internal Server Error
- Make sure
.env exists and is readable.
- Ensure
storage/logs/ is writable.
- Check your web server error logs.
Database Connection Failed
- Double-check the database host, name, username, and password.
- Try using
127.0.0.1 instead of localhost for the host.
- Confirm the database user has ALL PRIVILEGES.
CSS / JS Not Loading
- Make sure
APP_URL in .env matches your actual domain (https://yourdomain.com).
- Run
php artisan storage:link if images are missing.
Image Upload Fails
- Ensure
public/assets/ and subfolders are writable (755 or 775).
- Make sure the
fileinfo and gd PHP extensions are enabled.
Still stuck? Make sure your server meets all requirements listed in Step 1. Most issues are caused by missing PHP extensions or incorrect file permissions.