MediaWiki Installation

LAMP-Server installieren

Installiere zunächst den Apache und den MariaDB-Server mit dem folgenden Befehl:

sudo apt-get install apache2 mariadb-server -y

Sobald beide Pakete installiert sind, musst du das Ondrej PHP-Repository zu Ihrem System hinzufügen. Du kannst es mit dem folgenden Befehl hinzufügen:

sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y

Sobald das Repository installiert ist, aktualisiere das Repository und installiere PHP zusammen mit allen erforderlichen PHP-Bibliotheken:

sudo apt-get update -y
sudo apt install php7.3 libapache2-mod-php7.3 php7.3-common php7.3-gmp php7.3-curl php7.3-intl php7.3-mbstring php7.3-xmlrpc php7.3-mysql php7.3-gd php7.3-xml php7.3-cli php7.3-zip php7.3-imagick

Sobald alle Pakete installiert sind, öffne die Datei php.ini mit dem folgenden Befehl:

sudo nano /etc/php/7.3/apache2/php.ini

Nehme die folgenden Änderungen vor:

memory_limit = 1024M
upload_max_filesize = 16G
post_max_size = 16G
date.timezone = Europe/Berlin

Speicher und schließe die Datei, starte dann den Apache und MariaDB-Dienst und ermögliche ihnen, beim Booten zu starten:

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql

MariaDB konfigurieren

Sicher zunächst die MariaDB-Installation mit dem folgenden Befehl:

sudo mysql_secure_installation

Beantworten alle Fragen wie unten gezeigt:

Enter current password for root (enter for none):
Set root password? [Y/n]: N
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

Sobald die MariaDB gesichert ist, melde dich bei der MariaDB-Shell an:

sudo mysql

Erstelle dann eine Datenbank und einen Benutzer für Mediawiki:

CREATE DATABASE mediadb;
CREATE USER 'media'@'localhost' IDENTIFIED BY 'password';

Als nächstes erteile dem mediadb alle Privilegien mit dem folgenden Befehl:

GRANT ALL ON mediadb.* TO 'media'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Als nächstes leere die Privilegien und verlassen Sie die MariaDB-Shell:

FLUSH PRIVILEGES;
EXIT;

Mediawiki installieren

Lade zunächst die neueste Version von Mediawiki von der offiziellen Website herunter:

wget https://releases.wikimedia.org/mediawiki/1.31/mediawiki-1.31.0.tar.gz

Wenn der Download abgeschlossen ist, extrahiere die heruntergeladene Datei mit dem folgenden Befehl:

tar -xvzf mediawiki-1.31.0.tar.gz

Kopiere anschließend das extrahierte Verzeichnis in das Apache-Wurzelverzeichnis und gebe die entsprechenden Berechtigungen ein:

sudo cp -r mediawiki-1.31.0 /var/www/html/mediawiki
sudo chown -R www-data:www-data /var/www/html/mediawiki
sudo chmod -R 777 /var/www/html/mediawiki

Erstelle anschließend eine virtuelle Apache-Hostdatei für Mediawiki mit dem folgenden Befehl:

sudo nano /etc/apache2/sites-available/mediawiki.conf

füge die folgenden Zeilen hinzu:

<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/mediawiki/
ServerName Hier die IP des Servers eintragen
<Directory /var/www/html/mediawiki/>
Options +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/apache2/media-error_log
CustomLog /var/log/apache2/media-access_log common
</VirtualHost>

Speicher die Datei und aktiviere dann die virtuelle Hostdatei und das Apache Umschreibmodul mit dem folgenden Befehl:

sudo a2ensite mediawiki.conf
sudo a2enmod rewrite

Starte schließlich den Apache-Webserver neu, um die Änderungen vorzunehmen:

sudo systemctl restart apache2

Auf Mediawiki zugreifen

Öffne nun den Webbrowser und gebe die IP-Adresse ein. Du wirst auf die folgende Seite weitergeleitet:

Klicken Sie nun auf die Schaltfläche Wiki einrichten. Du solltest die folgende Seite sehen:

Wähle hier deine Wiki-Sprache und klicke auf die Schaltfläche Fortfahren. Du solltest die folgende Seite sehen:

Klicke nun auf die Schaltfläche Fortfahren. Du solltest die folgende Seite sehen:

Gebe nun die Datenbankdaten an und klicke auf die Schaltfläche Fortfahren. Du solltest die folgende Seite sehen:

Wähle nun die Speicher-Engine aus und klicken Sie auf die Schaltfläche Fortfahren. Du solltest die folgende Seite sehen:

Gebe nun deinen Wiki-Sitennamen, deinen Benutzernamen und dein Passwort ein. Klicke dann auf die Schaltfläche Fortfahren. Du solltest die folgende Seite sehen:

Markiere nun alle gewünschten Einstellungen und klicke im Anschluss auf die Schaltfläche Fortfahren. Du solltest die folgende Seite sehen:

Klicke nun auf die Schaltfläche Fortfahren, um die Installation zu starten. Du solltest die folgende Seite sehen:

Klicke nun auf die Schaltfläche Fortfahren. Du solltest die folgende Seite sehen:

Hier musst du die Datei LocalSettings.php herunterladen und in das MediaWiki-Stammverzeichnis legen.

/var/www/html/mediawiki

Öffne nun deinen Webbrowser und gebe die IP-Adresse ein. Du solltest deine MediaWiki-Seite im folgenden Bild sehen:

Weitere Domains hinzufügen

Wenn das Wiki von mehreren IPs/Hostnamen bzw Domains erreicht werden soll muss das noch konfiguriert werden.
Öffne dazu mit dem Nanoeditor die Config

sudo nano /etc/apache2/sites-available/mediawiki.conf

Füge hier das ganze nochmal ein und ändere die Serveradresse ab

Es muss aber auch noch in der LocalSettings.php angepasst werden.

sudo nano /var/www/html/mediawiki/LocalSetting.php

NextCloud Installtion

System Updaten

apt-get update && apt-get upgrade

Apache installieren

sudo apt install apache2 -y

Verzeichnisliste deaktivieren

sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf

Starte Apache Service

sudo systemctl start apache2.service

Installiere Maria DB

sudo apt install mariadb-server mariadb-client -y

Maria DB Server Konfiguration

sudo mysql_secure_installation
Enter current password for root (enter for none): Just press the Enter
Set root password? [Y/n]: Y
New password: Gebe hier das Root Passwort ein
Re-enter new password: Repeat password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

Neustart Maria DB Server

sudo systemctl restart mariadb.service

Installation PHP

PHP-Repository hinzufügen

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Repositorys Updaten

sudo apt-get update

Endgültige PHP-Installation & Module

sudo apt install php8 libapache2-mod-php8 php8-common php8-gmp php8-url php8-intl php8-mbstring php8-xmlrpc php8-mysql php8-gd php8-xml php8-cli php8-zip php8-imagick php8-ldap -y

Passe die PHP.ini Datei an

sudo nano /etc/php/7.4/apache2/php.ini

Suche hier nach folgenden Stichworten und ändere sie gegebenenfalls ab.

memory_limit = 1024M
upload_max_filesize = 16G
post_max_size = 16G
date.timezone = Europe/Berlin

Nextcloud Datenbank erstellen

Öffnen Sie den SQL-Dialog

sudo mysql

Datenbank nextcloud erstellen

CREATE DATABASE nextcloud;

Datenbankbenutzer mit Passwort anlegen

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password_here';

Zugriff auf die Datenbank gewähren

GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'password_here' WITH GRANT OPTION;

Änderungen sichern und beenden

FLUSH PRIVILEGES;
EXIT;

Lade die neueste Nextcloud-Version herunter

cd /tmp && wget https://download.nextcloud.com/server/releases/nextcloud-22.0.0.zip
sudo apt-get install unzip
sudo unzip nextcloud-22.0.0.zip
sudo mv nextcloud /var/www/

Konfiguriere Apache2

Erstelle eine neue conf Datei

sudo nano /etc/apache2/sites-available/nextcloud.conf
<VirtualHost *:80>
    ServerAdmin master@domain.com
    DocumentRoot /var/www/nextcloud/
    ServerName demo.domain.com
    ServerAlias www.demo.domain.com

    Alias /nextcloud "/var/www/nextcloud/"

    <Directory /var/www/nextcloud/>
       Options +FollowSymlinks
       AllowOverride All
       Require all granted
         <IfModule mod_dav.c>
           Dav off
         </IfModule>
       SetEnv HOME /var/www/nextcloud
       SetEnv HTTP_HOME /var/www/nextcloud
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Aktivieren Sie das Nextcloud- und das Rewrite-Modul

sudo a2ensite nextcloud.conf
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime

Neustart vom apache Service

sudo systemctl restart apache2.service

Datenordner vorbereiten

cd /home
sudo mkdir /home/data/
sudo chown -R www-data:www-data /home/data/

sudo chown -R www-data:www-data /var/www/nextcloud/
sudo chmod -R 755 /var/www/nextcloud/

Domain ansurfen und Einrichtung abschließen


Bitwarden_rs / Vaultwarden Installation unter Docker

In diesem Beitrag zeige ich dir wie du dir dein eigenen Passwortsafe installieren kannst. Ich verwende hierfür Bitwarden_rs da man hier eine schöne Einstellungswebseite hat.

Installation

sudo apt install docker.io
sudo systemctl start docker 
sudo systemctl enable docker
docker pull vaultwarden/server:latest
docker run -d --name vaultwarden \
  -e ADMIN_TOKEN=Hier_gibst_du_ein_Passwort_ein \
  -e WEBSOCKET_ENABLED=true \
  -v /vw-data/:/data/ \
  -p 80:80 \
  --restart on-failure \
  vaultwarden/server:latest

Um auf die Adminoberfläche zu kommen gebe im Browser die Serveradresse und hänge ein /admin daran.

Du gelangst nun auf diese Seite hier gibst du den Admin-Token ein den du konfiguriert hast.

Nun hast du verschiedenste Einstellungsmöglichkeiten wie SMTP. Ebenfalls kannst du Hier schon Benutzer anlegen.


Domain Join mittels PowerShell

In diesem Beitrag zeige ich dir wie du einen Windows Client in eine Windows Domaine per Skript aufnimmst.

Im Beispiel ist die Domaine die „hense.local“ uns das Passwort liegt verschlüsselt unter „C:\temp“.
In einem anderen Beitrag habe ich schonmal gezeigt wie man ein Passwort mittels PowerShell verschlüsseln kann. Dies wird hier benötigt.

Schritte

  • Passwort Verschlüsseln
  • Variablen anpassen
  • Skript als Admin ausführen
### Erstellt am 22.05.2021 - Philipp Hense - it-hense.de ###

# Variablen

$DomainName = "hense.local"
$PasswortSpeicherort = C:\temp


## Ab hier nichts mehr ändern ##

#Credentials aufbauen
$username = "Administrator"
$key = (3,4,2,3,6,2,1,1,2,3,2,4,3,1,4,2)
$password = get-content ("$PasswortSpeicherort\passwort.txt") | convertto-securestring -key $key
$credentials = New-Object System.Management.Automation.PSCredential (“$username”, $password)

#Domain Join
Add-Computer -DomainName $DomainName -Restart -Credential $credentials

PowerShell Passwort verschlüsseln

In diesem Beitrag zeige ich dir wie du mittels PowerShell ein Passwort verschlüsseln kannst. Dies wird oftmals gebraucht um ein Passwort in ein Skript einzubauen ohne das es in Klartext eingefügt wird. Wenn du dieses Skript benötigst lade dir den Sourcecode herunter.

Skripte

### Erstellt am 23.03.2021 - Philipp Hense ###

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.Application]::EnableVisualStyles()

$Speicherort                     = New-Object system.Windows.Forms.Form
$Speicherort.ClientSize          = New-Object System.Drawing.Point(725,232)
$Speicherort.text                = "Speicherort"
$Speicherort.TopMost             = $false
$Speicherort.icon                = ".\icon.ico"

$Eingabe                         = New-Object system.Windows.Forms.TextBox
$Eingabe.multiline               = $false
$Eingabe.text                    = "z.B. C:\temp"
$Eingabe.width                   = 673
$Eingabe.height                  = 20
$Eingabe.Anchor                  = 'top,right,bottom,left'
$Eingabe.location                = New-Object System.Drawing.Point(30,78)
$Eingabe.Font                    = New-Object System.Drawing.Font('Courier New',12,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Italic))
$Eingabe.ForeColor               = [System.Drawing.ColorTranslator]::FromHtml("#0017ff")
$Eingabe.BackColor               = [System.Drawing.ColorTranslator]::FromHtml("#ffffff")

$Label                           = New-Object system.Windows.Forms.Label
$Label.text                      = "Bitte gebe hier den Pfad an in der das Passwort verschluesselt abgespeichert werden soll."
$Label.AutoSize                  = $true
$Label.width                     = 350
$Label.height                    = 10
$Label.Anchor                    = 'top,right,left'
$Label.location                  = New-Object System.Drawing.Point(6,15)
$Label.Font                      = New-Object System.Drawing.Font('MV Boli',12)

$abbrechen                       = New-Object system.Windows.Forms.Button
$abbrechen.text                  = "Abbrechen"
$abbrechen.width                 = 210
$abbrechen.height                = 40
$abbrechen.location              = New-Object System.Drawing.Point(116,159)
$abbrechen.Font                  = New-Object System.Drawing.Font('Tw Cen MT',12,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold))
$abbrechen.ForeColor             = [System.Drawing.ColorTranslator]::FromHtml("#ff0000")
$abbrechen.BackColor             = [System.Drawing.ColorTranslator]::FromHtml("#d1d1d1")
$abbrechen.Add_Click({$Speicherort.Close()})


$speichern                       = New-Object system.Windows.Forms.Button
$speichern.text                  = "Speichern"
$speichern.width                 = 210
$speichern.height                = 41
$speichern.location              = New-Object System.Drawing.Point(377,158)
$speichern.Font                  = New-Object System.Drawing.Font('Tw Cen MT',12,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold))
$speichern.ForeColor             = [System.Drawing.ColorTranslator]::FromHtml("#03770e")
$speichern.BackColor             = [System.Drawing.ColorTranslator]::FromHtml("#d1d1d1")

$speichern.Add_Click({$Speicherort.Close(); .\passwort-hash.lnk -Eingabe $Eingabe.Text})

$copyright                       = New-Object system.Windows.Forms.Label
$copyright.text                  = " 2021 Philipp Hense"
$copyright.AutoSize              = $true
$copyright.width                 = 25
$copyright.height                = 10
$copyright.location              = New-Object System.Drawing.Point(10,218)
$copyright.Font                  = New-Object System.Drawing.Font('Microsoft Sans Serif',7)
$copyright.ForeColor             = [System.Drawing.ColorTranslator]::FromHtml("#acacac")

$Speicherort.controls.AddRange(@($Eingabe,$Label,$abbrechen,$speichern,$copyright))



[void]$Speicherort.ShowDialog()
### Erstellt am 23.03.2021 - Philipp Hense ###

param (
 [string] $Eingabe = $Eingabe
)

$File = "$Eingabe"
$File_a = ("$File").TrimStart("System.Windows.Forms.TextBox, Text: ")
$File_neu = $File_a + "\passwort.txt"
$password = Read-Host Bitte Passwort eingeben -AsSecureString
$key = (3,4,2,3,6,2,1,1,2,3,2,4,3,1,4,2)
$password | ConvertFrom-SecureString -key $key| Set-Content ("$file_neu")

Links

Philipp Hense / Powershell-Passwort-verschlüsseln · GitLab


Eigenen Jellyfin Server unter Linux installieren

Du möchtest dir deinen eigenen Jellyfin Server installieren? Dann bist du hier richtig. In diesem Beitrag zeige ich dir wie du deinen eigenen Jellyfin Server installieren kannst.

System updaten

sudo apt-get update && sudo apt-get upgrade -y

SMB Utility installieren

sudo apt-get install cifs-utils 

Mount Point erstellen

sudo mkdir /jellyfin/
sudo mkdir /jellyfin/media

fstab Eintrag

sudo nano /etc/fstab
//192.168.0.137/Media  /jellyfin/media  cifs credentials=/home/.smbcredentials,uid=1000,gid=1000 0 0

Mit STRG+O speicherst du die Datei und mit STRG+X gehst du aus der Datei heraus.

sudo nano /home/.smbcredentials
username=Hier den Benutzer vom NAS eintragen
password=Hier das Passwort vom Benutzer eintragen

Jellyfin installieren

HTTPS-Transport für apt installieren

sudo apt install apt-transport-https

Repository hinzufügen

sudo add-apt-repository universe

Key hinzufügen

sudo wget -O - https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo apt-key add -

Konfiguration der Repository

sudo /etc/apt/sources.list.d/jellyfin.list:
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/ubuntu $( lsb_release -c -s ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

Jellyfin Package installieren

sudo apt update
sudo apt install jellyfin

Jellyfin starten

sudo systemctl enable jellyfin

Links

Jellyfin-Projekt – Jellyfin


nginx Reverse Proxy Manger installieren

In diesem Beitrag stelle Ich dir den Nginx Proxy Manager vor, ein Reverse Proxy mit einfacher, grafischer Benutzeroberfläche. Hiermit kannst du ganz leicht Reverse Proxy’s anlegen, Access Control Listen erstellen und kostenlose SSL Let’s Encrypt Zertifikate erstellen.

System updaten

sudo apt update && sudo apt upgrade -y

Docker installieren

sudo apt install docker.io
sudo systemctl start docker 
sudo systemctl enable docker

Docker Compose installieren

sudo apt install curl

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

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

Nginx Proxy Manger installieren

Ordner erstellen

mkdir npm
cd npm

config.json erstellen

nano config.json
{
  "database": {
    "engine": "mysql",
    "host": "db",
    "name": "npm",
    "user": "npm",
    "password": "npm",
    "port": 3306
  }
}

docker-compose.yml erstellen

nano docker-compose.yml
version: "3"
services:
  app:
    image: jc21/nginx-proxy-manager:latest
    restart: always
    ports:
      - 80:80
      - 81:81
      - 443:443
    volumes:
      - ./config.json:/app/config/production.json
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    depends_on:
      - db
    environment:
    # if you want pretty colors in your docker logs:
    - FORCE_COLOR=1
  db:
    image: mariadb:latest
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: "npm"
      MYSQL_DATABASE: "npm"
      MYSQL_USER: "npm"
      MYSQL_PASSWORD: "npm"
    volumes:
      - ./data/mysql:/var/lib/mysql

Docker erstellen

docker-compose up -d

Webzugriff

Du kannst den nginx Proxy Mnager über folgende Adresse erreichen. http://hostip:81 (Hostip einfach dur die IP-Adresse vom Server ersetzen).

Erster Login

user: admin@example.com
pw: changeme

Links

GitHub – jc21/nginx-proxy-manager: Docker container for managing Nginx proxy hosts with a simple, powerful interface


RocketChat Installation unter Ubuntu mittels Snap

Du möchtest deinen Eigenen Chat Server installieren hierfür eignet dich der RocketChat sehr gut. Die Anforderungen hierfür sind nicht hoch und er ist in wenigen Schritten installiert.

Anforderungen

  • Ubuntu / Debian
  • min 1 GB RAM

Installation

sudo apt-get update && sudo apt-get upgrade -y

sudo apt-get install snapd -y

sudo snap install rocketchat-server

Links

Snaps – Rocket.Chat Docs
Installiere unsere Apps und nutze unseren Server – Rocket.Chat – Rocket.Chat


Bitlocker Key in Active Directory schreiben

In diesem Beitrag zeige ich dir wie du einen schon vorhandenen Bitlocker Key in die Windows AD schreiben kannst.

Dies wird oftmals dann gebraucht falls die Gruppenrichtlinie nicht funktioniert hat und der Key nicht automatisch geschrieben wurde, oder das Computerkonto aus versehen gelöscht wurde.

PowerShell Skript

### Erstellt am 07.04.2021 - Philipp Hense ###

$key = manage-bde -protectors -get c: 
$key = $key.trim() -join ";"
$keymatches = ($key | select-String -pattern "ID: {(?<ID>[0-9ABCDEF-]+)};Kennwort:;(?<K>[0-9-]*)" -AllMatches).Matches
 
$key_id = $keymatches[0].Groups.Item(1).Value
$keymatches[0].Groups.Item(2).Value



manage-bde -protectors -adbackup c: -id "{$key_id}"

Führe das Skript als Admin aus!

Links

Philipp Hense / Bitlocker Key in AD schreiben · GitLab


UniFi Network Controller unter Linux installieren

Falls du dir gerne die Kosten für den UniFi Cloud Key sparen möchtest kannst du dies auch ganz einfach selber installieren. In diesem Beitrag zeige ich dir wie du dies machen kannst.

Systemanforderungen

  • Ubuntu / Debian Server
  • Webbrowser deiner Wahl

Installation

Alle schritte werden als root User ausgeführt.

System auf Updates Prüfen

apt update 
apt upgrade 

ca-certificates und wget installieren

apt install ca-certificates wget

Download des Skriptes

wget https://get.glennr.nl/unifi/install/install_latest/unifi-latest.sh 

Skript ausführen

bash unifi-latest.sh