<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Selfhosting &amp; Cloud on Bernhard Steindl – IT-Security &amp; Infrastruktur</title>
    <link>https://bernhardsteindl.at/categories/selfhosting--cloud/</link>
    <description>Recent content in Selfhosting &amp; Cloud on Bernhard Steindl – IT-Security &amp; Infrastruktur</description>
    <generator>Hugo -- 0.154.5</generator>
    <language>de-at</language>
    <lastBuildDate>Sat, 17 Apr 2021 21:15:07 +0000</lastBuildDate>
    <atom:link href="https://bernhardsteindl.at/categories/selfhosting--cloud/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Timeout in Nextcloud richtigsetzen (Online-Updater 504 Gateway Timeout)</title>
      <link>https://bernhardsteindl.at/timeout-in-nextcloud-richtigsetzen-online-updater-504-gateway-timeout/</link>
      <pubDate>Sat, 17 Apr 2021 21:15:07 +0000</pubDate>
      <guid>https://bernhardsteindl.at/timeout-in-nextcloud-richtigsetzen-online-updater-504-gateway-timeout/</guid>
      <description>&lt;p&gt;Ich hatte schon länger das Problem, dass bei mir der Nextcloud-Online-Updater nicht einwandfrei durchgelaufen ist. Jetzt habe ich das ganze mal gelöst:&lt;/p&gt;
&lt;p&gt;In der nginx-config von der Nextcloud direkt habe ich beim php-location-block folgendes eingetragen:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;fastcgi_read_timeout 300;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;!-- raw HTML omitted --&gt;Damit dauert es 5 Minuten, bevor PHP ein Timeout schießt (da geht sich das Update dann meistens aus).&lt;!-- raw HTML omitted --&gt; Durch die angegebene Direktive dauert es 5 Minuten, bevor nginx aufhört, auf eine Antwort vom FastCGI-Socket zu warten. (Danke an einen aufmerksamen Leser für die Info!)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nextcloud-Online-Updater hängen geblieben – Lösung</title>
      <link>https://bernhardsteindl.at/nextcloud-online-updater-haengen-geblieben-loesung/</link>
      <pubDate>Sat, 17 Apr 2021 21:09:14 +0000</pubDate>
      <guid>https://bernhardsteindl.at/nextcloud-online-updater-haengen-geblieben-loesung/</guid>
      <description>&lt;p&gt;Heute ist mir der Nextcloud Online-Updater hängengeblieben. Dies macht sich dadurch bemerkbar, dass zB vom Webinterface behauptet wird, dass &lt;code&gt;Step 4 currently in Progress&lt;/code&gt; ist, und er eigentlich herunterladen sollte, aber man keine Netzwerkaktivität feststellen kann.&lt;/p&gt;
&lt;p&gt;Das Problem lässt sich ziemlich einfach beheben: Einfach im &lt;code&gt;data&lt;/code&gt;-Ordner der Nextcloud den Ordner &lt;code&gt;updater-IRGENDWAS&lt;/code&gt; suchen und diesen löschen. Danach kann man im Webinterface wieder von vorne anfangen&lt;/p&gt;
&lt;h6 id=&#34;links-und-credit&#34;&gt;Links und Credit&lt;/h6&gt;
&lt;p&gt;(&lt;a href=&#34;https://help.nextcloud.com/t/stuck-on-update-process-step-5-is-currently-in-process-please-reload-this-page-later/58371/&#34;&gt;https://help.nextcloud.com/t/stuck-on-update-process-step-5-is-currently-in-process-please-reload-this-page-later/58371/&lt;/a&gt;)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zammad auf Debian mit externem NGINX Reverse-Proxy aufsetzen</title>
      <link>https://bernhardsteindl.at/zammad-auf-debian-mit-externem-nginx-reverse-proxy-aufsetzen/</link>
      <pubDate>Mon, 29 Mar 2021 06:44:24 +0000</pubDate>
      <guid>https://bernhardsteindl.at/zammad-auf-debian-mit-externem-nginx-reverse-proxy-aufsetzen/</guid>
      <description>&lt;p&gt;Die Installation ist ziemlich einfach: Elasticsearch installieren, Zammad installieren, Elasticsearch konfigurieren, fertig (siehe Link unten).&lt;/p&gt;
&lt;p&gt;Bei mir ist dann noch ein Problem mit HTTPS (Token-Error) aufgetreten, das ließ sich folgendermaßen lösen:&lt;/p&gt;
&lt;p&gt;Bei jedem X-Forwarded-Proto statt $scheme https reinschreiben:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;server {
        listen 80;
        server_name zammad.example.com;
        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl;

        server_name zammad.example.com;

        # SSL
        ssl_certificate /etc/letsencrypt/live/zammad.example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/zammad.example.com/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/zammad.example.com/fullchain.pem;

    access_log /var/log/nginx/zammad.access.log;
    error_log  /var/log/nginx/zammad.error.log;

    client_max_body_size 50M;

    location ^~ / {
        proxy_http_version 1.1;
        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection &amp;#34;Upgrade&amp;#34;;
        proxy_set_header CLIENT_IP $remote_addr;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https; 
# siehe https://community.zammad.org/t/fresh-install-3-2-x-csrf-token-verification-failed/3080/32v
        proxy_read_timeout 300;
        proxy_pass http://IP.OF.ZAMMAD.MACHINE/;

    }
        include _general.conf;
}
&lt;/code&gt;&lt;/pre&gt;&lt;h6 id=&#34;links-und-credit&#34;&gt;Links und Credit&lt;/h6&gt;
&lt;p&gt;&lt;a href=&#34;https://docs.zammad.org/en/latest/install/debian.html&#34;&gt;https://docs.zammad.org/en/latest/install/debian.html&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>standardnotes selbst hosten</title>
      <link>https://bernhardsteindl.at/standardnotes-selbst-hosten/</link>
      <pubDate>Mon, 29 Mar 2021 06:42:04 +0000</pubDate>
      <guid>https://bernhardsteindl.at/standardnotes-selbst-hosten/</guid>
      <description>&lt;p&gt;Ich habe mir eine Standard-Notes-Instanz zuhause selbst aufgesetzt, so einfach wie das ist nur selten etwas: Einfach die Anleitungen (siehe unten) befolgen, einmal eine nginx-Instanz auf der Docker-VM, einmal eine nginx-Instanz auf dem Reverse-Proxy (falls ihr einen eigenen habt), und die Sache läuft.&lt;/p&gt;
&lt;h6 id=&#34;links-und-credit&#34;&gt;Links und Credit&lt;/h6&gt;
&lt;p&gt;&lt;a href=&#34;https://docs.standardnotes.org/self-hosting/docker&#34;&gt;https://docs.standardnotes.org/self-hosting/docker&lt;/a&gt;&lt;br&gt;
&lt;a href=&#34;https://docs.standardnotes.org/self-hosting/https-support&#34;&gt;https://docs.standardnotes.org/self-hosting/https-support&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Volltextsuche in Nextcloud – Elasticsearch installieren</title>
      <link>https://bernhardsteindl.at/volltextsuche-in-nextcloud-elasticsearch-installieren/</link>
      <pubDate>Mon, 13 Apr 2020 08:51:03 +0000</pubDate>
      <guid>https://bernhardsteindl.at/volltextsuche-in-nextcloud-elasticsearch-installieren/</guid>
      <description>&lt;p&gt;Es ist ja kein Geheimnis, dass wir die Nextcloud einsetzen. Da sich diese in den letzten Jahren immer weiter füllt, wird das Suchen und Finden von Dateien immer schwieriger. Hier gibt es eine tolle Möglichkeit, auch in den Dateien zu suchen, nämlich Elasticsearch. Dies ist auch schnell installiert, wie man in diesem &lt;a href=&#34;https://youtu.be/lAmBlfB9S0k&#34;&gt;Video&lt;/a&gt; und in diesem &lt;a href=&#34;https://decatec.de/home-server/volltextsuche-in-nextcloud-mit-ocr/&#34;&gt;Guide&lt;/a&gt; sehen kann.&lt;/p&gt;
&lt;h6 id=&#34;links-und-credit&#34;&gt;Links und Credit&lt;/h6&gt;
&lt;p&gt;&lt;a href=&#34;https://youtu.be/lAmBlfB9S0k&#34;&gt;https://youtu.be/lAmBlfB9S0k&lt;/a&gt;
&lt;a href=&#34;https://decatec.de/home-server/volltextsuche-in-nextcloud-mit-ocr/&#34;&gt;https://decatec.de/home-server/volltextsuche-in-nextcloud-mit-ocr/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zwei Zeilen und ein Halleluja</title>
      <link>https://bernhardsteindl.at/zwei-zeilen-und-ein-halleluja/</link>
      <pubDate>Mon, 20 Jan 2020 19:08:40 +0000</pubDate>
      <guid>https://bernhardsteindl.at/zwei-zeilen-und-ein-halleluja/</guid>
      <description>&lt;p&gt;Manchmal is wiakle zum Giftn. Zum Beispiel, wenn einem die Nextcloud seit dem Update auf 17 mal wieder ein bisserl herumspinnt.&lt;/p&gt;
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://bernhardsteindl.at/wp-content/uploads/2020/01/image-1024x280.png&#34;
         alt=&#34;Wenn man analysiert, fällt einem der CSP-Header am Kopf&#34;/&gt; &lt;figcaption&gt;
            &lt;p&gt;Wenn man analysiert, fällt einem der CSP-Header am Kopf&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Nun, was ist CSP? Hier geht es um die Ausführung von JavaScript, welches von einem Webbrowser ausgeführt werden soll und eine ziemlich große Angriffsfläche bietet. Daher hat man das mittels eines experimentellen Header „hinpfuscht“, welcher bis heute kein offizieller Standard ist.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Gitlab CE mit nginx-Reverse-Proxy aufsetzen</title>
      <link>https://bernhardsteindl.at/gitlab-ce-mit-nginx-reverse-proxy-aufsetzen/</link>
      <pubDate>Mon, 13 Jan 2020 11:09:26 +0000</pubDate>
      <guid>https://bernhardsteindl.at/gitlab-ce-mit-nginx-reverse-proxy-aufsetzen/</guid>
      <description>&lt;p&gt;Hier die nginx Reverse-Proxy-Config für gitlab-ce&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;server {
        listen 80;
        listen [::]:80;
        server_name DEINE_URL;
        return 301 https://$server_name$request_uri;}

server {
    listen 443 ssl http2; 
    listen [::]:443 ssl http2; # OCSP Stapling fetch OCSP records from URL in ssl_certificate and cache them
    server_name DEINE_URL; 

    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_certificate /etc/letsencrypt/live/git.itkfm.at/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/git.itkfm.at/privkey.pem; 

    resolver 9.9.9.9;
    ssl_ecdh_curve prime256v1;
    add_header Strict-Transport-Security &amp;#34;max-age=15768000; includeSubDomains; preload;&amp;#34;;
        # Server should determine the ciphers, not the client
        ssl_prefer_server_ciphers on;

        # SSL session handling
        ssl_session_timeout 24h;
        ssl_session_cache shared:SSL:50m;
        
        add_header X-Content-Type-Options nosniff;
        add_header X-XSS-Protection &amp;#34;1; mode=block&amp;#34;;
        add_header X-Robots-Tag none;
        add_header X-Download-Options noopen;
        add_header X-Permitted-Cross-Domain-Policies none;
        
        location / {
            proxy_pass https://DEINE_IP:443;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
    }
}
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Bitwarden Self-Hosting mit nginx-Reverse-Proxy aufsetzen</title>
      <link>https://bernhardsteindl.at/bitwarden-self-hosting-mit-nginx-reverse-proxy-aufsetzen/</link>
      <pubDate>Sat, 11 Jan 2020 14:21:19 +0000</pubDate>
      <guid>https://bernhardsteindl.at/bitwarden-self-hosting-mit-nginx-reverse-proxy-aufsetzen/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Veralteter Artikel:&lt;/strong&gt; Dieser Beitrag stammt aus dem Jahr 2020 und ist technisch überholt. Versionen, Befehle und Vorgehensweisen entsprechen möglicherweise nicht mehr dem aktuellen Stand.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Weil Keepass doch ein wenig schwierig zu nutzen ist auf allen Endgeräten, habe ich mich nach einer Alternative umgsehen und bin auf Bitwarden gestoßen. Das Interessante an Bitwarden ist, dass man sich seinen dafür benötigten Server selbst hosten kann. Hier nun ein kleiner Überblick, wie man sich den Server hinter einem nginx Reverse-Proxy installieren kann.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nextcloud-CalDav mit Thunderbird 60.x</title>
      <link>https://bernhardsteindl.at/nextcloud-caldav-mit-thunderbird-60-x/</link>
      <pubDate>Fri, 15 Nov 2019 07:34:57 +0000</pubDate>
      <guid>https://bernhardsteindl.at/nextcloud-caldav-mit-thunderbird-60-x/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Veralteter Artikel:&lt;/strong&gt; Dieser Beitrag stammt aus dem Jahr 2019 und ist technisch überholt. Versionen, Befehle und Vorgehensweisen entsprechen möglicherweise nicht mehr dem aktuellen Stand.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Update: Der einfachere Weg ist, auf Thunderbird 67 mit der neueren Lightning-Version upzudaten, welche die untenstehenden Probleme behebt.&lt;/p&gt;
&lt;p&gt;Leider gibt es nach wie vor Probleme mit Thunderbird 60 beim Synchronisieren der Nextcloud-Kalender. Diese äußern sich dadurch, das sich der Kalender zwar ohne Probleme hinzufügen lässt, aber ohne irgendeine Fehlermeldung einfach keine EInträge synchronisiert. Es gibt zum Glück einen Workarround:&lt;/p&gt;</description>
    </item>
    <item>
      <title>WordPress aus dem Wartungsmodus befreien</title>
      <link>https://bernhardsteindl.at/wordpress-aus-dem-wartungsmodus-befreien/</link>
      <pubDate>Thu, 14 Nov 2019 18:04:15 +0000</pubDate>
      <guid>https://bernhardsteindl.at/wordpress-aus-dem-wartungsmodus-befreien/</guid>
      <description>&lt;p&gt;Gerade hatte ich den Fall, das WordPress nach einem Gutenberg-Update im Wartungsmodus festhing. Dies äußert sich dadurch, dass die Website nur mehr anzeigt: „Wegen Wartungsarbeiten ist diese Website kurzzeitig nicht verfügbar“&lt;/p&gt;
&lt;p&gt;Die Lösung dafür ist denkbar einfach: Einfach aus dem Webserver-Verzeichnis die Datei „.maintenance“ löschen.&lt;/p&gt;
&lt;h6 id=&#34;links-und-credit&#34;&gt;Links und Credit&lt;/h6&gt;
&lt;p&gt;&lt;a href=&#34;https://www.sir-apfelot.de/wordpress-meldung-wartungsarbeiten-22862/&#34;&gt;https://www.sir-apfelot.de/wordpress-meldung-wartungsarbeiten-22862/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Invoice-Ninja selber hosten mit nginx-Reverse-Proxy</title>
      <link>https://bernhardsteindl.at/invoice-ninja-selber-hosten-mit-nginx-reverse-proxy/</link>
      <pubDate>Mon, 26 Aug 2019 11:49:52 +0000</pubDate>
      <guid>https://bernhardsteindl.at/invoice-ninja-selber-hosten-mit-nginx-reverse-proxy/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Veralteter Artikel:&lt;/strong&gt; Dieser Beitrag stammt aus dem Jahr 2019 und ist technisch überholt. Versionen, Befehle und Vorgehensweisen entsprechen möglicherweise nicht mehr dem aktuellen Stand.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://www.invoiceninja.org/&#34;&gt;InvoiceNinja&lt;/a&gt; ist ein Tool, um als Unternehmen seine Kunden und Rechnungen zu verwalten. Hier kurz die verwendete Konfiguration, um InvoiceNinja hinter einem nginx-Reverse-Proxy selbst zu hosten.&lt;/p&gt;
&lt;p&gt;Im ersten Schritt habe ich die Anleitung von InvoiceNinja verwendet, um die Applikation unter Debian aufzusetzen.&lt;/p&gt;
&lt;p&gt;InvoiceNinja .env Config:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bookstack mit nginx Reverse-Proxy betreiben &amp; E-Mail konfigurieren</title>
      <link>https://bernhardsteindl.at/bookstack-mit-nginx-reverse-proxy-betreiben-e-mail-konfigurieren/</link>
      <pubDate>Mon, 26 Aug 2019 11:41:30 +0000</pubDate>
      <guid>https://bernhardsteindl.at/bookstack-mit-nginx-reverse-proxy-betreiben-e-mail-konfigurieren/</guid>
      <description>&lt;p&gt;Bei &lt;a href=&#34;http://bookstackapp.com&#34;&gt;Bookstack&lt;/a&gt; handelt es sich um eine Anwendung, die eine Dokumentenverwaltung bereitstellt. Leider ist die Doku sehr spärlich ausgeführt, warum ich hier nun kurz zusammenfasse, wie die Applikation hinter einem nginx Reverse-Proxy betreibbar ist.&lt;/p&gt;
&lt;p&gt;Die Applikation selbst habe ich mit dem Installationsscript für Ubuntu-Server installiert.&lt;/p&gt;
&lt;p&gt;Um E-Mail erfolgreich zu konfigurieren, muss man die Datei „/var/www/bookstack/.env“ bearbeiten, damit sie folgende Einträge enthält:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# Application key
# Used for encryption where needed.
# Run `php artisan key:generate` to generate a valid key.
APP_KEY=censored

# Application URL
# Remove the hash below and set a URL if using BookStack behind
# a proxy, if using a third-party authentication option.
# This must be the root URL that you want to host BookStack on.
# All URL&amp;#39;s in BookStack will be generated using this value.
APP_URL=https://your.domain.net

# Database details
DB_HOST=localhost
DB_DATABASE=bookstack
DB_USERNAME=bookstack
DB_PASSWORD=censored

# Mail system to use
# Can be &amp;#39;smtp&amp;#39;, &amp;#39;mail&amp;#39; or &amp;#39;sendmail&amp;#39;
MAIL_DRIVER=smtp

MAIL_FROM=test@test.at
MAIL_FROM_NAME=Your Bookstack Server

# SMTP mail options
MAIL_HOST=test.mail.at
MAIL_PORT=465
MAIL_USERNAME=test@test.at
MAIL_PASSWORD=censored
MAIL_ENCRYPTION=ssl

# A full list of options can be found in the &amp;#39;.env.example.complete&amp;#39; file.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Im Reverse-Proxy muss die Config folgendermaßen aussehen:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kurze Beitragsansicht auf Startseite – Twenty Fifteen Theme WordPress</title>
      <link>https://bernhardsteindl.at/kurze-beitragsansicht-auf-startseite-twenty-fifteen-theme-wordpress/</link>
      <pubDate>Tue, 02 Apr 2019 08:11:14 +0000</pubDate>
      <guid>https://bernhardsteindl.at/kurze-beitragsansicht-auf-startseite-twenty-fifteen-theme-wordpress/</guid>
      <description>&lt;p&gt;Es hat mich schon länger genervt, das auf der Startseite immer die kompletten Blogposts angezeigt wurden… Das ging doch sehr zu lasten der Übersicht. Nun habe ich einen Weg gefunden, wie sich das Theme modifizieren lässt, damit nur ein Ausschnitt des Artikels gezeigt wird.&lt;/p&gt;
&lt;p&gt;In der content.php-Datei des Themes muss folgender Codeteil ersetzt werden:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;
		&amp;lt;?php
			/* translators: %s: Name of current post */
			the_content( sprintf(
				__( &amp;#39;Continue reading %s&amp;#39;, &amp;#39;twentyfifteen&amp;#39; ),
				the_title( &amp;#39;&amp;#39;, &amp;#39;&amp;#39;, false )
			) );

			wp_link_pages( array(
				&amp;#39;before&amp;#39;      =&amp;gt; &amp;#39;&amp;#39; . __( &amp;#39;Pages:&amp;#39;, &amp;#39;twentyfifteen&amp;#39; ) . &amp;#39;&amp;#39;,
				&amp;#39;after&amp;#39;       =&amp;gt; &amp;#39;&amp;#39;,
				&amp;#39;link_before&amp;#39; =&amp;gt; &amp;#39;&amp;#39;,
				&amp;#39;link_after&amp;#39;  =&amp;gt; &amp;#39;&amp;#39;,
				&amp;#39;pagelink&amp;#39;    =&amp;gt; &amp;#39;&amp;#39; . __( &amp;#39;Page&amp;#39;, &amp;#39;twentyfifteen&amp;#39; ) . &amp;#39; %&amp;#39;,
				&amp;#39;separator&amp;#39;   =&amp;gt; &amp;#39;, &amp;#39;,
			) );
		?&amp;gt;
	&amp;lt;!-- .entry-content --&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Durch:&lt;/p&gt;</description>
    </item>
    <item>
      <title>SFTP-Zugang einrichten (zB Webhosting)</title>
      <link>https://bernhardsteindl.at/sftp-zugang-einrichten-zb-webhosting/</link>
      <pubDate>Mon, 01 Apr 2019 10:56:36 +0000</pubDate>
      <guid>https://bernhardsteindl.at/sftp-zugang-einrichten-zb-webhosting/</guid>
      <description>&lt;p&gt;Will man als Webhoster seinen Kunden einen SFTP-Zugang bieten, lässt sich dieser wie folgt einrichten:&lt;/p&gt;
&lt;p&gt;Zuerst wird der User angelegt:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;adduser kunde1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Damit der User keinen Zugriff auf die Shell hat, nehmen wir ihm mit folgendem Kommando die Rechte dafür ab:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;usermod -s /bin/false kunde1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nun beschränken wir den Kunden im Dateisystem. Wir nehmen den Ordner „/var/www/kunde1“ als Beispiel&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;chown root:root /var/www/kunde1
chmod 755 /var/www/kunde1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Jetzt hätte eigentlich der Webserver keinen Zugriff mehr auf den Ordner, was nicht Sinn der Sache ist… Ich empfehle, hier nochmals einen Unterordner zu machen, in dem dann der Inhalt der Website liegt. Im Ordner /var/www/kunde1 hat der Kunde selbst keine Rechte.&lt;/p&gt;</description>
    </item>
    <item>
      <title>mailcow-Backup über Borg</title>
      <link>https://bernhardsteindl.at/mailcow-backup-ueber-borg/</link>
      <pubDate>Mon, 11 Feb 2019 21:09:29 +0000</pubDate>
      <guid>https://bernhardsteindl.at/mailcow-backup-ueber-borg/</guid>
      <description>&lt;p&gt;Andre Peters bietet mit seiner &lt;a href=&#34;https://mailcow.email/&#34;&gt;mailcow&lt;/a&gt; eine umfassende Groupware-Lösung an. Nochmals vielen Dank für seinen Beitrag an die Open-Source-Welt!&lt;/p&gt;
&lt;p&gt;Ich sichere die meisten unserer Server mittels borg. Damit sichere ich nicht das komplette System, sondern nur relevante Teile. Das sind im Falle der mailcow natürlich nur alle Daten.&lt;/p&gt;
&lt;p&gt;Das Backup-Script basiert stark auf dem des mailcow-Urhebers, mit dem Unterschied, dass die Mails nicht ge-„tar“-t, sondern einfach nur in ein anderes Verzeichnis kopiert werden, damit das inkrementelle Backup mittels Borg nur die Änderungen eines Tages abbildet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aus dem Browser scannen und auf Nextcloud hochladen</title>
      <link>https://bernhardsteindl.at/aus-dem-browser-scannen-und-auf-nextcloud-hochladen/</link>
      <pubDate>Sun, 10 Feb 2019 10:22:10 +0000</pubDate>
      <guid>https://bernhardsteindl.at/aus-dem-browser-scannen-und-auf-nextcloud-hochladen/</guid>
      <description>&lt;p&gt;Hier habe ich ein Bash-Script zusammengestellt, dass es ermöglicht, von einem Scanner mittels dem sane-backend-Befehl scanimage ein Dokument zu scannen und dieses dann als PDF auf eine Nextcloud-Instanz mittels WebDAV hochzuladen.&lt;/p&gt;
&lt;p&gt;Notwendige Pakete:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;apt install libtiff-tools imagemagick sane-utils&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Leider ist in imagemagick ein Bug, der es erfordert, dass in der &lt;code&gt;/etc/ImageMagic-6/policy.xml&lt;/code&gt; die Zeile&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;durch&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;zu ersetzen. Danach sollte das Script einwandfrei funktionieren. Außerdem könnt ihr in dieser File die memory-limits usw erhöhen oder auskommentieren, damit ihr kein Problem bei größeren Scans bekommt.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Collabora-Server in LXC laufen lassen – Nextcloud 15</title>
      <link>https://bernhardsteindl.at/collabora-server-in-lxc-laufen-lassen-nextcloud-15/</link>
      <pubDate>Wed, 06 Feb 2019 11:53:42 +0000</pubDate>
      <guid>https://bernhardsteindl.at/collabora-server-in-lxc-laufen-lassen-nextcloud-15/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Veralteter Artikel:&lt;/strong&gt; Dieser Beitrag stammt aus dem Jahr 2019 und ist technisch überholt. Versionen, Befehle und Vorgehensweisen entsprechen möglicherweise nicht mehr dem aktuellen Stand.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;UPDATE: sollte sich nach einem Kernel-Update der Docker-Dämon nicht mehr starten lassen, dann folgenden Befehl probieren:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;rm /var/lib/docker/aufs -rf
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Danach den Dämon neu starten, dann sollte ein Neustart des Containers wieder funktionieren! UPDATE ENDE&lt;/p&gt;
&lt;p&gt;Mit Nextcloud Version 15 gibt es nun eine neue und sehr interessante Funktion, mit der sich direkt im Webinterface der Self-Hosting-Cloud, und auch der dazugehörigen App, Dokumente, Tabellenkalkulationen und Präsentationen in unterschiedlichsten Dateiformaten ansehen und bearbeiten lassen. Dazu reicht es allerdings nicht, die Funktion in der Nextcloud zu aktivieren, sondern es wird ein weiterer Dienst benötigt, der wie folgt mit Docker aufzusetzen ist:&lt;/p&gt;</description>
    </item>
    <item>
      <title>WordPress-Migration auf neuen Server – eine Leidensgeschichte</title>
      <link>https://bernhardsteindl.at/wordpress-migration-auf-neuen-server-eine-leidensgeschichte/</link>
      <pubDate>Wed, 06 Feb 2019 11:33:29 +0000</pubDate>
      <guid>https://bernhardsteindl.at/wordpress-migration-auf-neuen-server-eine-leidensgeschichte/</guid>
      <description>&lt;p&gt;Aufgrund von internen Umstrukturierungen der IT mussten wir nun diesen Blog auf einen neuen Server mit einem neuen Domain-Namen (blog.e9a.at anstatt e9a.at) umsiedeln. Normalerweise verläuft so etwas bei uns relativ problemlos, wir haben das auch schon ein paar mal gemacht. Allerdings war es für uns ein Novum, eine WordPress-Instanz über die Kommandozeile zu migrieren. Und wie sich herausstellen sollte, kann es mit WordPress durchaus wilde Komplikationen geben. Vor allem, wenn man es sich zur Aufgabe macht, das ganze mit nginx und mit einem Reverse-Proxy laufen zu lassen. Hier nun eine Anweisung, wie wir schließlich ans Ziel gekommen sind, und welche Steine WordPress uns in den Weg gelegt hat.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Von Linux-Terminal auf Nextcloud mittels WebDAV uploaden</title>
      <link>https://bernhardsteindl.at/von-linux-terminal-auf-nextcloud-mittels-webdav-uploaden/</link>
      <pubDate>Thu, 20 Dec 2018 13:02:03 +0000</pubDate>
      <guid>https://bernhardsteindl.at/von-linux-terminal-auf-nextcloud-mittels-webdav-uploaden/</guid>
      <description>&lt;p&gt;Um Daten von einem Linux-Server auf eine Nextcloud hochzuladen, kann das Tool curl benutzt werden. Dieser Artikel beschreibt die dafür benötigten Paramter: &lt;a href=&#34;https://www.qed42.com/blog/using-curl-commands-webdav&#34;&gt;https://www.qed42.com/blog/using-curl-commands-webdav&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ein Beispiel für die Nextcloud würde folgendermaßen aussehen:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;curl --user &amp;#39;username:password&amp;#39; -T filename.log &amp;#39;https://cloud.nextcloud.xyz/remote.php/webdav/&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;h6 id=&#34;links-und-credit&#34;&gt;Links und Credit&lt;/h6&gt;
&lt;p&gt;&lt;a href=&#34;https://www.qed42.com/blog/using-curl-commands-webdav&#34;&gt;https://www.qed42.com/blog/using-curl-commands-webdav&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>ghost.org mit Nginx-Reverse-Proxy auf anderem Server</title>
      <link>https://bernhardsteindl.at/ghost-org-mit-nginx-reverse-proxy-auf-anderem-server/</link>
      <pubDate>Thu, 20 Dec 2018 10:41:41 +0000</pubDate>
      <guid>https://bernhardsteindl.at/ghost-org-mit-nginx-reverse-proxy-auf-anderem-server/</guid>
      <description>&lt;p&gt;Heute habe ich das erste Mal eine Ghost-Instanz zuhause aufgesetzt. Der Reverse-Proxy hat mir dabei ein wenig Kopfschmerzen bereitet. Schlussendlich bin ich bei folgender Lösung gelandet:&lt;/p&gt;
&lt;p&gt;Diese Anleitung bis zu „ghost install“ befolgen: &lt;a href=&#34;https://docs.ghost.org/install/ubuntu/&#34;&gt;https://docs.ghost.org/install/ubuntu/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Beim Hostnamen geben wir unsere URL mit https an&lt;/p&gt;
&lt;p&gt;Alle Parameter so weit eingeben, bis die Frage kommt: Nginx installieren? Wir wollen Nginx nicht auf dieser Instanz, deshalb hier mit Nein beantworten.&lt;/p&gt;
&lt;p&gt;Auch SSL wollen wir nicht hier haben, sondern am Reverse-Proxy, deshalb ebenfalls mit Nein&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
