Installation

1. Installation aus den Quellen

mkdir -p ~/projects && cd ~/projects

# Diesen Befehl verwenden, wenn der Server über SSH Key verbunden ist
git clone git@bitbucket.org:locr/phpuserserver.git PhpUserServer
# Alternativ Repository Access Token verwenden
git clone https://x-token-auth:{access_token}@bitbucket.org/locr/phpuserserver.git PhpUserServer

cd PhpUserServer

# Die `.env.example` Datei nach `.env` kopieren und die Werte anpassen.
cp .env.example .env

# für Entwicklungsumgebung
composer install

2. Container Installation

2.1. Image bauen, Container erstellen und starten

./scripts/install_service.sh

2.2. Update Script im home-Verzeichnis erstellen

cat <<EOF >~/update_user_server.sh
#!/usr/bin/env bash

cd ${PWD}
git pull

cd scripts
./update_service.sh
EOF

chmod +x ~/update_user_server.sh

2.3. nginx Konfiguration hinzufügen

# Für den Zugriff unter https://<domain.tld>/users/
sudo cp installation_files/nginx/conf.d/users /etc/nginx/conf.d

# für den Zugriff unter einer subdomain => https://users.<domain.tld>/
sudo cp installation_files/nginx/sites-available/users.locr.com /etc/nginx/sites-available
sudo ln -s /etc/nginx/sites-available/users.locr.com /etc/nginx/sites-enabled/

Sicherstellen, dass die folgenden Zeilen in der Datei /etc/nginx/sites-enabled/default vorhanden sind.

server {
    ...
    include conf.d/users;
    ...
}

nginx Konfiguration testen und neustarten

sudo nginx -t
sudo systemctl restart nginx

2.4. Datenbank und Tabellen erstellen

sudo mysql -p --execute="CREATE DATABASE IF NOT EXISTS users"
sudo mysql -p users < sql/mysql/create_tables.sql
sudo mysql -p users < sql/mysql/add_constraint.sql

3. Backup einspielen

sudo apt install bzip2

Aktuelle Dateien von Hetzner Storage Box runterladen (users-db-(<Day>).tar.bz2.enc)

Dateien entschlüsseln, entpacken und in die Datenbank importieren

openssl aes-256-cbc -d -pbkdf2 -in "users-db-(<Day>).tar.bz2.enc" -out "users-db-(<Day>).tar.bz2"
tar xjf "users-db-(<Day>).tar.bz2"
sudo mysql -p users < users.sql