5.8 KiB
title | description | published | date | tags | editor | dateCreated |
---|---|---|---|---|---|---|
VPS running Linux. | Setup of ThemeParkPanel if using a VPS running Linux. | true | 2023-02-16T21:10:48.624Z | markdown | 2023-02-16T21:10:46.768Z |
VPS running Linux
This guide will guide you through the installation of ThemeParkPanel on an VPS running Linux.
It assumes you are on the Ubuntu distro. If you are on another distro, some commands my vary.
1. Webserver setup (LEMP)
We are going to use Nginx and MariaDB for this installation. Run the following commands in sequence.
# Add 'add-apt-repository` command
apt -y install software-properties-common curl apt-transport-https ca-certificates gnupg
# Install the required repositories
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
# Update repositories list
apt update
# Install dependencies
apt -y install php8.1 php8.1-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip} openssl git unzip mariadb-server nginx
# Install composer
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
# Create panel directory
mkdir -p /var/www/themeparkpanel
2. Uploading the files
You need remote file transfer software to upload the files to your VPS. You can use for example Filezilla or WinSCP. This guide assumes you have WinSCP.
- Click on New Site. Then enter your SSH details. Then click on Login.
![screenshot_114.png](/screenshot_114.png =25%x)
- Go to the
/var/www/themeparkpanel
directory and upload the files of the SSH zip. - Run the following command to fix the file permissions:
chmod -R 755 storage/* bootstrap/cache/
3. Creating the MySQL database
- Run the following command to enter the MariaDB console.
mysql -u root -p
And enter the following SQL commands in sequence.
# Make sure to replace 'yourPassword' with a secure password
CREATE USER 'themeparkpanel'@'%' IDENTIFIED BY 'yourPassword';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'themeparkpanel'@'%' WITH GRANT OPTION;
exit
- Open the
/etc/mysql/mariadb.conf.d/50-server.cnf
file and replace the value of thebind-address
setting with0.0.0.0
.
[mysqld]
# Replace the 127.0.0.1 with 0.0.0.0
bind-address=0.0.0.0
- Run the following command to restart the MariaDB server.
systemctl restart mariadb
4. Configuration of the panel
- Copy the .env.example file to .env (using
cp .env.example .env
) and open the.env
file.- Change
APP_URL
to the URL of your panel - At
DB_
change the credentials to the database details created above. - At
MAIL_
change the credentials to the credentials of an email account.
- Change
- Run the followings command in sequence to proceed the installation.
# Install dependencies
composer install --no-dev --optimize-autoloader
# Generate the key
php artisan key:generate --force
# Populate the database
php artisan migrate --force
# Fix file permissions for the panel
chown -R www-data:www-data /var/www/themeparkpanel/*
5. Configuration of the webserver
Choose if you want to add SSL encryption to your panel or not.
Tabs
Without SSL
We include an example configuration to serve our panel. Make sure to replace %DOMAIN
with the full domain, and %PATH%
with the full installation path (probably /var/www/themeparkpanel
).
- Create
/etc/nginx/sites-available/themeparkpanel.conf
and put the following content in it.
server {
listen 80;
listen [::]:80;
root /var/www/themeparkpanel/public;
server_name %DOMAIN%;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
location ~ /.well-known {
allow all;
}
}
- Run the following commands.
# Link the configuration to the enabled directory
sudo ln -s /etc/nginx/sites-available/themeparkpanel.conf /etc/nginx/sites-enabled/themeparkpanel.conf
# Restart Nginx
systemctl restart nginx
With SSL
We include an example configuration to serve our panel. Make sure to replace %DOMAIN
with the full domain, and %PATH%
with the full installation path (probably /var/www/themeparkpanel
).
- Create
/etc/nginx/sites-available/themeparkpanel.conf
and put the following content in it.
server {
listen 80;
listen [::]:80;
server_name %DOMAIN%;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/%DOMAIN%/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/%DOMAIN%/privkey.pem;
root /var/www/themeparkpanel/public;
index index.php index.html;
server_name %DOMAIN%;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
location ~ /.well-known {
allow all;
}
}
-
Create your SSL certificate. You can use for example Certbot to do this for you.
-
Run the following commands.
# Link the configuration to the enabled directory
sudo ln -s /etc/nginx/sites-available/themeparkpanel.conf /etc/nginx/sites-enabled/themeparkpanel.conf
# Restart Nginx
systemctl restart nginx