Für eine 'kleine Instanz' (nur eine für dich selbst und nicht viele Benutzer) ist ein VPS 200 ausreichend.
Ich empfehle, die Instanz auf einem VPS 200 einzurichten.
Wenn du das Gefühl hast, dass die Instanz langsamer wird, kannst du jederzeit über das CCP auf einen größeren Server upgraden.
Der Server muss bereits Ubuntu 22.04 installiert haben.
Du benötigst auch eine Domain. Eine Domain, die in einem Webhosting-Paket verwendet wird, ist ausreichend. (Du kannst sie weiterhin für dein Webhosting verwenden, weil wir eine Subdomain verwenden werden.)
A
aus.Zuerst musst du dich über SSH auf deinem Server anmelden, dann folge diesen Schritten:
sudo -s
ein, um Root-Rechte zu erhalten.Enter
.add-apt-repository ppa:ondrej/php -y && apt update -y && apt upgrade -y
ein, um den Server zu aktualisieren.Enter
, um fortzufahren.apt install curl nginx git zip unzip php8.2-fpm php8.2-cli php8.2-gd php8.2-curl php8.2-cli php8.2-bcmath php8.2-mysql php8.2-ctype php8.2-fileinfo php8.2-mbstring php8.2-tokenizer php8.2-xml php8.2-zip -y || curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && snap install certbot --classic
ein, um alle erforderliche Software zu installieren.Enter
, um fortzufahren.composer update
ein, um Composer zu aktualisieren. (Wenn gefragt wird, ob du als Root weitermachen möchtest, gib Ja
ein und drücke Enter
, um fortzufahren.)Folge diesen Schritten, um MariaDB zu installieren und zu konfigurieren:
apt install mariadb-server
ein, um MariaDB zu installieren.mysql_secure_installation
aus, um MariaDB zu konfigurieren.Enter
, um fortzufahren (es gibt noch kein Passwort).n
ein und drücke Enter
, um fortzufahren.n
ein und drücke Enter
, um fortzufahren.y
ein und drücke Enter
, um fortzufahren.y
ein und drücke Enter
, um fortzufahren.y
ein und drücke Enter
, um fortzufahren.y
ein und drücke Enter
, um fortzufahren.mysql -u root
ein, um dich bei MariaDB anzumelden.CREATE DATABASE 2fauth;
ein, um die Datenbank zu erstellen.CREATE USER '2fauth'@'localhost' IDENTIFIED BY '<REPLACE_WITH_PASSWORD>';
ein, um einen Benutzer zu erstellen. Ersetze <REPLACE_WITH_PASSWORD>
durch ein Passwort deiner Wahl.GRANT ALL PRIVILEGES ON 2fauth.* TO '2fauth'@'localhost';
ein, um dem Benutzer alle Rechte zu gewähren.FLUSH PRIVILEGES;
ein, um die Änderungen anzuwenden.exit;
ein, um MariaDB zu verlassen.mkdir /var/www/2fauth && chown www-data 2fauth && cd /var/www/2fauth
ein, um ein Verzeichnis für 2FAuth zu erstellen.sudo su -l www-data -s /bin/bash
ein, um zum Benutzer www-data zu wechseln.curl https://api.github.com/repos/Bubka/2FAuth/tags | grep "tarball_url" | grep -Eo 'https://[^\"]*' | sed -n '1p' | xargs wget -O - | tar -xz --strip-components=1 -C /var/www/2fauth
ein, um die neueste Version von 2FAuth herunterzuladen und zu extrahieren.cd /var/www/2fauth && composer install --prefer-dist --no-scripts --no-dev && exit
ein, um die Abhängigkeiten zu installieren.php artisan 2fauth:install
ein, um die Installation zu starten.http://2fauth.example.com
) und drücke Enter
.my
ein und drücke fünfmal Enter
, um MariaDB als Datenbanktreiber auszuwählen.Enter
.Enter
.mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.old && nano /etc/nginx/nginx.conf
ein, um die Standardkonfigurationsdatei von nginx zu bearbeiten.user www-data;
events {}
http {
include mime.types;
access_log /dev/stdout;
error_log /dev/stderr;
server {
listen 80;
server_name 2fauth.example.com;
root /var/www/2fauth/public;
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
}
Strg + X
, dann Y
und dann Enter
drückst.systemctl reload nginx
eingibst.certbot --nginx
ein, um die CertBot-Einrichtung zu starten.Enter
, um die einzige Option (Deine Domain) auszuwählen.Du benötigst eine Firewall, um deinen Server vor unerwünschten Verbindungen zu schützen.
Du wirst ufw
(Uncomplicated Firewall) verwenden, um die Firewall einzurichten, da diese einfach zu bedienen und zu konfigurieren ist und auch auf Ubuntu vorinstalliert ist.
ufw allow ssh && ufw allow http && ufw allow https && ufw enable
ein, um SSH-, HTTP- und HTTPS-Verbindungen zuzulassen und die Firewall zu aktivieren.Y
und dann Enter
, um zu bestätigen.https://2fauth.example.com
).Ich empfehle, die Registrierung zu deaktivieren, nachdem du dein Konto registriert hast. Das kannst du tun, indem du die Einstellungen öffnest und am Ende der Seite "Registrierung deaktivieren" aktivierst.
Du hast jetzt erfolgreich 2FAuth installiert!
Ab sofort ist deine 2FAuth-Instanz unter der Subdomain verfügbar (z.B. https://2fauth.example.com
).
Vielen Dank, dass du dieses Tutorial verwendet hast!
Copyright (c) 2023 Konstantin Protzen
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicence, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
By making a contribution to this project, I certify that:
The contribution was created in whole or in part by me and I have the right to submit it under the licence indicated in the file; or
The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate licence and I have the right under that licence to submit that work with modifications, whether created in whole or in part by me, under the same licence (unless I am permitted to submit under a different licence), as indicated in the file; or
The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the licence(s) involved.