<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Raspberry PI - Solar Trade Alliance  Forum				            </title>
            <link>https://www.tradealliance.nl/community/raspberry-pi/</link>
            <description>Solar Trade Alliance  Discussion Board</description>
            <language>en-US</language>
            <lastBuildDate>Sat, 02 May 2026 05:43:10 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>Docker Compose File Nextcloud</title>
                        <link>https://www.tradealliance.nl/community/raspberry-pi/docker-compose-file-nextcloud/</link>
                        <pubDate>Mon, 22 Jul 2024 19:56:44 +0000</pubDate>
                        <description><![CDATA[Voor de installatie van Nextcloud in een container heb ik de volgende Docker Compose File gebruikt:
version: &#039;2&#039;
services:
  nextcloud:
    image: nextcloud:latest
    container_name: c...]]></description>
                        <content:encoded><![CDATA[<p>Voor de installatie van Nextcloud in een container heb ik de volgende Docker Compose File gebruikt:</p>
<pre contenteditable="false">version: '2'
services:
  nextcloud:
    image: nextcloud:latest
    container_name: cloudcity
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Amsterdam
    volumes:
      - /var/www/html 
    depends_on:
      - nextclouddb
    restart: unless-stopped
  nextclouddb:
    image: yobasystems/alpine-mariadb:latest
    container_name: cloudcitydb
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD=changeme
      - MYSQL_PASSWORD=changeme
      - MYSQL_DATABASE=changeme
      - MYSQL_USER=changeme
    volumes:
      - /var/lib/mysql
    restart: unless-stopped</pre>
<p> </p>]]></content:encoded>
						                            <category domain="https://www.tradealliance.nl/community/raspberry-pi/">Raspberry PI</category>                        <dc:creator>Lantern</dc:creator>
                        <guid isPermaLink="true">https://www.tradealliance.nl/community/raspberry-pi/docker-compose-file-nextcloud/</guid>
                    </item>
				                    <item>
                        <title>Docker Compose File Wordpress</title>
                        <link>https://www.tradealliance.nl/community/raspberry-pi/docker-compose-file-wordpress/</link>
                        <pubDate>Mon, 22 Jul 2024 19:46:51 +0000</pubDate>
                        <description><![CDATA[Om Wordpress te installeren in een Docker Container heb ik deze Docker Compose File gebruikt:
Een Docker Compose File kan je dan gebruiken in Portainer (Portainer = grafische schil om je Do...]]></description>
                        <content:encoded><![CDATA[<p>Om Wordpress te installeren in een Docker Container heb ik deze Docker Compose File gebruikt:</p>
<p>Een Docker Compose File kan je dan gebruiken in <a href="https://www.portainer.io/" target="_blank" rel="noopener">Portainer</a> (Portainer = grafische schil om je Docker omgeving ) wat zorgt dat je meerdere services zoals in dit voorbeeld:</p>
<ol>
<li>Wordpress</li>
<li>Database (voor Wordpress)</li>
</ol>
<p>In 1 keer kan uitrollen i.p.v. dat je elke Service apart installeert. Heel handig maar heel erg foutgevoelig (YAML)</p>
<pre contenteditable="false">version: '2'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - wordpress:/var/www/html

  db:
    image: yobasystems/alpine-mariadb:latest
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_ROOT_PASSWORD: changeme
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:</pre>
<p>Uiteraard moet je USER en PASSWORD wel wijzigen :)</p>
<p>NOTE:</p>
<p>Het netwerk waarin Wordpress zich installeert moet je misschien aanpassen meestal wordt het netwerk zo iets als &lt;stackname_default&gt;. Ik heb hier dagen over zitten pielen en heb nog niet DE setting gevonden maar het werkt voor nu :)</p>]]></content:encoded>
						                            <category domain="https://www.tradealliance.nl/community/raspberry-pi/">Raspberry PI</category>                        <dc:creator>Lantern</dc:creator>
                        <guid isPermaLink="true">https://www.tradealliance.nl/community/raspberry-pi/docker-compose-file-wordpress/</guid>
                    </item>
				                    <item>
                        <title>Raspberry Pi5 - Installatie Docker &amp; Portainer HOW TO</title>
                        <link>https://www.tradealliance.nl/community/raspberry-pi/raspberry-pi5-installatie-docker-portainer-how-to/</link>
                        <pubDate>Tue, 11 Jun 2024 11:26:26 +0000</pubDate>
                        <description><![CDATA[Gekozen is voor zowel Docker als Portainer op mijn Pi5 met Ubuntu Server 24.04 LTS


 
 
 
Voor de installatie van Docker &amp; Portainer heb ik de volgende commando&#039;s gebruikt op de R...]]></description>
                        <content:encoded><![CDATA[<p>Gekozen is voor zowel Docker als Portainer op mijn Pi5 met Ubuntu Server 24.04 LTS</p>
2417
2424
<p> </p>
<div style="text-align: center"> </div>
<p> </p>
<p>Voor de installatie van Docker &amp; Portainer heb ik de volgende commando's gebruikt op de Raspberry Pi5</p>
<p><strong>note:</strong> het commando <em><strong>sudo</strong></em> i.c.m. je wachtwoord is benodigd om voldoende rechten te hebben om deze commando's uit te voeren. Dit kan per omgeving en set-up verschillen.</p>
<p>1.Docker Download: <em>sudo curl -sSL https://get.docker.com | sh</em><br />2.Het toevoegen van een gebruiker aan Docker: <em>sudo user to docker group: sudo usermod -aG docker &lt;USERNAME&gt;, ik heb gekozen voor de username die ik ook gebruik voor in te loggen op mijn Raspberry Pi.</em></p>
<p>3. Check of Docker actief is d.m.v. commando: <em>docker</em>, dit zal het volgende resultaat geven als docker actief is:</p>
<p><em>Usage: docker  COMMAND</em><br /><em>etc.</em></p>
<p>Om Docker en de containers makkelijker te beheren in een grafische omgeving maak ik gebruik van Portainer - https://www.portainer.io/</p>
<p>Portainer Container Download: <em>sudo docker pull portainer/portainer-ce:linux-arm</em><br />Portainer Container Installatie: <em>sudo docker run -d -p 9000:9000 -p 8000:8000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer:latest</em></p>
<p>In dit commando is op genomen dat Portainer altijd herstart en bereikbaar is via poort: 9000</p>
<p>Start je browser op en tik in: http://IP ADRES (PI5) of HOSTNAME.LOCAL:9000</p>
<p>In mijn geval is het: http://naam Pi5.local:9000</p>
<p>Als het goed is moet dit scherm verschijnen:</p>
2425
<p>De inrichting van Docker &amp; Portainer zal in een separaat topic behandeld worden.</p>
<p>Ook voor de dit Cook HOW TO Book geldt mochten er zaken niet kloppen of onduidelijk zijn laat het weten &#x2764;&#xfe0f; </p>
<p> </p>
<p> </p>
<p> </p>]]></content:encoded>
						                            <category domain="https://www.tradealliance.nl/community/raspberry-pi/">Raspberry PI</category>                        <dc:creator>Lantern</dc:creator>
                        <guid isPermaLink="true">https://www.tradealliance.nl/community/raspberry-pi/raspberry-pi5-installatie-docker-portainer-how-to/</guid>
                    </item>
				                    <item>
                        <title>Raspberry Pi5 - Boot from SSD (Windows version)</title>
                        <link>https://www.tradealliance.nl/community/raspberry-pi/raspberry-pi5-boot-from-ssd-windows-version/</link>
                        <pubDate>Tue, 11 Jun 2024 08:48:37 +0000</pubDate>
                        <description><![CDATA[Benodigdheden:

1. Raspberry Pi5
2. SDcard min. 4GB
3. SSD Disk

STAP 1:
1. Download Raspberry Pi Imager -Dit doe je op je PC - Windows2. Installeer de Raspberry Pi Imager sofware3. S...]]></description>
                        <content:encoded><![CDATA[<p><em><strong>Benodigdheden:</strong></em></p>
<ul>
<li>1. Raspberry Pi5</li>
<li>2. SDcard min. 4GB</li>
<li>3. SSD Disk</li>
</ul>
<p><strong>STAP 1:</strong></p>
<p>1. Download Raspberry Pi Imager - https://www.raspberrypi.com/software/. Dit doe je op je PC - Windows<br />2. Installeer de Raspberry Pi Imager sofware<br />3. Stop de SDcard in je PC bijv. via een SDcard reader o.i.d. De SDCard zal al een extra device/drive verschijnen in je Windows Verkenner</p>
<p>Start Raspberry Pi Imager software<br /><br />1. Kies Raspberry Pi Model: Raspberry Pi5<br />2. Kies Besturingssysteem: Misc. Utilities -&gt; Bootloader (Pi 5 Family) -&gt; NVME/USB Boot<br />3. Opslagapparaat: Selecteer de USB Drive</p>
2418
<p><br /><em>Klik Volgende</em><br /><br />Bij de melding "Alle bestaande gegevens worden op <em>&lt;USB DRIVE&gt;</em> zullen worden verwijdert" - "Weet u zeker dat u door wilt gaan?" - klik JA<br /><br />Als de installatie is afgerond moet je de volgende melding krijgen:</p>
2419
<p>Haal de SDCard uit je PC en stop deze in de SDCard slot van je Pi5</p>
<p>Start de Raspberry Pi5 op. De Ledlampje op de Pi zal gaan knipperen (<strong><span style="color: #00ff00">GROEN</span></strong>). Als je de PI aangesloten hebt op een monitor zal het beeld na verloop van tijd een <strong><span style="color: #00ff00">GROEN</span></strong> scherm geven. Dit houdt in dat de installatie gelukt is en de Pi kan booten van USB</p>
<p><strong>STAP 2:</strong></p>
<p>1. Sluit de SSD disk aan op je PC</p>
<p>Start de Raspberry Pi Imager op</p>
<p><br />1. Kies Raspberry Pi Model: Raspberry Pi5<br />2. Kies Besturingssysteem: Kies hier het gewenste OS - ik heb zelf gekozen voor Ubuntu Server 24.04 LTS<br />3. Opslagapparaat: Selecteer SSD Disk</p>
2420
<p><br /><em>Klik Volgende en hier zal gevraagd worden of je de installatie van je OS wilt voorzien van je eigen settings. Indien je gewenst is kies je AANPASSEN zoniet kies je NEE.<br /></em></p>
2421
<p>TIP : Als je de instellingen aanpast kan je gelijk SSH aanzetten.</p>
<p>Nu zal het OS gedownload worden en op de SSD worden geïnstalleerd.</p>
<p>Als de installatie gereed is zal dit scherm verschijnen waarbij je de SDcard uit de Pi5 kan halen.</p>
2422
<p>Sluit de SSD Disk aan op de Pi en start de Pi op. Nu zal het OS starten vanaf de SSD Disk zoals hier onderstaand.</p>
2423
<p>Nu het OS geïnstalleerd en op gestart is kan je verder bouwen aan je omgeving.</p>
<p>Mocht er in deze HOW TO fouten staan e.d. hoor ik dat graag ook alle vragen/opmerkingen zijn van &#x2764;&#xfe0f; te welkom.</p>
<p> </p>
<p> </p>]]></content:encoded>
						                            <category domain="https://www.tradealliance.nl/community/raspberry-pi/">Raspberry PI</category>                        <dc:creator>Lantern</dc:creator>
                        <guid isPermaLink="true">https://www.tradealliance.nl/community/raspberry-pi/raspberry-pi5-boot-from-ssd-windows-version/</guid>
                    </item>
				                    <item>
                        <title>Install Yunohost on Raspberry Pi 5 on SSD</title>
                        <link>https://www.tradealliance.nl/community/raspberry-pi/install-yunohost-on-raspberry-pi-5-on-ssd/</link>
                        <pubDate>Wed, 29 May 2024 14:04:44 +0000</pubDate>
                        <description><![CDATA[Dit is een manual op basis van een Raspberry Pi4B maar we gaan het proberen op een Raspberry Pi5. Plus de helpende hand via het Cookbook van Roebar ;)
Bron:

Burn a MicroSD card with the c...]]></description>
                        <content:encoded><![CDATA[<p>Dit is een manual op basis van een Raspberry Pi4B maar we gaan het proberen op een Raspberry Pi5. Plus de helpende hand via het Cookbook van Roebar ;)</p>
<p><em>Bron: https://forum.yunohost.org/t/install-yunohost-on-raspberry-pi-4b-on-ssd/25090</em></p>
<ol>
<li><span style="text-decoration: line-through">Burn a MicroSD card with the current Yunohost image as in the documentation.</span></li>
<li><span style="text-decoration: line-through">Boot the Pi from the SD card, connect, and let it run through the installation process so you have an admin login.</span></li>
<li><span style="text-decoration: line-through">Connect to the Pi over SSH with the admin user.</span></li>
<li><span style="text-decoration: line-through">Check the status of the Pi EEPROM with <code>sudo vcgencmd bootloader_version</code>. The version date is on the first line and should be later than 2020/03/09.</span></li>
<li><span style="text-decoration: line-through">Check for an update with <code>sudo rpi-eeprom-update</code>. There may be an update available, but the update channel needs to be changed from <code>default</code> (that was in my case, the blog entry says it will be <code>critical</code>) to <code>stable</code>.</span></li>
<li><span style="text-decoration: line-through">Open <code>/etc/default/rpi-eeprom-update</code> with an editor. For ease of use <code>sudo nano /etc/default/rpi-eeprom-update</code>. You will see the line <code>FIRMWARE_RELEASE_STATUS="default"</code>. Change <code>default</code> to <code>stable</code>. Save the file.</span></li>
<li><span style="text-decoration: line-through">Check <code>sudo rpi-eeprom-update</code> again. This should show an update.</span></li>
<li><span style="text-decoration: line-through">Apply the update with <code>sudo rpi-eeprom-update -a</code>, and reboot.</span></li>
<li><span style="text-decoration: line-through">When the Pi has rebooted, check that the update has been applied with <code>vcgencmd bootloader_version</code> again.</span></li>
<li><span style="text-decoration: line-through">Now change the boot order. This can be done through <code>raspi-config</code>.</span></li>
<li><span style="text-decoration: line-through">Run <code>sudo raspi-config</code> and select <code>6. Advanced Options</code>.</span></li>
<li><span style="text-decoration: line-through">Select <code>A6 Boot Order</code>. Confirm that the first option is <code>B1 SD Card Boot Boot from SD Card if available, otherwise boot from USB</code>. If it isn’t, make an option that includes USB first - the second option for me is <code>B2 USB Boot     Boot from USB if available, otherwise boot from SD Card</code>, but I can’t change to that in the Yunohost image.</span></li>
<li><span style="text-decoration: line-through">Next, burn the Yunohost image to your SSD. This works in the same way as an SD card, so use Etcher or the image burner of your choice. Etcher will tell you that your SSD is a large device and ask for confirmation.</span></li>
<li><span style="text-decoration: line-through">You now have a 2.1GB image on your SSD so it needs to be resized. On a Linux based desktop this will need Gparted or another disk management tool (Gnome Disks, KDE Partition Manager etc) so start that.</span></li>
<li><span style="text-decoration: line-through">The external SSD should appear with your local storage with a FAT32 <code>boot</code> partition, a 2.1 GB <code>rootfs</code> partition and a lot of unallocated space. Resize the <code>rootfs</code> partition to use up as much space as it can. Gparted, Disks and KDE Partition Manager will do this graphically.</span></li>
<li><span style="text-decoration: line-through">Remove the SD card from the Pi and plug the SSD into one of the USB 3 ports and boot.</span></li>
<li><span style="text-decoration: line-through">Connect to the Pi with a web browser - it should have the same IP as with the SD card if your router is working correctly and run the configuration again. You should then have a clean Yunohost install on the SSD.</span></li>
</ol>
<p> </p>
<p><strong>Download links:</strong></p>
<p>Balena Etcher: https://etcher.balena.io/#download-etcher</p>
<p>Yunohost: https://yunohost.org/en/install/hardware:rpi34</p>
<p>UPDATE: Nieuwe Cookbook volgt a.s.a.p. &#x1f923; </p>
<p> </p>
<p> </p>]]></content:encoded>
						                            <category domain="https://www.tradealliance.nl/community/raspberry-pi/">Raspberry PI</category>                        <dc:creator>Lantern</dc:creator>
                        <guid isPermaLink="true">https://www.tradealliance.nl/community/raspberry-pi/install-yunohost-on-raspberry-pi-5-on-ssd/</guid>
                    </item>
				                    <item>
                        <title>Mount NFS share van DietPi naar een QNAP NAS - en mogelijk probleem</title>
                        <link>https://www.tradealliance.nl/community/raspberry-pi/mount-nfs-share-van-dietpi-naar-een-qnap-nas-en-mogelijk-probleem/</link>
                        <pubDate>Sat, 29 Jul 2023 12:41:44 +0000</pubDate>
                        <description><![CDATA[Even een opmerking (met tekst in het engels) betreffende problemen met het mounten van een QNAP NFS share.
So it looks like something between Linux v5.10 and v5.15 changed which affects QNA...]]></description>
                        <content:encoded><![CDATA[<p>Even een opmerking (met tekst in het engels) betreffende problemen met het mounten van een QNAP NFS share.</p>
<p>So it looks like something between Linux v5.10 and v5.15 changed which affects QNAP NFS mounts in particular: <a href="https://dietpi.com/phpbb/viewtopic.php?t=10238" target="_blank" rel="noopener">https://dietpi.com/phpbb/viewtopic.php?t=10238</a><br />So another test with current kernel, to verify that both issues are the same, would be add nfsvers=4 as mount option. <br />(See <a href="https://github.com/MichaIng/DietPi/issues/5358" target="_blank" rel="noopener">https://github.com/MichaIng/DietPi/issues/5358</a> )</p>
<p>Dus, de diverse shares handmatig toevoegen (met een mkdir voor de folders) in plaats van een nfs link naar de server die de shares als subdir toevoegt, en voor elk de nfs versie aangeven.<br /><br />Handmatige wijziging in /etc/fstab:</p>
<blockquote>
<p>#----------------------------------------------------------------<br /># NETWORK<br />#----------------------------------------------------------------<br /><span style="color: #ff0000">#</span> qnas.home:/ /mnt/nfs_qnas nfs nofail,noauto,x-systemd.automount<br />qnas.home:/dietpi-systeem /mnt/nfs_qnas/dietpi-systeem nfs nofail,noauto,x-systemd.automount<span style="color: #ff0000">,nfsvers=4</span><br />qnas.home:/dietpi-data /mnt/nfs_qnas/dietpi-data nfs nofail,noauto,x-systemd.automount<span style="color: #ff0000">,nfsvers=4</span></p>
</blockquote>
<p>Daarna mounts herladen door het verversen van systemd’s ‘view of the world’, inclusief de wijzigingen in /etc/fstab, door het commando</p>
<blockquote>
<p>systemctl daemon-reload</p>
</blockquote>]]></content:encoded>
						                            <category domain="https://www.tradealliance.nl/community/raspberry-pi/">Raspberry PI</category>                        <dc:creator>Abib</dc:creator>
                        <guid isPermaLink="true">https://www.tradealliance.nl/community/raspberry-pi/mount-nfs-share-van-dietpi-naar-een-qnap-nas-en-mogelijk-probleem/</guid>
                    </item>
				                    <item>
                        <title>LetsEncrypt certificate renewal in een DietPi omgeving met Lighttpd</title>
                        <link>https://www.tradealliance.nl/community/raspberry-pi/letsencrypt-certificate-renewal-in-een-dietpi-omgeving-met-lighttpd/</link>
                        <pubDate>Thu, 30 Dec 2021 13:12:50 +0000</pubDate>
                        <description><![CDATA[Probleem: Letsencrypt certificate renewal proces faalt
Omgeving: DietPi met Lighttpd webserver. Domein verkeer wordt eventueel omgeleid naar een andere sub-directory van /var/www
Falende a...]]></description>
                        <content:encoded><![CDATA[<ul>
<li><span></span><strong>Probleem</strong>: Letsencrypt certificate renewal proces faalt</li>
<li><span></span><strong>Omgeving</strong>: DietPi met Lighttpd webserver. Domein verkeer wordt eventueel omgeleid naar een andere sub-directory van <strong>/var/www</strong></li>
<li><span></span><strong>Falende actie</strong>: Het verversen van het certificaat via <strong>sudo dietpi-letsencrypt</strong> faalt met een time-out van de http-01 challenge</li>
<li><span></span><strong>Oplossing/Workaround</strong>: Certbot laten draaien met de native, stand-alone webserver</li>
</ul>
<p>LetsEncrypt maakt gebruik van Certbot om het certificaat aan te vragen of te vernieuwen. Dit kan ook handmatig via <strong>sudo certbot renew</strong><span class="Apple-converted-space"> </span></p>
<p>In het proces wordt gebruik gemaakt van Lighttpd als bestaande webserver, waarbij Certbot een token bestand aanmaakt in <strong>/var/www/.well-known/acme-challenge/</strong> en deze vervolgens opvraagt over http via <strong>http://&lt;website_domain_FQN&gt;/.well-known/acme-challenge/&lt;token_bestand&gt;<span class="Apple-converted-space"> </span></strong></p>
<p>Het blijkt dat bij gebruik van Lighttpd Certbot de folders en het token bestand aanmaken als gebruiker/groep <strong>root</strong>, terwijl Lighttpd alleen bestanden aan kan bieden aan webclients die <strong>www-data</strong> als gebruiker/groep hebben. Het resultaat is dat de http-01 challenge mislukt door een time-out omdat het torenbestand niet opgehaald kan worden.</p>
<p>Een oplossing of workaround hiervoor blijkt te zijn om de ingebouwde webserver van Certbot te gebruiken. Deze moet verbinding maken met de porten die door Lighttpd in gebruik zijn, en daarvoor moet die service eerst afgesloten worden en na de verversing weer worden opgestart. Dit kan op twee wijzen, via de command line en via de config bestanden van Certbot. Hierbij past Certbot de opties van het directe commando aan in het config bestand voor toekomstig gebruik - maar dit betekent waarschijnlijk ook dat bij andere invoer het config bestand niet meer werkt zoals gewenst.</p>
<p>Het directe commando om te gebruiken is:</p>
<p><strong>sudo certbot renew --pre-hook "service lighttpd stop" --post-hook "service lighttpd start" --standalone</strong></p>
<p> </p>
<p>Het configuratiebestand voor renewal opdrachten staat op:</p>
<p><strong>/etc/letsencrypt/renewal/&lt;FQN_domain_Name&gt;.conf</strong></p>
<p>Deze ziet er dan zo uit (let op dat de omleiding naar de folder van de website bij het domain niet actief is door # aan het begin van de regel!):</p>
<pre contenteditable="false"># renew_before_expiry = 30 days
version = 1.12.0
archive_dir = /etc/letsencrypt/archive/&lt;FQN_domain_name&gt;
cert = /etc/letsencrypt/live/&lt;FQN_domain_name&gt;/cert.pem
privkey = /etc/letsencrypt/live/&lt;FQN_domain_name&gt;/privkey.pem
chain = /etc/letsencrypt/live/&lt;FQN_domain_name&gt;/chain.pem
fullchain = /etc/letsencrypt/live/&lt;FQN_domain_name&gt;/fullchain.pem

# Options used in the renewal process

account = &lt;account_token&gt;
rsa_key_size = 4096
authenticator = standalone
webroot_path = /var/www,
server = https://acme-v02.api.letsencrypt.org/directory
pre_hook = service lighttpd stop
post_hook = service lighttpd start

[]
#&lt;FQN_domain_name&gt; = /var/www/&lt;sub-folder&gt;</pre>
<p> </p>
<p>Met deze config file zou een toekomstige automatische renewal ook moeten werken.<span class="Apple-converted-space"> </span></p>
<p> </p>
<p>Gebruik <a href="https://crt.sh"><span><strong>https://crt.sh</strong></span></a> om te kijken of er nieuwe certificaten aan je domein zijn gekoppeld.</p>]]></content:encoded>
						                            <category domain="https://www.tradealliance.nl/community/raspberry-pi/">Raspberry PI</category>                        <dc:creator>Abib</dc:creator>
                        <guid isPermaLink="true">https://www.tradealliance.nl/community/raspberry-pi/letsencrypt-certificate-renewal-in-een-dietpi-omgeving-met-lighttpd/</guid>
                    </item>
				                    <item>
                        <title>Project: Raspberry Pi met Nextcloud op een SSD (cookbook)</title>
                        <link>https://www.tradealliance.nl/community/raspberry-pi/project-raspberry-pi-met-nextcloud-op-een-ssd-cookbook/</link>
                        <pubDate>Thu, 07 Oct 2021 22:11:00 +0000</pubDate>
                        <description><![CDATA[Weer even tijd vrij kunnen maken om nu eindelijk eens Nextcloud op een Raspberry Pi server te installeren. De basis is er.
Doel: Raspberry Pi met een Nextcloud server
Plan:

Besturingssy...]]></description>
                        <content:encoded><![CDATA[<p>Weer even tijd vrij kunnen maken om nu eindelijk eens Nextcloud op een Raspberry Pi server te installeren. De basis is er.</p>
<p>Doel: Raspberry Pi met een Nextcloud server</p>
<p>Plan:</p>
<ol>
<li>Besturingssysteem: Diet-Pi</li>
<li>SSD voor opslag met zo mijn mogelijk belasting van de SD kaart</li>
<li>Nextcloud als applicatie op de Pi met<span class="Apple-converted-space"> </span>
<ol>
<li>Lighttpd als http server</li>
<li>LetsEncrypt voor https connecties ; http verbindingen niet toestaan</li>
<li>Data en Nextcloud configuratie bewaren op een wijze die eenvoudig te backuppen is.</li>
<li>Gebruikerstoegang beveiligen met 2FA en/of autorisatie via derden</li>
<li>Participeren in federatie</li>
<li>Veilige en snelle toegang zowel lokaal als van internet</li>
</ol>
</li>
<li>Lokale Back-up naar NAS in lokaal netwerk</li>
<li>Restore programma (kookboek voor snelle herbouw Pi en indien nodige, restauratie van de data die op de NAS is gebackup’d</li>
</ol>
<p>Omgevingsfactoren om rekening mee te houden:</p>
<ul>
<li><span></span>Internet router wordt gebruikt voor DHCP, lokale DNS en port-forwarding</li>
<li><span></span>QNAP NAS kan opgeslagen data veilig versleuteld extern opslaan voor een geografisch verspreidde back-up. Dus de Pi hoeft alleen een backup naar deze NAS af te handelen</li>
<li><span></span>Gebruikersgegevens worden lokaal aangemaakt. Gebruikersbeheer via LDAP, bijvoorbeeld op de QNAP, behoort tot de mogelijkheden</li>
</ul>
<p><strong>Stap 1 - Installeer het basissysteem</strong></p>
<p>Installatie instructies zijn beschreven op <a href="https://dietpi.com/docs/install/"><span>https://dietpi.com/docs/install/</span></a><span class="Apple-converted-space"> </span></p>
<p>Op deze site kun je de juiste image voor je systeem downloaden en met bijvoorbeeld <a href="https://etcher.io/"><span>balenaEtcher</span></a> flashes naar SD kaart of SSD. Voor dit project doen we het laatste. Merk op dat diet-pi standaard SSH ondersteuning biedt met de hostname <span><strong>dietpi</strong></span>. Standaard login is <span><strong>root</strong></span> met wachtwoord <span><strong>dietpi</strong></span> (het standaard wachtwoord kun je wijzigen in <span><strong>dietpi.txt</strong></span>) Tijdens de eerste login <i>moet</i> je dit wachtwoord gelijk wijzigen.</p>
<p>Overweeg om meerdere (logische) schijven te gebruiken voor het scheiden van besturingssysteem en gebruikersdata. Diet-Pi maakt gebruik van de locatie <strong>/mnt/dietpi_userdata/</strong> voor de opslag van gebruikersdata, die zowel naar een directory op dezelfde schijf als naar een andere partitie (op een andere schijf) kan verwijzen. We kiezen hier voor een aparte data partitie en omdat onze SSD lekker groot is zijn we niet te zuinig met de systeempartitie. We gebruiken DiskGenius op een Windows PC om twee ext4 partities aan te maken, een van 100G voor het systeem, en de rest voor de data. Dit doen we nadat Balena Etcher de image van het dietpi systeem erop heeft gezet. We vergroten de systeempartitie en voegen de data partitie inn het vrijblijvende deel toe als nieuwe partitie. Gemak dient de mens bij het beheer van je systeem, een dit staat toe dat je een reinstall kan uitvoeren van het systeem zonder de dataschijf te beschadigen (merk op…. BalenaEtcher zal de datapartitie verwijderen als je een image terugzet).t Het organiseren van een goede back-up van de userdata directory/partitie blijft belangrijk!<span class="Apple-converted-space"> </span></p>
<p><strong>Stap 2 - Gebruik een SSD in plaats van een SD card</strong></p>
<p>Wanneer het starten van SSD niet lukt, volg dan de stappen als beschreven in “Basissysteem Diet-Pi installeren op een SSD”</p>
<p><strong>Stap 3 - Configureer dietpi</strong></p>
<p>Start na de installatie van dietpi het systeem op gebruik een ssh sessie met root als gebruikersnaam en dietpi als wachtwoord om de configuratie af te ronden. Volg de instructies en wijzig het Global Software password en het console password voor dietpi/root. Log vervolgens altijd in met gebruiker dietpi op de console en gebruik su of sudo om root rechten te krijgen wanneer noodzakelijk. Laat het systeem niet aanstaan zolang het standaard wachtwoord niet veranderd is!</p>
<p>Gebruik het commando <strong>dietpi-config</strong> en kies optie 6) security options om de houtnaam te wijzigen van <strong>dietpi</strong> naar een naam van je voorkeur.</p>
<p>Vervolgens is het tijd om <strong>/mnt/dietpi-userdata</strong> te koppelen aan de data partitie. Gebruik het commando <strong>sudo dietpi-drive_manager</strong> of kies voor de zekerheid root access met <strong>su root</strong> om problemen met rechten te voorkomen. Je kunt er nu voor kiezen de partitie te munten. De partitie is gelinkt aan een unieke identity voor de schijf. Laat dit serienummer ook het mountpunt zijn, dus de schijf wordt benaderbaar op <strong>/mnt/</strong></p>
<p>Na het mounten van de schijf heb je de keuze om User Data en Swap File naar deze schijf over te zetten. Kies in ons geval voor alleen userdata, die nu beschikbaar komt op <strong>/mnt//dietpi-userdata</strong>. Alle data blijft beschikbaar via <strong>/mnt/dietpi-userdata</strong> die nu een hardlink naar <strong>/mnt//dietpi-userdata </strong>heeft, zoals eenvoudig te controleren is met een <strong>ls -l /mnt</strong>.</p>
<p>We zijn nu klaar om de gewenste software te installeren.</p>
<p><strong>Stap 4 - Installeer Nextcloud</strong></p>
<p>Voorlopig houden we de dietpi alleen nog beschikbaar op het lokale LAN, dit geeft ons de gelegenheid Nextcloud te installeren met een basisbeveiliging voordat we de boel openzetten naar internet.</p>
<p>Zorg dat je ingelogd bent onze account dietpi en gebruik het <strong>sudo dietpi-software</strong> commando om software te installeren.</p>
<p>In het menu kun je zien dat http al standaard geïnstalleerd is. Dit kun je wijzigen naar een Apache of NGINX webserver. Wij willen httpd.</p>
<p>Kies Browse Software en selecteer Nextcloud (software package 114), en Install. Bevestig de keuze om de installatie te starten.</p>
<p>Zie verder: https://dietpi.com/docs/software/cloud/#nextcloud</p>
<p>Krijg toegang tot de web interface via de volgende URL:<span class="Apple-converted-space"> </span></p>
<ul>
<li><span></span>Via de Pi SBC: <a href="http://localhost/nextcloud/"><span>http://localhost/nextcloud/</span></a>, of (in ons geval)</li>
<li><span></span>Het IP adres / hostname van de DietPi (bijv.: http://192.168.0.100/nextcloud/)</li>
</ul>
<p>Initiële gebruikuikersgegevens zijn:</p>
<ul>
<li><span></span>Username = admin</li>
<li><span></span>Password =</li>
</ul>
<p>Onder Apps/Security, installeer Two Factor Authentication. Creëer ook een nieuwe gebruiker die als admin gebruikt kan worden. Schakel 2-factor authenticatie voor dit account in en gebruik deze voortaan om Nextcloud te beheren. Schakel daarna het account admin uit.</p>
<p>Maak een gebruikersaccount aan die niet in de admin groep zit voor het dagelijkse gebruik. Gebruik ook hiervoor 2-factor authenticatie.</p>
<p>Installeer ook de app <strong>Brute-force IP whitelist.<span class="Apple-converted-space"> </span></strong></p>
<p>De Nextcloud server is nu in de basis beschermd tegen misbruik en we kunnen hem toegankelijk maken via internet om SSL certificaten in te stellen.</p>
<p><strong>Stap 5 - LetsEncrypt SSL certificaat installeren voor ondersteuning https verbindingen</strong></p>
<p>Eerst moeten http (port 80) en https (port 443) doorverwezen worden naar de Pi server. De methode is afhankelijk van je DSL/glasvezel router. Je kunt er ook voor kiezen om IPv6 door te sturen. Zorg dat je de DNS instellingen van je domeinnaam kunt bewerken.</p>
<p>Gebruik het <strong>sudo dietpi-software</strong> commando om <strong>CertBot</strong> te installeren</p>
<p>Na installatie kan de configuratie starten met <strong>sudo dietpi-letsencrypt</strong>. Vul de benodigde gegevens in en selecteer de <strong>redirect on</strong> optie om http verkeer altijd om te leiden naar https. Mochten er problemen zijn met de automatische vernieuwing van het certificaat, dan Kann het commando <strong>certbot renew</strong> uitkomst bieden. Zie <a href="http://www.tradealliance.nl/community/raspberry-pi/letsencrypt-certificate-renewal-in-een-dietpi-omgeving-met-lighttpd/">deze post</a> voor een mogelijke oplossing bij problemen.</p>
<p><strong>Stap 6 - configureer webserver en redirect de hostname voor Nextcloud naar de Nextcloud website.</strong></p>
<p>De Raspberry beschikt over een mooie quadcore CPU, dus we kunnen multithreading aanzetten. Ook willen we de hostname van onze site <i>cloud.domein.tl</i> doorverwijzen naar de Nextcloud website. In de toekomst willen we eventueel een tweede website naar een andere folder structuur verwijzen, bijvoorbeeld city.domein.tl naar Owncloud.<span class="Apple-converted-space"> </span></p>
<p>Pas daartoe de configuratie aan van lighttpd. Ga naar de configuratie directory met <strong>cd /etc/lighttpd/</strong></p>
<p>En bewerk het bestand <strong>lighttpd.conf</strong> met je favoriete teksteditor (vi uiteraard, installeer de teksteditor wanneer deze niet beschikbaar is via <strong>dietpi-software</strong>). Voeg aan dit bestand de volgende text toe, aangepast voor jouw domeinnaam voor nextcloud (merk op, de sectie voor owncloud is een voorbeeld voor het toevoegen van een tweede website):</p>
<pre contenteditable="false">#Set multithreading to 4 processors
server.max-worker = 4
#
# Add document root for cloud.domein.tl to nextcloud
#
$HTTP == "cloud.domein.tl" {
  server.document-root = "/var/www/nextcloud/" 
}
# Add document root for city.domein.tl to owncloud
#
$HTTP == "city.domein.tl" {
  server.document-root = "/var/www/owncloud/" 
}</pre>
<p>De nextcloud omgeving is nu het best te benaderen door gebruik te maken van de internet hostnaam. Wanneer de lokale naam van de server gebruikt wordt loop je de kans op een foutmelding omdat het SSL certificaat van LetsEncrypt niet overeenkomt met de lokale naam.</p>
<p>Nu de basis draait kan de aandacht naar verdere stappen: back-up en NextCloud configuratie. </p>
<p> </p>
<p><strong>Stap 7 - NAS Shares koppelen over NFS</strong></p>
<p>We willen back-ups maken naar de QNAP NAS en maken hierbij gebruik van NFS omdat dit het beste werkt in een Linux omgeving. Denk hierbij aan gebruikersrechten die je via rsync wilt behouden.</p>
<p>We maken een nieuwe share aan met de naam <strong>dietpi_systeem</strong> en een share met de naam <strong>dietpi_data</strong>. Voor beide shares geven we alleen administrators lees en schrijfrechten, toegang tot de Microsoft Networking-host laten we leeg, en toegang tot de NFS-host is met sync no wdelay, secure, en alleen voor de dietpi hostnaan of IP adres waarmee hij op het lokale LAN bekend is.<span class="Apple-converted-space"> </span></p>
<ul>
<li><span></span>Host/IP/Netwerk: <strong>dietpi.home</strong> of het vaste interne IP adres van deze server.</li>
<li><span></span>Squash-optie: <strong>Lezen/schrijven</strong></li>
<li><span></span>De overige opties houden we standaard.</li>
</ul>
<p>Merk op dat hiermee toegang wordt verleend aan een apparaat op het netwerk, en niet aan een gebruiker.</p>
<p>Wanneer de shares aangemaakt zijn gaan we ze koppelen in DietPi. Dit doen we met</p>
<p><strong>sudo DietPi-Drive_Manager</strong></p>
<p>Of we openen de drive manager vanuit DietPi-Launcher</p>
<p>Kies Add network drive, en dan NFS</p>
<p>Type de hostname of het IP adres van de NAS zoals deze op het LAN bekend is, bijv. <strong>qnap.home</strong>, en selecteer &lt;OK&gt;. Kies een naam voor de folder onder <strong>/mnt</strong> waarop de NFS server gekoppeld wordt. Bijvoorbeeld <strong>nfs_qnap</strong> en loop door de stappen om dit proces af te sluiten.</p>
<p>Je ziet nu in de lijst met verbindingen <strong>/mnt/nfs_qnap</strong> verbonden met <strong>qnap.home</strong> <span class="Apple-converted-space"> </span></p>
<p>De onderliggende shares <strong>dietpi_systeem </strong>en<strong> dietpi_data </strong>zijn beschikbaar als directories onder <strong>/mnt/nfs_qnap</strong> en wanneer de deze een keer gebruikt worden komen ze ook te voorschijn in Drive_Manager.</p>
<p>We hebben nu twee locaties om data naar te back-uppen, bijvoorbeeld via rsync.</p>
<p> </p>
<p><strong>Stap 8 - Back-ups maken</strong></p>
<p>We willen een back-up maken van de Nextcloud SQL database, en van de gebruikersdata. We doen dit s’nachts als iedereen slaapt, dus laten even de noodzaak om de service te stoppen buiten beschouwing. We maken gebruik van de dietpi configuratie om ons leven makkelijk te maken.</p>
<p>Voor de gebruikersdata maken we gebruik van rsync om de nextcloud_data directory naar de dietpi_data share te kopiëren. Aangezien we de belangrijke data van de NAS extern archiveren, kunnen we met het rsync commando verwijderde bestanden synchroniseren.</p>
<p>Hiertoe starten we de configuratie met <strong>sudo dietpi-sync</strong>. Als data geven we op:<br />Source: <strong>/mnt/&lt;USB-schijf-ID&gt;/dietpi_userdata/nextcloud_data<span class="Apple-converted-space"> <br /></span></strong>Destination: <strong>/mnt/nfs_qnap/dietpi_data/dietpi_userdata/nextcloud_data</strong></p>
<p>Merk op dat de appdata_&lt;nextcloud-code&gt; enorm veel bestanden bevat en zeker bij de eerste sync veel tijd zal vragen. Daaropvolgend rsyncs zijn incremental, en geven dus alleen wijzigingen door waarmee de opdracht aanzienlijk sneller is afgerond.</p>
<p>Hetzelfde geld voor de <strong>systeem-backup</strong>. De eerste keer dat een back-up gemaakt wordt kan het ‘enige tijd’ in beslag nemen omdat er heel veel kleine bestanden worden overgezet. Daaropvolgende backups op basis van rsync gaan makkelijker.</p>
<p>Start de back-up configuratie met sudo <strong>dietpi-backup</strong><span class="Apple-converted-space"> en geef de locatie voor de </span>backup, in ons voorbeeld <strong>/mnt/nfs_qnap/dietpi_systeem/sysbak/</strong> - we willen de backup in een folder op de NAS share hebben om de systeem back-up te onderscheiden van de backup van de MariaDB.</p>
<p>In filter vervangen we de + voor <strong>/mnt/dietpi_userdata</strong> door een -. We hebben immers al een rsync voor deze folder. Zet Amount op  om het bij 1 back-up te houden. Meerdere versies kan, maar heeft mogelijk tot gevolg dat een back-up langer duurt. Draai twee keer een backup handmatig, en kijk of het werkt en of de tweede backup sneller voltooit. Zet bij succes de Daily Back-up op .</p>
<p>Om een dagelijkse back-up te maken van de Nextcloud MySQL/MariaDB database, maken we tot slot een bestand genaamd<strong> backup-mysql-cronjob </strong>aan in de map <strong>/etc/cron.daily/</strong> met de volgende inhoud (eindig het bestand met een enter om de regel af te sluiten!):</p>
<pre contenteditable="false">#!/bin/bash
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
mysqldump --single-transaction nextcloud &gt; /mnt/nfs_qnap/dietpi_systeem/sqlbak/nextcloud-sqlbak_`date +"%Y%m%d"`.bak
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
</pre>
<p> </p>
<p>Dit script zet achtereenvolgens de maintenance mode van Nextcloud aan (nu wel!), maakt een back-up van de SQL database (opdracht is geldig voor MySQL of Mariadb) naar een bestand op datum, en zet daarna de maintenance mode weer uit. Let erop dat je eens in de zoveel tijd oude bestanden verwijderd. Dit kan eventueel ook met een script, waarover later misschien meer.</p>
<p> </p>
<p><strong>Stap hopelijk nooit: Restore</strong></p>
<p>Bij problemen kun je de volgende site gebruiken om de Nextcloud installatie terug te zetten vanuit de back-up: <a href="https://docs.nextcloud.com/server/23/admin_manual/maintenance/restore.html"><span>https://docs.nextcloud.com/server/23/admin_manual/maintenance/restore.html</span></a></p>
<p>Aangezien de data na te lopen is op de NAS geloven we wel dat deze beschrijving gaat werken en nemen het risico op iets meer handmatige restoratie werkzaamheden voor lief :)</p>
<p> </p>]]></content:encoded>
						                            <category domain="https://www.tradealliance.nl/community/raspberry-pi/">Raspberry PI</category>                        <dc:creator>Abib</dc:creator>
                        <guid isPermaLink="true">https://www.tradealliance.nl/community/raspberry-pi/project-raspberry-pi-met-nextcloud-op-een-ssd-cookbook/</guid>
                    </item>
				                    <item>
                        <title>Inleiding Docker</title>
                        <link>https://www.tradealliance.nl/community/raspberry-pi/inleiding-docker/</link>
                        <pubDate>Mon, 24 May 2021 20:20:59 +0000</pubDate>
                        <description><![CDATA[Docker is een systeem om diverse services op één systeem (het host systeem) aan te bieden zonder dat de configuratie van de ene service de andere ‘bijt’ door conflicterende afhankelijkheden....]]></description>
                        <content:encoded><![CDATA[<p><strong>Docker</strong> is een systeem om diverse services op één systeem (het <strong>host systeem</strong>) aan te bieden zonder dat de configuratie van de ene service de andere ‘bijt’ door conflicterende afhankelijkheden. Dit doet Docker door gebruik te maken van zogenoemde <strong>containers</strong>. Iedere container draait een service, waarbij alle bestanden voor die service in die container bevat zijn. Containers kunnen onderling verkeer sturen middels een virtueel netwerk op de server en via een vorm van NAT en portforwarding met de buitenwereld praten. De service die in een container draait wordt ook wel een <strong>microservice</strong> genoemd.</p>
<p>Het leuke aan een Docker container is dat deze een complete installatie vormt. Een container wordt eenmaal gebouwd en kan dan gedistribueerd worden over meerdere hosts. Voor vele services bestaat er een originele Docker container die via het internet automatisch kan worden gelanceerd. Bij het eerste gebruik wordt de laatste (of een specifieke) versie gedownload, waarna telkens de lokale versie zal worden gebruikt tot er een nieuwere is.</p>
<p>Om Docker te kunnen gebruiken zal deze als service (dokkerd) op de host moeten worden geïnstalleerd. Daarna kunnen containers beheerd worden via diverse Docker commando’s. Dit Proces kan worden vereenvoudigd door gebruik te maken van <strong>Docker-Compose.</strong> Dit is een additionele applicatie die werkt met .yml bestanden. In de bestanden worden de parameters opgenomen die je normaal gesproken op de commandline opgeeft.</p>
<p>Om het beheer van de containers nog makkelijker te maken is Portainer ontwikkeld. Portainer biedt een web interface om Docker containers te beheren, en kan zelf als microservice in een container draaien. Wanneer de basis Docker/docker-compose/portainer draait heb je een goede basis om de Docker omgeving te beheren, containers toe te voegen, weg te halen, te starten en te stoppen. Let er daarbij op dat Docker containers standaard voor het x86 platform gemaakt worden en gebaseerd zijn op Linux. Voor andere processorarchitecturen als ARM voor de Raspberry Pi moet je dus een Docker container kiezen die voor een ARM gebouwd is.</p>
<p><strong>Data persistentie met Docker Volumes</strong></p>
<p>Ah, allemaal leuk en aardig dat alles in een Docker container staat. Maar als je je container herinstalleert of vervangt voor een nieuwe ben je je configuratie en opgeslagen data kwijt. Daar gaat je in een container gehoste website! Maar daar is natuurlijk een oplossing voor gevonden. En daar speelt de Linux/Unix omgeving nu een belangrijke rol.<span class="Apple-converted-space"> </span></p>
<p>Hoe werkt schijfgebruik onder een Unix omgeving? Iedere (partitie op) een harde schijf wordt een in de Unix wereld een <strong>volume</strong> genoemd. En om een volume te gebruiken in je opslag dien je dit te <strong>mount</strong>en in je folder structuur. Deze structuur begint bij de wortel (de <strong>root</strong>, aangegeven met <strong>/</strong> ). Bij een mount verbindt je een volume aan een mapnaam. Iedere container heeft zijn gescheiden en besloten opslagomgeving (dus zijn eigen / ). Docker staat het toe om een map op de host als een volume te koppelen aan de container. De map op de host en al zijn subdirectories komen dan te staan onder het punt dat je opgeeft. OP die manier kun je dus data ‘in de container’ opslaan en gebruiken die zich buiten de container bevindt en blijft bestaan wanneer de container verwijderd wordt. Door slim mappen te koppelen waar configuratie of data wordt opgeslagen kun je deze dus persistent maken. Welke mappen je koppelt is dan afhankelijk van de service.</p>
<p><strong>Belangrijke Variabelen</strong></p>
<p>Bij de configuratie zijn onder andere de volgende variabelen dan ook belangrijk om mee te geven:</p>
<ul>
<li><span></span>Containernaam</li>
<li><span></span>Dockercontainer en versie</li>
<li><span></span>‘Port forwarding’ host:container</li>
<li><span></span>Volumes:mountpunt</li>
</ul>
<p> </p>
<p>Meer informatie is te vinden bij de volgende tutorial handbooks (zeker lezen wanneer je met Docker aan de slag wilt gaan):</p>
<ul>
<li><span><a href="https://blog.ssdnodes.com/blog/what-is-self-hosting/">https://blog.ssdnodes.com/blog/what-is-self-hosting/</a></span> (en we doen dit lekker wel op een lokale server… anders is het gen ‘self’hosting, toch? Dan noemen we dat gewoon hosting!)</li>
<li><a href="https://blog.ssdnodes.com/blog/self-hosting-handbook/">https://blog.ssdnodes.com/blog/self-hosting-handbook/</a></li>
<li><a href="https://blog.ssdnodes.com/blog/self-hosting-handbook/">https://blog.ssdnodes.com/blog/self-hosting-handbook/</a></li>
<li><a href="https://blog.ssdnodes.com/blog/getting-started-docker-vps/">https://blog.ssdnodes.com/blog/getting-started-docker-vps/</a></li>
</ul>]]></content:encoded>
						                            <category domain="https://www.tradealliance.nl/community/raspberry-pi/">Raspberry PI</category>                        <dc:creator>Abib</dc:creator>
                        <guid isPermaLink="true">https://www.tradealliance.nl/community/raspberry-pi/inleiding-docker/</guid>
                    </item>
				                    <item>
                        <title>Iemand ervaring met NextcloudPi?</title>
                        <link>https://www.tradealliance.nl/community/raspberry-pi/iemand-ervaring-met-nextcloudpi/</link>
                        <pubDate>Sun, 16 May 2021 22:28:24 +0000</pubDate>
                        <description><![CDATA[Ik kwam dit project tegen:- een kant en klare Nextcloud oplossing voor bijvoorbeeld een Pi. Iemand hier al eens naar gekeken?]]></description>
                        <content:encoded><![CDATA[<p>Ik kwam dit project tegen: https://ownyourbits.com/nextcloudpi/ - een kant en klare Nextcloud oplossing voor bijvoorbeeld een Pi. Iemand hier al eens naar gekeken?</p>]]></content:encoded>
						                            <category domain="https://www.tradealliance.nl/community/raspberry-pi/">Raspberry PI</category>                        <dc:creator>Abib</dc:creator>
                        <guid isPermaLink="true">https://www.tradealliance.nl/community/raspberry-pi/iemand-ervaring-met-nextcloudpi/</guid>
                    </item>
							        </channel>
        </rss>
		