Moin moin,
So langsam komme ich an mein Ziel alles auf meinem eigenen Server zu betreiben.
Gestern kam, eigentlich als Docker Variante geplant, ein neues Projekt dazu und es läuft…
Neu dabei ist ein eigenes Pastebin, so bin ich nicht mehr auf die Webseite (Pastebin.com) angewiesen. Unter https://paste.dasnetzundich.de ist diese Seite zukünftig zu finden und werde auch Content daraus in meine Beiträge einbinden. Kann gerne genutzt werden.
Beispielsweise Konfigurationen für Docker-compose.yml Dateien usw.
Mit Stikked kann man Codezeilen, mir anderen Teilen ohne auf Webdienste anderer Anbieter ausweichen zu müssen. Geht komplett anonym und ohne eingerichtetem Konto.
Nur einen Namen eintragen und schon kann es los gehen. Voreingestelllt ist eine Stunde Aufbewahrung, danach wird es gelöscht. Man kann es aber individuell anpassen für seinen Post.
Auf Stikked kam ich auf einen User in einem Nextcloud Chat bei Telegram. Dieser hatte das bereits. Stikked kann hier heruntergeladen werden. Github
Installation
MYSQL Datenbank erstellen
Damit wir Stikked auch nutzen können muss zuerst eine Datebank samt User angelegt werden. User und Passwort merken wir uns, diese Daten brauchen wir später.
sudo mysql -uroot -p CREATE DATABASE stikked, CREATE USER 'stikked'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON stikked. * TO 'stikked'@'localhost'; FLUSH PRIVILEGES;
Herunterladen von Stikked und einrichten
Nach dem herunterladen der Zip Datei, diese in /var/www entpacken. Nun die stikked.php anpassen.
sudo vi /var/www/stikked/htdocs/application/config/stikked.php
$config['site_name'] = 'meine Paste Seite'; /** * Base URL * * Set the base URL of Stikked. WITH trailing slash! * */ $config['base_url'] = 'https://paste.domain.tld/'; /** * Database connection * * Credentials for your database * The database structure will be created automatically * */ $config['db_hostname'] = '127.0.0.1'; $config['db_database'] = 'stikked'; $config['db_username'] = 'stikked'; $config['db_password'] = 'supersecret'; // If you are using sqlite: // uncomment the configuration lines below. //$config['db_database'] = 'db/stikked'; // you need to create a directory "db" and give the webserver write access. sqlite needs a writable folder to work properly! //$config['db_driver'] = 'sqlite'; /** * Table prefix * Generate table prefix for stikked db, commonly used if the webhoster only has one db. * Use underscore as suffix to easily see the tables. * example: $config['db_prefix'] = 'stikked_'; * use $config['db_prefix'] = ''; if you don't want to use table prefix. */ $config['db_prefix'] = '';
in dieser Datei werden der Seitenname, die URL sowie die Daten zur MYSQL Datenbank hinterlegt. Hier sind auch andere Einstellungen möglich wie Theme anpassen, die Standardsprache ändern. Aber dazu später mehr.
Wenn diese Daten hinterlegt wurden, fehlt nur noch eine Nginx Konfiguration. Meine sieht folgendermaßen aus.
sudo vi /etc/nginx/sites-available/paste.domain.tld.conf
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name paste.domain.tld; set $base /var/www/stikked/htdocs; root $base/; # SSL ssl_certificate /etc/letsencrypt/live/paste.domain.tlde/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/paste.domain.tld/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/paste.domain.tld/chain.pem; # security headers add_header X-Frame-Options "SAMEORIGIN" always; add_header X-XSS-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "no-referrer-when-downgrade" always; add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; # . files location ~ /.(?!well-known) { deny all; } # index.php index index.php; # index.php fallback location / { try_files $uri $uri/ /index.php?$query_string; } # 404 try_files $fastcgi_script_name =404; # default fastcgi_params include fastcgi_params; # fastcgi settings fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; # fastcgi params fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param PHP_ADMIN_VALUE "open_basedir=$base/:/usr/lib/php/:/tmp/"; } # subdomains redirect server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name *.paste.domain.tld; # SSL ssl_certificate /etc/letsencrypt/live/paste.domain.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/paste.domain.tld/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/paste.domain.tld/chain.pem; return 301 https://paste.domain.tld$request_uri; } # HTTP redirect server { listen 80; listen [::]:80; server_name .paste.domain.tld; # ACME-challenge location ^~ /.well-known/acme-challenge/ { root /var/www/_letsencrypt; } location / { return 301 https://paste.domain.tld$request_uri; } }
Anschliessend Nginx neu starten
sudo ln -s /etc/nginx/sites-available/paste.domain.tld.conf /etc/nginx/sites-enabled/paste.domain.tld.conf sudo nginx -t sudo Service nginx restart