Przejdź do głównej zawartości

Puffer Panel

Tutaj nauczysz się jak utworzyć swój hosting dzięki platformie Puffer Panel.

uwaga

Wszystkie kroki zostały sprawdzone na ubuntu-22.04.4-live-server-amd64. Nie ma pewności, czy zadziałają na innych platformach.

Instalacja

Po zalogowaniu się na twój serwer ubuntu wprowadź komendę:

sudo su
cd

Sprawi ona, że wszystkie komendy wykonywane w konsoli będą jako administrator.

wskazówka

Polecam wykonywać wszystkie polecenia poprzez ssh.

Następnym krokiem jest wpisanie poniższych poleceń. Zakrualizują one wymagane biblioteki, pobiorą wymagane zależności oraz ustawią ważne funkcje.

sudo apt update
sudo apt upgrade
curl -s https://packagecloud.io/install/repositories/pufferpanel/pufferpanel/script.deb.sh | sudo bash
sudo apt install pufferpanel
sudo systemctl enable pufferpanel
sudo systemctl start pufferpanel
sudo ufw allow 8080/tcp
sudo ufw allow 5657/tcp
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
sudo apt install npm
sudo visudo

Jak zapewne zauważyliście w konsoli otworzył się wam plik /etc/sudoers.tmp. Na końcu tego pliku(ostatnia, pusta linijka) wklej poniższe zdanie:

pufferpanel ALL=(ALL) NOPASSWD: ALL

Następnie kliknij CTRL + X, kliknijcie klawisz y a potem klawisz ENTER. Po tych krokach wpiszcie:

sudo visudo -c

Dodawanie bazy danych

W wielu waszych projektach wymagana będzie baza danych. W tym kroku zainstalujemy bazę mysql.

Zaczynamy od wpisania paru komend:

sudo apt install mysql-server
sudo mysql
alter user 'root'@'localhost' identified with mysql_native_password by 'password';
FLUSH PRIVILEGES;
exit
sudo apt install php
sudo apt install phpmyadmin
sudo nano /etc/phpmyadmin/apache.conf

Podczas instalacji phpmyadmin pojawi się wam okno konfigurujące. Kliknijcie SPACJĘ, a następnie klawisz ENTER. Pod koniec instalacji mogą pojawić się dwa podobne okna. W obu przypadkach kliknijcie ENTER.

Po ukończeniu instalacji otworzy się wam pewien plik. Na jego końcu wklejcie ten kod:

Listen 8081

<VirtualHost *:8081>
ServerName phpmyadmin
DocumentRoot /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/phpmyadmin_error.log
CustomLog ${APACHE_LOG_DIR}/phpmyadmin_access.log combined
</VirtualHost>

Kliknij CTRL + X, kliknijcie klawisz y a potem klawisz ENTER.

Aby dokończyć ustawianie phpMyAdmin otwórzcie plik /etc/apache2/ports.conf:

sudo nano /etc/apache2/ports.conf

W owym pliku zakomentujcie linijkę Listen 80 dodając na jej początku #. Cała linijka powinna wyglądać tak: #Listen 80. Kliknij CTRL + X, kliknijcie klawisz y a potem klawisz ENTER.

Następnym krokiem jest wykonanie poniższych poleceń:

sudo systemctl restart apache2
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

W nowo otwartum pliku zamień bind-address = 127.0.0.1 na #bind-address = 0.0.0.0(linijka do skopiowania poniżej).
Następnie kliknij CTRL + X, kliknijcie klawisz y a potem klawisz ENTER.

Zbliżając się do końca wprować kolejne polecenia do konsoli:

sudo /etc/init.d/mysql restart
sudo apt install nginx
sudo nano /etc/nginx/sites-enabled/pufferpanel.conf

Otworzy się wam pusty plik. Uzupełnijcie go tak jak jest to poniżej.

/etc/nginx/sites-enabled/pufferpanel.conf
server {
listen 80;
root /var/www/pufferpanel;
server_name localhost;

location ~ ^/\.well-known {
root /var/www/html;
allow all;
}

location /phpmyadmin/ {
proxy_pass http://localhost:8081;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'Origin, X-Requested-With, Content-Type, Accept';
}

location / {
proxy_pass http://localhost:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'Origin, X-Requested-With, Content-Type, Accept';
}
}

Aby zapisać plik kliknij CTRL + X, kliknijcie klawisz y a potem klawisz ENTER.

Na sam koniec wprowadź poniższe polecenia:

sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx
sudo pufferpanel user add
sudo apt install -y tzdata
sudo timedatectl set-timezone Europe/Warsaw
sudo systemctl enable systemd-timesyncd --now
sudo timedatectl set-ntp true

Zacznie się wam dodawać nowy użytkownik do panelu. Uzupełnijcie go swoimi danymi. Polecam włączyć administratora jako, że wy będziecie ustawiać panel pod siebie.

wskazówka

Aby zobaczyć swoje ip wprowadź w konsoli:

echo "Twoje ip: $(hostname -I | awk '{print $1}')"
wskazówka

Panel znajduje się na adresie twojego ip a phpMyAdmin na podstronie /phpmyadmin.

Gratulacje! Właśnie udało ci się utworzyć swój panel!

Poniżej znajdziecie ważne informacje co do jego dalszego rozwoju.

Tworzenie bazy danych

Aby utworzyć bazę danych wejdź do konsoli mysql:

mysql -u root -p 

Następnie wprowadź poniższe polecenia:

create database <databasename>;
create user '<user>'@'%' identified with mysql_native_password by 'database';
use mysql;
GRANT ALL PRIVILEGES ON <databasename>.* TO '<user>'@'%';
FLUSH PRIVILEGES;
exit
uwaga

Zamień <databasename> i <user> na swoje nazwy.

Usuwanie użytkownika i bazy danych

Aby usunąć bazę danych i jej użytkownika wejdź do konsoli mysql:

mysql -u root -p 

Następnie wprowadź poniższe polecenia:

drop schema <databasename>;
drop user '<user>'@'%';
FLUSH PRIVILEGES;
wskazówka

Aby zobaczyć informacje o użytkownikach i bazach danych wprowadź poniższe polecenia:

SHOW DATABASES;
SELECT user FROM mysql.user;
uwaga

Zamień <databasename> i <user> na swoje nazwy.