# Startseite

## Willkommen auf der Docs Seite von Ugurlu.de

* Hier werden laufe der Tage, Wochen, Monaten Tutorials zu Installationen geben, die euch helfen werden. Basiert sind die meisten Sachen auf Linux (Debian & Ubuntu)


# PhpMyAdmin Installation

* Aktualisiere die Paketlisten & installiere die Updates.

```bash
apt update && apt upgrade -y
```

* Installiere für die weitere Installation benötigte Pakete.

```bash
apt install ca-certificates nano lsb-release gnupg apt-transport-https curl unzip -y
```

Wähle dein Betriebssystem aus. Solltest du nicht wissen, welches Betriebssystem du verwendest, kannst du dies mit dem Befehl

```bash
cat /etc/issue
```

nachschauen.

{% tabs %}
{% tab title="Debian" %}

* Füge die Paket-Quelle für die PHP8.2 Version hinzu.

```bash
curl -fsSL https://packages.sury.org/php/apt.gpg -o /usr/share/keyrings/php-archive-keyring.gpg
```

```bash
echo "deb [signed-by=/usr/share/keyrings/php-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
```

{% endtab %}

{% tab title="Ubuntu" %}

* Füge die Paket-Quelle für die PHP8.0 Version hinzu.

```bash
apt install software-properties-common -y
```

```bash
add-apt-repository ppa:ondrej/php
```

{% endtab %}
{% endtabs %}

* Aktualisiere noch einmal die Paketlisten

```bash
apt update
```

## Installiere den Apache2 Webserver

```bash
apt install apache2 -y
```

* Installiere PHP8.0 sowie die PHP-Module

```bash
apt install php8.2 php8.2-cli php8.2-common php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-readline php8.2-xml php8.2-xsl php8.2-zip php8.2-bz2 libapache2-mod-php8.2 -y
```

## Installiere MySQL

```bash
apt install mariadb-server mariadb-client -y
```

Schließe die MySQL Installation ab

{% tabs %}
{% tab title="Debian 10 & Ubuntu" %}
Gebe den Befehl

```bash
mysql_secure_installation
```

Bei der ersten Abfrage des aktuellen Passworts drücke einfach "Enter". Bestätige die nächste Frage bzgl. der Änderung des Root-Passworts mit "Enter". Nun musst du ein Passwort für den Root-Benutzer des MariaDB-Servers vergeben. Während der Eingabe erscheinen keine Zeichen, das ist jedoch normal. Bestätige alle darauffolgenden Fragen (Löschung des anonymen Benutzers, Verbieten des externen Root-Logins aus Sicherheitsgründen, Entfernen der Testdatenbank und Aktualisieren der Rechte) ebenfalls mit "Enter".
{% endtab %}

{% tab title="Debian 11" %}
Gebe den Befehl

```bash
mysql_secure_installation
```

Bei der ersten Abfrage des aktuellen Passworts drücke einfach "Enter". Gebe bei der anschließenden Frage bzgl. des Wechsels zur Unix-Socket-Authentifizierung "n" ein und drücke die "Enter"-Taste. Bestätige die nächste Frage bzgl. der Änderung des Root-Passworts mit "Enter". Nun musst du ein Passwort für den Root-Benutzer des MariaDB-Servers vergeben. Während der Eingabe erscheinen keine Zeichen, das ist jedoch normal. Bestätige alle darauffolgenden Fragen (Löschung des anonymen Benutzers, Verbieten des externen Root-Logins aus Sicherheitsgründen, Entfernen der Testdatenbank und Aktualisieren der Rechte) ebenfalls mit "Enter".
{% endtab %}
{% endtabs %}

* Wechsel mit dem Befehl

```bash
cd /usr/share
```

in das Verzeichnis wo PhpMyAdmin installiert wird.

## Lade PhpMyAdmin herunter

```bash
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip -O phpmyadmin.zip
```

* Entpacke das Archiv

```bash
unzip phpmyadmin.zip
```

* Entferne das heruntergeladene Archiv

```bash
rm phpmyadmin.zip
```

Nenne das PhpMyAdmin Verzeichnis um

```bash
mv phpMyAdmin-*-all-languages phpmyadmin
```

Vergebe die benötigten Rechte

```bash
chmod -R 0755 phpmyadmin
```

* Erstelle die Apache Konfigurationsdatei

```bash
echo "Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>" >> /etc/apache2/conf-available/phpmyadmin.conf
```

* Aktiviere die Apache Konfigurationsdatei

```bash
a2enconf phpmyadmin
```

* Reloade den Apache Service

```bash
systemctl reload apache2
```

* Erstelle das Temporäre Verzeichnis für PhpMyAdmin

```bash
mkdir /usr/share/phpmyadmin/tmp/
```

* Gebe dem Webnutzer die Berechtigung auf das temporäre Verzeichnis zuzugreifen.

```bash
chown -R www-data:www-data /usr/share/phpmyadmin/tmp/
```

## Bis einschließlich Debian 10 oder Ubuntu

* Melde dich bei dem MySQL Server an

```bash
mysql -u root
```

* Stelle das Authentifizierungsplugin des Root-Benutzers von UNIX auf die Standardauthentifizierung um.

```bash
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
```

```bash
FLUSH PRIVILEGES;
```

Du kannst PhpMyAdmin nun mit deiner IP-Adresse oder Domain /phpmyadmin aufrufen.


# Nextcloud Installation

* Aktualisiere die Paketlisten & installiere die Updates.

```bash
apt update && apt upgrade -y
```

* Installiere für die weitere Installation benötigte Pakete.

```bash
apt install ca-certificates nano lsb-release gnupg apt-transport-https curl unzip -y
```

Wähle dein Betriebssystem aus. Solltest du nicht wissen, welches Betriebssystem du verwendest, kannst du dies mit dem Befehl

```bash
cat /etc/issue
```

nachschauen.

{% tabs %}
{% tab title="Debian" %}

* Füge die Paket-Quelle für die PHP8.2 Version hinzu.

```bash
curl -fsSL https://packages.sury.org/php/apt.gpg -o /usr/share/keyrings/php-archive-keyring.gpg
```

```bash
echo "deb [signed-by=/usr/share/keyrings/php-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
```

{% endtab %}

{% tab title="Ubuntu" %}

* Füge die Paket-Quelle für die PHP7.4 Version hinzu.

```bash
apt install software-properties-common -y
```

```bash
add-apt-repository ppa:ondrej/php
```

{% endtab %}
{% endtabs %}

* Aktualisiere noch einmal die Paketlisten

```bash
apt update
```

### Installation von Apache2

* Installiere den Apache2 Webserver

```bash
apt install apache2 -y
```

### Installation von PHP

* Installiere PHP8 sowie die PHP-Module

```bash
apt install php8.2 php8.2-cli php8.2-common php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-readline php8.2-xml php8.2-xsl php8.2-zip php8.2-bz2 libapache2-mod-php8.2 -y
```

### Installation von PHPMyAdmin

* Installiere MySQL

```bash
apt install mariadb-server mariadb-client -y
```

Schließe die MySQL Installation ab

{% tabs %}
{% tab title="Debian 10 & Ubuntu" %}
Gebe den Befehl

```bash
mysql_secure_installation
```

ein. Bei der ersten Abfrage des aktuellen Passworts drücke einfach "Enter". Bestätige die nächste Frage bzgl. der Änderung des Root-Passworts mit "Enter". Nun musst du ein Passwort für den Root-Benutzer des MariaDB-Servers vergeben. Während der Eingabe erscheinen keine Zeichen, das ist jedoch normal. Bestätige alle darauffolgenden Fragen (Löschung des anonymen Benutzers, Verbieten des externen Root-Logins aus Sicherheitsgründen, Entfernen der Testdatenbank und Aktualisieren der Rechte) ebenfalls mit "Enter".
{% endtab %}

{% tab title="Debian 11" %}
Gebe den Befehl

```bash
mysql_secure_installation
```

ein. Bei der ersten Abfrage des aktuellen Passworts drücke einfach "Enter". Gebe bei der anschließenden Frage bzgl. des Wechsels zur Unix-Socket-Authentifizierung "n" ein und drücke die "Enter"-Taste. Bestätige die nächste Frage bzgl. der Änderung des Root-Passworts mit "Enter". Nun musst du ein Passwort für den Root-Benutzer des MariaDB-Servers vergeben. Während der Eingabe erscheinen keine Zeichen, das ist jedoch normal. Bestätige alle darauffolgenden Fragen (Löschung des anonymen Benutzers, Verbieten des externen Root-Logins aus Sicherheitsgründen, Entfernen der Testdatenbank und Aktualisieren der Rechte) ebenfalls mit "Enter".
{% endtab %}
{% endtabs %}

* Wechsel mit dem Befehl

```bash
cd /usr/share
```

in das Verzeichnis, wo PhpMyAdmin installiert wird.

* Lade PhpMyAdmin herunter

```bash
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip -O phpmyadmin.zip
```

* Entpacke das Archiv

```bash
unzip phpmyadmin.zip
```

* Entferne das heruntergeladene Archiv

```bash
rm phpmyadmin.zip
```

Nenne das PhpMyAdmin Verzeichnis um

```bash
mv phpMyAdmin-*-all-languages phpmyadmin
```

Vergebe die benötigten Rechte

```bash
chmod -R 0755 phpmyadmin
```

* Erstelle die Apache Konfigurationsdatei

```bash
echo "Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>" >> /etc/apache2/conf-available/phpmyadmin.conf
```

* Aktiviere die Apache Konfigurationsdatei

```bash
a2enconf phpmyadmin
```

* Reloade den Apache Service

```bash
systemctl reload apache2
```

* Erstelle das Temporäre Verzeichnis für PhpMyAdmin

```bash
mkdir /usr/share/phpmyadmin/tmp/
```

* Gebe dem Webnutzer die Berechtigung, auf das temporäre Verzeichnis zuzugreifen.

```bash
chown -R www-data:www-data /usr/share/phpmyadmin/tmp/
```

{% tabs %}
{% tab title="Debian 10 & Ubuntu" %}

* Melde dich bei dem MySQL Server an

```bash
mysql -u root
```

* Stelle das Authentifizierungsplugin des Root-Benutzers von UNIX auf die Standardauthentifizierung um.

```bash
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
```

```bash
FLUSH PRIVILEGES;
```

{% endtab %}

{% tab title="Debian 11" %}

* Melde dich bei dem MySQL Server an

```bash
mysql -u root
```

* Erstelle einen neuen Benutzer. Trage bei "username" einen Benutzernamen und bei "password" ein Passwort ein.

```bash
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
```

* Dieser Befehl weißt deinem Nutzernamen alle Rechte, die man als Inhaber braucht

```bash
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
```

```bash
exit
```

{% endtab %}
{% endtabs %}

### Installation von Nextcloud

* Navigiere zum path vom Web-Server

```bash
cd /var/www/html
```

* Lade Nextcloud herunter

```bash
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
```

* Entpacke Nextcloud

```bash
tar xfvj latest.tar.bz2
```

* Lösche das Nextcloud Archiv

```bash
rm latest.tar.bz2
```

* Aktiviere Apache2 mod\_rewrite

```bash
a2enmod rewrite
```

* Starte Apache2 neu

```bash
systemctl restart apache2
```

* Gebe dem Webserver das Besitzerrecht.

```bash
chown -R www-data:www-data /var/www/html/nextcloud/
```

### Nextcloud Nutzer anlegen

![Gebe in deinem Browser deine IP/phpmyadmin ein.](https://bilderupload.org/image/a98a79993-screenshot-2022-06-17-173.png)

![Melde dich mit deinen PhpMyAdmin Nutzernamen und Password an, welchen du vorhin erstellt hast.](https://bilderupload.org/image/e58680326-screenshot-2022-06-17-173.png)

![Navigiere nun zum Punkt: Benutzerkonten](https://bilderupload.org/image/364580680-pupsl.png)

![Drücke auf Benutzerkonto hinzufügen](https://bilderupload.org/image/d1d680789-pupsanlegen.png)

![nun lege einen Benutzernamen und Password ein für Nextcloud an.
Wähle "Erstelle eine Datenbank mit gleichem Namen und gewähre alle Rechte" aus.
Scrolle runter und drücke auf "OK"](https://bilderupload.org/image/a7c980993-anlegenfertig.png)

![Nachdem der Benutzer und die Datenbank erfolgreich angelegt wurde, gebe in deinem Browser IP/nextcloud ein.](https://bilderupload.org/image/903c82182-nextcloud.png)

![Trage oben deinen Wunsch Benutzernamen und Passwort für Nextcloud ein.
Trage bei den unteren Feldern (Datenbank Informationen) deine MySQL Daten ein.
und drücke auf: "Installieren"](https://bilderupload.org/image/3d8e82457-nextcloudfertig.png)

## Nun ist die Installation von Nextcloud erfolgreich abgeschlossen


# Java 8 Installation

Installieren Sie die benötigten Pakete

```bash
apt install apt-transport-https ca-certificates wget dirmngr gnupg software-properties-common -y
```

Fügen Sie den Publickey für das Java 8 Repository hinzu und hinterlegen das Repository auf Ihrem Server

```bash
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add - && add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
```

Aktualisieren Sie die Paketquellen

```bash
apt update
```

Installieren Sie Java8

```bash
apt install adoptopenjdk-8-hotspot -y
```


# MongoDB Installation

* Aktualisiere die Paketlisten & installiere die Updates.

```bash
apt update && apt upgrade -y
```

* Installiere für die weitere Installation benötigte Pakete.

```bash
apt-get install curl apt-transport-https software-properties-common gnupg2 -y
```

* Installiere nun den GPG-Schlüssel und fügst ihn mit dem folgenden Befehl hinzu:

```bash
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -
```

* nun fügst du die MongoDB-Repository mit folgendem Befehl zur APT-Quellenlistendatei hinzu:

```bash
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | tee /etc/apt/sources.list.d/mongodb-org.list
```

* Als Nächstes aktualisierst du das Repository und installierst den MongoDB-Server

```bash
apt-get update -y
```

```bash
apt-get install mongodb-org -y
```

* Starte nun MongoDB-Dienst und aktiviere ihn

```bash
systemctl start mongod
```

```bash
systemctl enable mongod
```

* Verbinde dich nun mit dem MongoDB-Shell

```bash
mongo
```

* Erstelle eine Datenbank mit mit dem namen Admin

```bash
use admin
```

* Als Nächstes erstellst du einen Benutzer admin und legst ein Passwort fest

```bash
db.createUser(
{
user: "admin",
pwd: "Dein_Sicheres_Passwort",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
```

* Drücke `STRG + D` um die Shell zu verlassen und bearbeite als nächstes die MongoDB-Konfigurationsdatei

```bash
nano /etc/mongod.conf
```

* Füge diese zeile hinzu um die Authentifizierung zu aktivieren

```bash
security:
 authorization: enabled
```

* Speichere die Datei mit `STRG + O` danach verlasse die datei mit `STRG + X` und starte MongoDB neu:

```bash
systemctl restart mongod
```


# Docker Installation

* Aktualisiere die Paketlisten & installiere die Updates.

```bash
apt update && apt upgrade -y
```

Achte auf dein Betriebssystem. Solltest du nicht wissen, welches Betriebssystem du verwendest, kannst du dies mit dem Befehl

```bash
cat /etc/issue
```

nachschauen.

{% tabs %}
{% tab title="Debian" %}

* Benötigte Pakete für die Installation von Docker

```bash
apt install ca-certificates curl gnupg lsb-release -y
```

```bash
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
```

```bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```

```bash
apt update
```

```bash
apt install docker-ce docker-ce-cli containerd.io -y
```

{% endtab %}

{% tab title="Ubuntu" %}

* Benötigte Pakete für die Installation von Docker

```bash
sudo apt install ca-certificates curl gnupg lsb-release -y
```

```bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
```

```bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```

{% endtab %}
{% endtabs %}

```bash
sudo apt update
```

```bash
sudo apt install docker-ce docker-ce-cli containerd.io -y
```

* Aktiviere den Docker Dienst

```bash
sudo systemctl start docker --now
```

* Füge deinen Benutzernamen zur Docker-Gruppe hinzu.

```bash
sudo usermod -aG docker $USER
```

## Docker Compose installieren

* Installiere Docker Compose Binärdatei Herunter

```bash
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
```

* Erteile die Berechtigung für die Compose Binärdatei

```bash
sudo chmod +x /usr/local/bin/docker-compose
```


# Teamspeak3 Server Installation

* Aktualisiere die Paketlisten & installiere die Updates.

```bash
apt update && apt upgrade -y
```

* Erstelle einen Nutzer, damit man Teamspeak ausführen kann.

{% tabs %}
{% tab title="Außen erreichbar" %}

* Wenn du dich von außen direkt mit dem "ts3" Nutzer anmelden möchtest

```bash
adduser ts3
```

{% endtab %}

{% tab title="Außen nicht erreichbar" %}

* Mit diesem Befehl, kannst du dich nur mit Root in den Nutzer "ts3" anmelden

```bash
adduser --disabled-login ts3
```

{% endtab %}
{% endtabs %}

![Bei den Folgenden fragen kannst du die mit der "Enter" Taste durchklicken und am Ende mit "Y/J" bestätigen](https://bilderupload.org/image/7d9157172-adduser-ts3.png)

* Nun navigiere zum ts3 Verzeichnis

```bash
cd /home/ts3
```

## Teamspeak3 Installation

* Laden den Teamspeak3 Server herunter.

```bash
wget https://dl.4players.de/ts/releases/3.13.5/teamspeak3-server_linux_amd64-3.13.5.tar.bz2
```

* Entpacke den Teamspeak3 Server

```bash
tar xfvj teamspeak3-server_linux_amd64-3.13.5.tar.bz2
```

* Lösche die .tar.bz2 Datei

```bash
rm teamspeak3-server_linux_amd64-3.13.5.tar.bz2
```

* Navigiere in das Teamspeak3 Verzeichnis

```bash
cd teamspeak3-server_linux_amd64
```

* Akzeptiere die Ts3 Server Lizenz.

```bash
touch .ts3server_license_accepted
```

* Nun gebe deinem Teamspeak3 Ordner "ts3" Nutzer rechte

```bash
chown ts3:ts3 /home/ts3/teamspeak3-server_linux_amd64
```

* Gebe der Startdatei die benötigten Rechte, um zu starten.

```bash
chmod +x ts3server_startscript.sh
```

* Melde dich nun mit dem "ts3" Nutzer an

```bash
su ts3
```

* Navigiere in dein Teamspeak3 Ordner

```bash
cd /home/ts3/teamspeak3-server_linux_amd64
```

* Starte dein teamspeak3 Server mit

```bash
./ts3server_startscript.sh start
```

![hier siehst du dein teamspeak3 token. gebe diese in teamspeak ein. Vergesse nicht dein Token zu Kopieren oder abzuspeichern](https://bilderupload.org/image/3eb657093-ts3-daten.png)

* Verbinde dich auf deinen Teamspeak Server und verwende den Berechtigungsschlüssel.
* nun kannst du wieder in dein Terminal gehen und drücke die Tastenkombination
* STRG + C und starte den Server nochmal, damit der Server im Hintergrund weiterläuft

```bash
./ts3server_startscript.sh start
```

## Die Installation vom Teamspeak3 Server ist abgeschlossen


# Nginx Proxy Manager Installation

{% hint style="warning" %}
für die Installation ist Docker nötig. Falls du diese nicht installiert hast, kannst du dies hier ganz schnell nachholen -> [Docker Installation](/rootserver/docker-installation)
{% endhint %}

* Aktualisiere die Paketlisten & installiere die Updates.

```bash
apt update && apt upgrade -y
```

* Erstelle ein Verzeichnis für `Nginx Proxy Manager`

```bash
mkdir ~/nginx-proxy
```

* Navigiere ins Verzeichnis

```bash
cd ~/nginx-proxy
```

* Erstelle Verzeichnisse für Benutzerdaten und SSL-Zertifikate.

```bash
mkdir {data,letsencrypt}
```

* Erstelle nun eine Compose Datei

```bash
nano docker-compose.yml
```

* Füge nun diesen Code ein

```bash
version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
```

* Bringe dein `Nginx Proxy Manager` zum laufen

```bash
docker-compose up -d
```

* Die Website kannst du unter <http://127.0.0.1:81> oder mit der Public adresse mit dem port `81` ereichen.
* Die Standart daten zum anmelden sind:

```bash
Email:    admin@example.com
Password: changeme
```


# Portainer Installation

{% hint style="warning" %}
für die Installation ist Docker nötig. Falls du diese nicht installiert hast, kannst du dies hier ganz schnell nachholen -> [Docker Installation](/rootserver/docker-installation)
{% endhint %}

* Aktualisiere die Paketlisten & installiere die Updates.

```bash
apt update && apt upgrade -y
```

* Erstelle ein Verzeichnis für `Portainer`

```bash
mkdir ~/portainer
```

* Navigiere ins Verzeichnis

```bash
cd ~/portainer
```

* Erstelle nun eine Compose Datei

```bash
nano docker-compose.yml
```

* Füge nun diesen Code ein

```bash
version: "3.3"
services:
    portainer:
      image: portainer/portainer-ce:latest
      container_name: portainer
      restart: always
      privileged: true
      volumes:
        - ./data:/data:Z
        - /var/run/docker.sock:/var/run/docker.sock:Z
      ports:
        - 9443:9443
```

* Bringe dein `Portainer` zum laufen

```bash
docker-compose up -d
```

* Die Website kannst du unter `https://<DeineServerIP>:9443` erreichen.


# Apache2 Installation

* Aktualisiere die Paketlisten & installiere die Updates.

```bash
apt update && apt upgrade -y
```

* Installiere nun Apache2

```bash
apt install apache2 -y
```

* Dein Verzeichnis für dein Web Server findest du unter `/var/www/html`
* Erreichen tust du dein Web Server indem du im Browser deine `IP` oder deine `Domain` eingibst, die du mit einem A Record versehen werden muss.


# Nginx Installation

* Aktualisiere die Paketlisten & installiere die Updates.

```bash
apt update && apt upgrade -y
```

* Installiere nun Nginx

```bash
apt install nginx -y
```

* Dein Verzeichnis für dein Web Server findest du unter `/var/www/html`
* Erreichen tust du dein Web Server indem du im Browser deine `IP` oder deine `Domain` eingibst, die du mit einem A Record versehen werden muss.


# Virtualhost (Apache2)

## Apache2 Virtualhost

Installieren Sie die benötigten Pakete

```bash
apt install apache2 -y
```

Navigiere in die `sites-available` Datei

```bash
cd /etc/apache2/sites-available
```

Erstelle eine `.conf` Datei. Als Beispiel: `domain.de.conf`

```bash
touch domain.de.conf
```

Aktiviere nun Apache2 `rewrite` & `headers`

```bash
a2enmod rewrite
```

```bash
a2enmod headers
```

nun füge diesen code in deine `.conf` Datei ein:

```bash
<VirtualHost *:80>
        ServerName deinedomain.de
        DocumentRoot /var/www/dein_verzeichnis
RewriteEngine on
RewriteCond %{SERVER_NAME} =deinedomain.de
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
```

Speicher die Datei mit `STRG + O` & danach mit `STRG + X`

Aktiviere die `.conf` Datei:

```bash
a2ensite domain.de.conf
```

Starte nun Apache2 neu:

```bash
systemctl restart apache2
```

### Domain SSL Verschlüsseln

{% hint style="danger" %}
Vergiss nicht, einen A-Record Eintrag für deine Domain/Sub-Domain zu machen. Diese sollte auf deinem Server verweisen, wo auch dein Certbot läuft.
{% endhint %}

Als Erstes benötigen wir das Paket `snapd`. Dies wird mit dem Command

```bash
apt install snapd
```

installiert.

falls snapd bereits installiert ist, stelle mit dem Command

```bash
snap install core; snap refresh core
```

sicher, dass snapd auf dem neusten Stand ist.

Nachdem diese erledigt ist, wird nun certbot installiert.

```bash
snap install --classic certbot
```

Damit der Certbot Command verwendet werden kann, gebe folgenden Command ein:

```bash
ln -s /snap/bin/certbot /usr/bin/certbot
```

Um das Zertifikat automatisch auf deinem Apache Webserver einrichten zu lassen, verwende folgenden Command:

```bash
certbot --apache
```

1. Gebe deine E-mail-Adresse ein
2. Akzeptiere die Terms of Service
3. kannst du die erstellte/Aufgelistete Domain oder Sub-Domain Auswhälen
4. Das Zertifikat ist jetzt auf deiner Domain


# Virtualhost Redirect (Apache2)

Installieren Sie die benötigten Pakete

```bash
apt install apache2 -y
```

Navigiere in die .conf datei

```bash
cd /etc/apache2/sites-available
```

Erstelle eine Beliebige datei. Als Beispiel:

{% tabs %}
{% tab title="Domain" %}

* Wenn du es nur mit deiner Domain machen möchtest empfehlen wir diese Struktur:

```bash
touch domain.de.conf
```

{% endtab %}

{% tab title="Sub-Domain" %}

* Wenn du es nur mit deiner Sub-Domain machen möchtest empfehlen wir diese Struktur:

```bash
touch sub.domain.de.conf
```

{% endtab %}
{% endtabs %}

Aktiviere nun Apache2 rewrite

```bash
a2enmod rewrite
```

nun füge diesen code ein:

{% tabs %}
{% tab title="Domain" %}

```bash
<VirtualHost *:80>
        ServerName domain.de
        Redirect 301 / https://beispiel.de
</VirtualHost>
```

{% endtab %}

{% tab title="Sub-Domain" %}

```bash
<VirtualHost *:80>
        ServerName sub.domain.de
        Redirect 301 / https://beispiel.de
</VirtualHost>
```

{% endtab %}
{% endtabs %}

Nun Aktiviere die Folgende datei, die du erstellt hast.

{% tabs %}
{% tab title="Domain" %}

```bash
a2ensite domain.de.conf
```

{% endtab %}

{% tab title="Sub-Domain" %}

```bash
a2ensite sub.domain.de.conf
```

{% endtab %}
{% endtabs %}

Starte Apache2 neu

```bash
systemctl restart apache2
```

### Domain SSL Verschlüsseln

{% hint style="danger" %}
Vergiss nicht, einen A-Record Eintrag für deine Domain/Sub-Domain zu machen. Diese sollte auf deinem Server verweisen, wo auch dein Certbot läuft.
{% endhint %}

Als erstes benötigen wir das Paket "snapd". Dies wird mit dem Command

```bash
apt install snapd
```

installiert.

falls snapd bereits installiert ist, stelle mit dem Command

```bash
snap install core; snap refresh core
```

sicher, dass snapd auf dem neusten Stand ist.

Nachdem das erledigt ist wird nun certbot installiert.

```bash
snap install --classic certbot
```

Damit der Certbot Command verwendet werden kann, gebe folgenden Command ein:

```bash
ln -s /snap/bin/certbot /usr/bin/certbot
```

Um das Zertifikat automatisch auf deinem Apache Webserver einrichten zu lassen, verwende folgenden Command:

```bash
certbot --apache
```

1. Gebe deine E-Mail Adresse ein
2. Akzeptiere die Terms of Service
3. kannst du die erstellte/Aufgelistete Domain / Sub-Domain Auswählen
4. Dein Zertifikat wurde nun ausgestellt


# SSL Zertifikat Installation

Als erstes benötigen wir das Paket "snapd". Dies wird mit dem Command

```bash
apt install snapd
```

installiert.

falls snapd bereits installiert ist, stelle mit dem Command

```bash
snap install core; snap refresh core
```

sicher, dass snapd auf dem neusten Stand ist.

Nachdem das erledigt ist wird nun certbot installiert.

```bash
snap install --classic certbot
```

Damit der Certbot Command verwendet werden kann, gebe folgenden Command ein:

```bash
ln -s /snap/bin/certbot /usr/bin/certbot
```

Um das Zertifikat automatisch auf deinem Apache Webserver einrichten zu lassen, verwende folgenden Command:

```bash
certbot --apache
```

1. Gebe deine E-mail-Adresse ein
2. Akzeptiere die Terms of Service
3. Gebe deinen Domainnamen ein. Falls eine Subdomain vorhanden ist gebe diese mit an.

Das Zertifikat ist jetzt auf deinem Apache Webserver installiert.


# Python3 Installation

* Aktualisiere die Paketlisten & installiere die Updates.

```bash
apt update && apt upgrade -y
```

* Installieren Sie die benötigten Pakete

```bash
apt install wget build-essential libncursesw5-dev libssl-dev \
     libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev   -y
```

* Python3.11 Installieren

```bash
wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz
```

* Python3.11 Extrahieren

```bash
tar xzf Python-3.11.3.tgz 
```

* Für die Kompilierung von Python3.11

```bash
./configure --enable-optimizations 
```

* Um Python3.11 ui Installieren

```bash
make altinstall
```

Python3.11 Ist erfolgreich Installiert


# Minecraft Auto Start

* Damit dein Minecraft Server nach einem Crash Automatisch Hochfährt
* Erstelle eine `start.sh` datei:

```bash
nano start.sh
```

* Füge diesen code ein und drücke `STRG + O` Danach `Enter`
* Um das gespeicherte Terminal zu schließen, drücke `Strg + X`

```bash
while true
do
  Dein_Java_File/java -jar spigot.jar
  echo 'Willst Du den Server komplett stoppen, drücke STRG+C!'
  echo "Neustart in:"
  for i in 5 4 3 2 1
  do
  echo "$i..."
  sleep 1
  done
  echo 'Server neustart!'
done
```

* Ein Beispiel für einen Pfad

```bash
/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/java -jar spigot.jar
```

* Nun gebe deiner Startdatei Rechte zum Ausführen

```bash
chmod +x start.sh
```

* Nun kannst du dein Server starten:

```bash
./start.sh
```

* Falls du dein Server im Hintergrund laufen lassen möchtest:

```bash
screen -AmdS Session_Name ./start.sh
```


# LAMPP (Apache2, MySQL und PHP8.2)

{% hint style="warning" %}
Achtung: Die MySQL-Installation (einschließlich phpMyAdmin) wird ohne Passwortabfrage durchgeführt. Diese Installation ist für eine lokale automatisierte Installation vorgesehen und nicht für Öffentliche Dienste. Die Installation mit einer Passwortabfrage für MySQL (phpMyAdmin) wird die Tage hier erscheinen -> "... Coming soon ..."
{% endhint %}

### Automatische Installation

* Für eine Automatische Installation, so führe diesen Befehl im Terminal aus:

```
sudo wget -O- 'https://raw.githubusercontent.com/ishak2001/Script/main/lampp/lampp-install.sh' | bash
```


# Lemp (Nginx, MySQL und PHP8.3)

### Automatische Installation

* Für eine Automatische Installation, so führe diesen Befehl im Terminal aus:

```
sudo wget -O- 'https://raw.githubusercontent.com/ishak2001/Script/main/lemp/lemp-install.sh' | bash
```


# Docker (Docker, Composer)

### Automatische Installation

* Für eine Automatische Installation, so führe diesen Befehl im Terminal aus:

```
sudo wget -O- 'https://raw.githubusercontent.com/ishak2001/Script/main/docker/docker-install.sh' | bash
```


# Nextcloud (Apache2, MySQL, phpMyAdmin and PHP8.2)

{% hint style="warning" %}
Achtung: Beim Ausführen des Skripts werden zwei Passwortabfragen erfolgen: einmal für den SQL-Admin-Benutzer und einmal für den Nextcloud-Benutzer. Nachdem diese Passworteingaben erfolgt sind, wird das Skript automatisch installiert und fertiggestellt."
{% endhint %}

### Automatische Installation&#x20;

* Für eine Automatische Installation, so führe diesen Befehl im Terminal aus:

```
sudo wget -O- 'https://raw.githubusercontent.com/ishak2001/Script/main/nextcloud/nextcloud-install.sh' | bash
```


# Python3.11

### Automatische Installation

* Für eine Automatische Installation, so führe diesen Befehl im Terminal aus:

```
sudo wget -O- 'https://raw.githubusercontent.com/ishak2001/Script/main/python3/python3-install.sh' | bash
```


# Java8

### Automatische Installation

* Für eine Automatische Installation, so führe diesen Befehl im Terminal aus:

```
sudo wget -O- 'https://raw.githubusercontent.com/ishak2001/Script/main/java/java8.sh' | bash
```


# Java11

### Automatische Installation

* Für eine Automatische Installation, so führe diesen Befehl im Terminal aus:

```
sudo wget -O- 'https://raw.githubusercontent.com/ishak2001/Script/main/java/java11.sh' | bash
```


# Java21

### Automatische Installation

* Für eine Automatische Installation, so führe diesen Befehl im Terminal aus:

```
sudo wget -O- 'https://raw.githubusercontent.com/ishak2001/Script/main/java/java21.sh' | bash
```


# Minecraft Server 1.21

### Automatische Installation

* Für eine Automatische Installation, so führe diesen Befehl im Terminal aus:

```
sudo wget -O- 'https://raw.githubusercontent.com/ishak2001/Script/main/minecraft-server/paper1.21.sh' | bash
```


# OEMInformation einrichten

* Drücke `Windows` + `R` und gebe folgendes ein:

```bash
regedit
```

* Nachdem `regedit` (Registrierungseditor) geöffnet ist, navigiere in diesem Path:

```bash
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation
```

![Registrierungseditor](/files/2VLHR41nLvJLfEmgWSE4)

* Du hast nun Folgende Möglichkeiten einzutragen:

1. Logo
2. Manufacturer
3. Model
4. SupportHours
5. SupportPhone
6. SupportURL

{% hint style="warning" %}
Wichtig ist hierbei, dass ihr beim Erstellen der Datei die String Value erstellt und die Datei genau so heißt wie oben die Möglichkeiten. Im Bereich Value (Wert) kann man beliebige Wörter eintragen.
{% endhint %}

![datei erstellen](/files/lkCRTWFe7RP5vOmDl7ni) ![datei erstellt](/files/FUU14zPOrH3ri67iy6xF)

* Die Informationen kann man aufrufen, indem man wie wie gefolgt navigiert.

```bash
Systemsteuerung -> System und Sicherheit -> System
```

![anzeigen](/files/HEdabGKCw6bcB382AxEO)

* Im Abbild wurde hinzufügend `SupportURL` & `SupportPhone` eingetragen.


