Voor de volgende keer…

Door omstandigheden is het de afgelopen jaren drie keer keer nodig geweest mijn workstation in te richten. De eerste keer ging het enkel om uitwisselen van opslagruimte, zoals eerder beschreven.

De al wat oudere C7SIM-Q met eerste generatie i3 voldeed in vrijwel alle opzichten, alleen het maximum geheugen van 16 GB zat zo nu en dan in de weg. Ik heb het bord kunnen vervangen door een X11SSH-LN4F. Ook met i3, maar wel 6e generatie, en 32 GB RAM met uitbreidingsmogelijkheid tot 64 GB. Bovendien is het nu DDR4 ECC geheugen, waar het eerst DDR3 zonder ECC was.

Toen ik het moederbord verving zat er in een van de bestaande volumes iets scheef (ze het eerdere verhaal); de kortste weg naar een werkend systeem was een nieuwe installatie – met UEFI.

Installeren op UEFI geeft me vaak problemen bij het inrichten van de UEFI-partitie, meestal kom ik niet weg zonder installatie naar ‘removable storage’, maar het werkt uiteindelijk wel. Bij dit moederbord niet. Daarbij komt dat het moederbord, met remote management, wat geavanceerder is. Nadeel is dat boot voorbij ‘BIOS’ een stuk langer duurt; troubleshoot kost heel veel tijd.

Uiteindelijk heb ik Debian volledig automatisch laten installeren, met alle opties op default en minimale ingreep in het partitioneren. Daarmee werkte het eindelijk, maar ik had voor een kleine /var-partitie gekozen, waar vrij veel optionele pakketten in terechtkwamen. Zoveel, dat er voor Apt geen ruimte was om nieuwe programma’s te downloaden. Bovendien stond alles op defaultwaarden, met voeten in Fahrenheit en een Amerikaanse tijdzone. Daarnaast stond alles op een SSD die ik niet voor het systeem in gedachten had.

Snel was het wel! Door tien jaar upgrades over te slaan, merk je bij een upgrade veel meer van de vooruitgang. Niet alleen ruim voldoende geheugen (de 16 GB was niet dagelijks een bottleneck), maar vooral sneller geheugen. De CPU heeft geen veel hogere kloksnelheid, maar kan wel sneller schakelen en heeft geavanceerdere functies waardoor bestanden uitpakken bijvoorbeeld veel sneller gaat. Het systeem draaide nu niet op SSD-cached LVM-volumes, maar op LVM-volumes rechtstreeks op een (ouder model, SATA2) SSD.

Het nieuwe moederbord heeft plaats voor een NVMe-reepje. In tegenstelling tot mijn eerste ingeving, 2e-hands een zo klein en goedkoop mogelijk reepje aanschaffen, heb ik er een nieuwe ingeprikt: in veel gevallen zijn de 2e-hands exemplaren duurder dan een nieuwe. Met een paar euro extra bovenop de laagst geprijsde SSD heb ik me verwend met een ouder model Samsung. Met krap 2 TB aan 3-bits TLC NAND is er voldoende ruimte voor systeempartities, home partities, databasepartities en partities voor caching van datavolumes.

Met minimale moeite is de installatie, met UEFI, in een keer geslaagd. Daar zit je dan, in een mum van tijd met een kale installatie. Want snel dat ging het wel! Een flink deel van het TLC NAND wordt als SLC NAND ingezet, om snel de gigabyte aan DDR-geheugen te vereeuwigen. Waarschijnlijk haal ik het maximum er niet uit: de SSD heeft een 4xPCIe3 interface, terwijl de aansluiting op het moederbord er slechts 2 kanalen biedt.

Aanvullende instellingen / applicaties / packages

Todo’s: er zijn wat instellingen te doen en aanvullende packages te downloaden. Installeer eerst de programma’s, anders kun je ze niet inrichten natuurlijk.

Packages installeren:

apt update
apt upgrade 
apt install openssh-server screen tmux links htop powertop dstat sysstat nicstat curl sshfs # altijd handig
apt install lvm2 thin-provisioning-tools # systeem-onderdelen
apt install firefox dolphin dolphin-nextcloud nextcloud-desktop nextcloud-desktop-cmd   kdeconnect konsole vlc subtitlecomposer # in grafische omgeving (ook NC-cmd!)
apt install growlight # diskmanagement, onderweg tegengekomen

Overige software

Niet alle software is beschikbaar via Apt, of is de AppImage-versie net wat nieuwer dan de versie in Apt.

  • DigiKam; even kijken hoever Apt achter loopt –> Apt heeft v7, laatste appimage is v8
  • Chrysalis; nog niet in Apt

Firefox

  • Firefox sync instellen
  • Sync-server aanpassen in about:config ; zoeken naar token en vind identity.sync.tokenserver.uri, zet die op https://ffs.osba.nl/ffsync/token/1.0/sync/1.5
  • Eventueel synchronisatie van autoscroll uitzetten, omdat de defaultwaarde op verschillende platforms niet gelijk is, services.sync.prefs.sync.general.autoScroll op false
  • Inloggen via de sync-instellingen in Firefox. De eerste keer gebeurt er waarschijnlijk niets (alleen tabs kunnen dan naar een ander apparaat gestuurd worden, maar synchronisatie vindt niet plaats). Tot nu toe kunnen oplossen door alle synchronisatievinkjes uit te zetten, Firefox te restarten, uitloggen uit het Firefox-account, Firefox restarten, en dan weer inloggen. De tweede keer is het niet nodig een bevestigingscode door te geven, maar start de synchronisatie wel. Foutlogs zijn te vinden via about:sync-log, er is ook een sync-extension die daarna info weergeeft op about:sync

Nextcloud sync instellen

  • app-password instellen via personal settings –> security –> nieuwe entry maken onderaan de pagina ; de ingevoerde omschrijving zie je later pas, je hebt nu je eigen (getoonde) gebruikersnaam nodig en het random wachtwoord. Houdt ’t wachtwoord even in beeld, niet op ‘Done’ klikken
  • Nextcloud desktop openen en verbinden met https://online.osba.nl/nextcloud
  • Kopieer de link (hij opent vanzelf, maar het kan zijn dat de timeout te snel verstrijkt)
  • Open de link in een incognito-venster (om te voorkomen dat er automatisch ingelogd wordt met de reguliere gebruikersnaam)
  • Klik op ‘use an app token’, oid (de onderste optie)
  • Gebruik de eerder aangemaakte credentials
  • Als het niet werkte, nog een keer proberen. Als het wel werkte volgt er een melding, “Account connected”

Met de sync-client op Android gaat het nog makkelijker: in plaats van handmatig de gegevens invullen en overnemen: maak het app password aan, klik op ‘Show QR code for mobile apps’ en scan de code met je telefoon.

Dolphin

dolphin-nextcloud geeft een contextmenu waarin Nextcloud-bewerkingen vrijgegeven worden.

Met de Nextcloud Desktop client wordt synchronisatie geregeld, maar geen integratie. Installeer dolphin-nextcloud om vanuit Dolphin bestanden via Nextcloud te delen.

Voeg onder het Remote-kopje in de “Places” zijbalk een link naar Nextcloud toe via WebDAV en SSHFS. SSHFS geeft snellere toegang en betere integratie aan deze kant van de verbinding, maar wijzigingen worden niet door Nextcloud opgemerkt. WebDAV wordt aan deze kant echt als remote gezien, wat soms voor caching of vertraging zorgt, maar loopt via de Nextcloud-logica. Wijzigingen, verwijderingen en toevoegingen zijn meteen in Nextcloud beschikbaar.

De WebDAV link geeft Nextcloud via de web-interface, bij het kopje met settings linksonderin bij bestanden: https://online.osba.nl/nextcloud/remote.php/dav/files/wbk

Pas de link aan naar webdavs://online.osba.nl/nextcloud/remote.php/dav/files/wbk om hem in Dolphin te gebruiken. Meteen plakken in de adresbalk, en dan de locatie opslaan werkt het eenvoudigst; het werkt ook via Knetattach (de knop rechtsbovenin het scherm als je in Dolphin op Network klikt, onder remote).

Knetattach foutmelding, met op de achtergrond de (hoogst waarchijnlijk correcte) instellingen

Op welke manier dan ook: soms werkt het in ene keer, soms werkt het totaal niet. Deze keer is het een “totaal niet”-geval. Troubleshoot gaat erg moeizaam; Dolphin noch Knetattach geven enige feedback naast “The file or folder … does not exist” (Dolphin) of “Unable to connect to server. Please check your settings and try again.”
Een enkele keer lijkt het proces een stap verder te komen: dan volgt er een vraag of ik zeker weet dat ik wil inloggen op Nextcloud, om vervolgens alsnog te vertellen dat de file or folder does not exist.

De “bookmark” in Dolphin’s places-balk heb ik uit de settings van de oude installatie gehaald (~/.local/share/user-places.xbel)

De locatie in Dolphin, met op de achtergrond de ‘does not exist’-melding

Mogelijk zit de KWallet-entry voor Nextcloud-Desktop in de weg. Die client logt in met een app-password, maar in KWallet lijkt het een reguliere user/pass combinatie. Misschien geeft KWallet onder water het verkeerde wachtwoord (of het goede wachtwoord, maar via het verkeerde mechanisme) aan Dolphin en Knetattach door, zonder daar feedback over te geven. Na sluiten van zowel de wallet als de NC-client lukt het echter nog steeds niet. Wordt vervolgd.

GUI / gebruikersinstellingen

Fonts ophalen

  • De fonts Linux Biolinum en Linux Libertine zijn na 2012 gefork’d; releases van de vork zijn te vinden onder Libertinus op Github.
  • Pak het release file uit en (in het geval van KDE) gooi de bestanden in de fontmanager om ze te installeren.

Mountpoints inrichten

Voorheen waren datapartities zoals voor foto’s en video’s rechtstreeks in m’n home-directory gemount. Ik mount ze nu in een gebruiker-agnostische directory, en bind-mount ze lokaal.

De eerder o-zo-mooi ingerichte LVM is goed over te dragen, ware het niet dat:

  • ik een van de fysieke volumes een beetje verziekt heb
  • de tools om LVM te beheren na x jaar anders verpakt zijn en sommige binaries lijken te ontbreken; vgchange -ay data had LVM klachten:
root@fractal:~# vgchange -ay data
  /usr/sbin/cache_check: execvp failed: No such file or directory
  WARNING: Check is skipped, please install recommended missing binary /usr/sbin/cache_check!
  /usr/sbin/thin_check: execvp failed: No such file or directory
  WARNING: Check is skipped, please install recommended missing binary /usr/sbin/thin_check!
  14 logical volume(s) in volume group "data" now active

Het ontbrekende pakket blijkt thin-provisioning-tools

(Eenmalige todo’s: boeken en bieb naar data, geenmuziek naar home)

Keyboard

Ctrl+Alt+Backspace om X de nek om te draaien: advanced keyboard tab in KDE settings:

Alternatief: Alt+SysRq+k

Systeeminstellingen

Netwerk

Twee NIC’s samen laten werken als bond0. Met het vernietigen van de root-directory is de configuratie in /etc/network/interfaces helaas verloren gegaan. Er staat nog een todo op het lijstje, “/etc in git onderbrengen”, maar dat helpt nu niet.

De nieuwerwetse huidige installatie heeft autoconfig voor netwerk, waarschijnlijk via networkmanager. nmcli kan bonding interfaces aanmaken. De man-pages van nmcli zijn erg uitgebreid maar daar kan ik niet eenvoudig de bond-syntax terugvinden. Er is onder andere documentatie te vinden bij Red Hat en bij Gnome; die bij Red Hat heeft meer diepgang, die bij Gnome geeft passende voorbeelden.

# nmcli connection add type bond con-name bond0 mode 6
Connection 'bond0' (cf29cf16-692b-4925-95fd-0102aa758cc0) successfully added.
# nmcli device status
DEVICE  TYPE      STATE         CONNECTION         
eno2    ethernet  connected     Wired connection 1 
eno1    ethernet  disconnected  --                 
eno3    ethernet  unavailable   --                 
eno4    ethernet  unavailable   --                 
lo      loopback  unmanaged     --     
# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname eno1 master bond0
Connection 'bond0-port1' (1a8cdccb-1363-40f5-b9aa-072936ca1544) successfully added.
# nmcli device status 
DEVICE   TYPE      STATE        CONNECTION         
eno2     ethernet  connected    Wired connection 1 
nm-bond  bond      connected    bond0              
eno1     ethernet  connected    bond0-port1        
eno3     ethernet  unavailable  --                 
eno4     ethernet  unavailable  --                 
lo       loopback  unmanaged    --                 

Aanmaken van een bonded interface ondersteund de networkmanager-GUI (nog?) niet, maar onderhoud/beheer ervan wel. Nadat eno1 aan bond0 gehangen was hierboven, maakte nm de verbinding actief. In de GUI heb ik ‘Wired connection 1’ verwijderd om geen verrassingen te krijgen bij het koppelen van eno2 aan bond0:

# nmcli device status 
DEVICE   TYPE      STATE         CONNECTION  
nm-bond  bond      connected     bond0       
eno1     ethernet  connected     bond0-port1 
eno2     ethernet  disconnected  --          
eno3     ethernet  unavailable   --          
eno4     ethernet  unavailable   --          
lo       loopback  unmanaged     --          
# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname eno2 master bond0
Warning: There is another connection with the name 'bond0-port1'. Reference the connection by its uuid '67af71f7-f7b5-4f50-a02e-0fcfa4910960'
Connection 'bond0-port1' (67af71f7-f7b5-4f50-a02e-0fcfa4910960) successfully added.
# nmcli device status 
DEVICE   TYPE      STATE        CONNECTION  
nm-bond  bond      connected    bond0       
eno1     ethernet  connected    bond0-port1 
eno2     ethernet  connected    bond0-port1 
eno3     ethernet  unavailable  --          
eno4     ethernet  unavailable  --          
lo       loopback  unmanaged    --       

Oepsie… opdracht hergebruikt, maar slechts deels aangepast (Warning: there is another connection with the name 'bond0-port1'). Bij de eerste poging om de poort uit bond0 te trekken, heb ik de volledige bond verwijderd. Na opnieuw toevoegen is de status nu:

# nmcli device status
DEVICE   TYPE      STATE        CONNECTION  
nm-bond  bond      connected    bond0       
eno1     ethernet  connected    bond0-port1 
eno2     ethernet  connected    bond0-port2 
eno3     ethernet  unavailable  --          
eno4     ethernet  unavailable  --          
lo       loopback  unmanaged    --          

Losse todo’s:

  • SSH sleutels kopieren – het wordt afgeraden om dezelfde sleutels op meerdere systemen te gebruiken, maar hier wordt het oude systeem uit de vaart gehaald. Na overzetten van het private/public keypair werken de SSH-verbindingen meteen weer.
  • Toegang tot seriele interfaces, zoals /dev/ttyACM0 voor Arduino, ESP of toetsenbord
  • Blogpost nalopen op slordigheden en bijwerken met de laatste inzichten; eerst maar uit concept halen om er makkelijk bij te kunnen. Bij deze!

Print this entry

Yunohost SSH toegang

Normaliter hebben Yunohost-gebruikers geen SSH-toegang. Zodoende is het lastig om de bestanden via SSHFS te benaderen. Om de bestanden via SSHFS te benaderen, zijn er twee dingen aan te passen.

  1. SSH toegang beschikbaar maken voor de gebruiker
  2. Toegang op bestandsniveau regelen voor die gebruiker via ACL

1 – SSH toegang

Via het Yunohost forum werd ik gewezen op de SSH-toegang die vanaf (ongeveer) versie 4.2 van Yunohost uitgedeeld kan worden. Ik gebruik voor SSH toegang een afzonderlijke gebruiker, die naast SSH-toegang, geen applicaties toegewezen krijgt.

Gebruiker voor SSH toegang

Via ‘Manage groups and permissions’ kun je SSH-toegang toewijzen:

Maak een nieuwe groep (hier sshfsnc), en geef die SSH-permissie
Voeg de gebruiker die je net gemaakt hebt toe aan de SSH-groep

2 – ACL’s

Via access control lists kun je extra rechten toekennen aan bestanden, naast de reguliere eigenaar/groep/iedereen rechten op bestandsniveau.

De toegangsrechten van Yunohost zijn erg nauw gedefinieerd. Via het bestandssysteem kun je als gebruiker niet bij je eigen bestanden die in Nextcloud staan, en Nexctloud kan niet bij je bestanden in je home-directory. De admin-gebruiker kan ook maar beperkt bij verschillende bestanden komen, alleen root kan overal bij.

Om via de gebruiker met SSH toegang de bestanden uit Nextcloud te benaderen, moeten die vrijgegeven worden via ACL. Hoe dat gaat, heb ik in dezelfde forumthread gepost:

# cd /home/yunohost.app/nexctloud/data/
# setfacl -Rm u:boudewijn_ssh:rx boudewijn/
# setfacl -dRm u:boudewijn_ssh:rx boudewijn/
# setfacl -m u:boudewijn_ssh:rx .
# setfacl -dm u:boudewijn_ssh:rx .

Er is telkens een regel voor de nieuwe default (met -d), en dezelfde voor de rechten op de bestaande bestanden. Daarnaast telkens een recursieve regel (-R) voor de data-directory van gebruiker boudewijn, en een niet-recursieve op de huidige directory (/home/yunohost.app/nextcloud/data/). Setfacl heeft -m nodig, daarmee geef je aan dat het een wijziging/modificatie is.

Synchronisatie

Zolang je via SSHFS enkel bestanden leest, blijft alles werken zoals vanouds. Als je ook bestanden wegschrijft via SSHFS, loopt die actie buiten Nextcloud om. Het bestand wordt daardoor niet in Nextcloud geregistreerd, en is daarvandaan niet zichtbaar. Er is een OCC-opdracht om de opslagruimte te scannen op wijzigingen en de database bij te werken.

WebDAV

Om het toevoegen van bestanden, en alle wijzigingen aan bestanden, meteen in Nextcloud beschikbaar te maken, moet de verbinding via WebDAV gemaakt worden. Het werkt minder snel, maar wordt op meer platformen ondersteund dan SSHFS.

Print this entry

Nextcloud fout bij upgrade: 1118 row size too large

Geen idee meer bij welke upgrade het speelde (NC18 naar NC20?), maar:

An exception occurred while executing 'ALTER TABLE oc_social_3_stream ADD nid BIGINT UNSIGNED DEFAULT NULL, ADD chunk SMALLINT UNSIGNED DEFAULT 1 NOT NULL': SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs 

opgelost met:

su mysql 
mysql 
show databases; 
use nextcloud;
show columns from  oc_social_3_stream;


exit ;


cd /var/www/nextcloud/
 chmod +x occ
sudo -u nextcloud ./occ maintenance:repair

Print this entry

Yunohost onderhoud

Help, de Yunohost is niet bereikbaar!

Troubleshoot

Wat doet het nog? Een webserver bestaat uit een toren van losse systemen. Als een van de systemen het niet doet, stort de rest van de toren in. Vanaf de fundamenten naar boven zijn de bouwstenen die je het makkelijkste kunt controleren:

  1. Staat ‘ie aan?
    • Kun je zelf alleen controleren als hij bij je thuis staat
  2. Geeft het appparaat levenstekenen?
    • Kun je zelf alleen controleren als hij thuis staat
    • Hangt er ook vanaf wat voor appaatje je hebt
    • Orange Pi Zero: met seriele poort, verhaal voor een andere keer
    • Oude laptop: iets typen of muis bewegen
  3. Reageert de server op pings? In het geval van osba.nl:
    • ping 80.127.182.180
    • ping 2001:985:b79a:1:6d21:81ff:a52e:6f3
    • ping -4 osba.nl
    • ping -6 osba.nl
  4. Kun je met SSH in de server komen?
    • ssh admin@domeinnaam.nl
  5. Werkt de admin-pagina nog?
    • ga naar het IP van je server; je kunt het vinden via ping. Bijvoorbeeld:
    • https://[2001:985:b79a:1:6d21:81ff:a52e:6f3]
    • https://80.127.182.180
    • https://osba.nl/yunohost/admin
    • Als het werkt via het IP-adres, krijg je een beveiligingswaarschuwing vanwege het certificaat (SSL of TSL). Als je browser het toestaat, kun je verder gaan met de onveilige instelling. Als je het certificaat bekijkt en je weet dat het bij je server hoort kun je ook inloggen.
  6. Kun je inloggen op de gebruikerspagina?
    • Ga naar het reguliere login-adres voor Yunohost,
    • https://osba.nl/yunohost/sso/

Wat nu?

Het hangt er vanaf hoe ver je gekomen bent. Per nummertje:

  1. Het makkelijkste is natuurlijk als de server gewoon thuis staat en je de stroom kunt controleren. Als het apparaatje aan een batterij hangt, kan het maar zo zijn dat er een paar dagen eerder een stekker uitgetrokken is, en dat je het nu pas merkt.
  2. Kijken of er iets gebeurt gaat eigenlijk hetzelfde als met een laptop, mobiele telefoon of een computer. Vastlopen kan gebeuren als de voeding van de Orange Pi net niet sterk genoeg is. Hij gaat dan wel aan, maar eigenlijk doet ‘ie het voor de helft niet.
  3. Ping kun je voor het hele internet (en alle apparaten thuis) gebruiken om te kijken of ze bereikbaar zijn op het netwerk. Het commando stuurt een berichtje voor het apparaat dat je noemt, en als dat apparaat het ontvangt, stuurt het een antwoord terug. Zo ziet het er bijvoorbeeld uit:

    ping -4 osba.nl
    PING osba.nl (80.127.182.180) 56(84) bytes of data.
    64 bytes from online.osba.nl (80.127.182.180): icmp_seq=1 ttl=64 time=0.457 ms
    64 bytes from online.osba.nl (80.127.182.180): icmp_seq=2 ttl=64 time=0.092 ms

    Je kan een ping sturen naar een IP-adres of naar een domeinnaam. In het geval van IP-adres, kan het een van versie 4 (vier blokjes cijfers met een punt ertussen) of van versie 6 (heel veel cijfers en letters met dubbele punten ertussen) zijn. Daarom de verschillende voorbeelden.
    Voor computers zijn de IP-adressen het makkelijkste. Voor domeinnamen is een extra stap via DNS nodig. Elke extra stap is een stap die kan mislukken.
    Als je server reageert op ‘ping domeinnaam’, dan werkt het ook met minstens een van de twee IP-versies. Andersom hoeft niet. Als het wel werkt met het IP-adres, maar niet met de domeinnaam, dan is er een probleem met DNS. Voor alle Yunohosts die ik zelf ingericht heb, gaat DNS via your-webhost.nl (met een gebruikersnaam met qb….) of via dns.he.net (met de gebruikersnaam die daar bij hoort)
  4. Als er een reactie op de ping terugkomt, kun je proberen om met SSH in te loggen. Dat gaat met:
    ssh admin@domeinnaam
    Je logt in met het wachtwoord dat je ook voor de admin-pagina van Yunohost gebruikt (de witte pagina, met de instellingen).
    1. Misschien is het voldoende om het systeem opnieuw op te starten. Gebruiker ‘admin’ mag dat niet, maar gebruiker ‘root’ mag dat wel. Type:
      sudo reboot
      en dan enter. De verbinding wordt verbroken. Als dat genoeg was, dan is even later je website weer terug.
    2. Als dat niet genoeg was, dan wordt het wat lastiger. Misschien staat er iets in het logboek waarmee je op internet een oorzaak kunt vinden. Type:
      sudo tail -f /var/log/messages
      … en dan enter. De laatste regels van het logboek komen nu tevoorschijn. Als de server nog ergens mee bezig is, dan komt er een regeltje bij.
      Je kan stoppen met kijken door ctrl-c in te drukken.
      Verhaal voor een andere keer.
  5. Soms doet de normale loginpagina het niet, maar de adminpagina het nog wel. Je kan vanuit de adminpagina naar de diagnosepagina gaan. Dat is ook nog wel een beetje lastig, maar makkelijker te lezen dan de berichten rechtstreeks in het logboek. Ik ga er nu niet verder op in.
  6. Als we zover gekomen zijn zonder problemen, dan zou eigenlijk de website gewoon moeten werken. Probeer in te loggen op de zwarte pagina met de gekleurde blokjes. Als je standaaard naar een blog of andere pagina gaat, dan moet je achter het adres ‘/yunohost’ typen, bijvoorbeeld
    https://osba.nl/yunohost
    Je kan dan de verschillende apps proberen, om te zien of ze het allemaal niet doen, of dat er bijvoorbeeld een probleem is met alleen WordPress of alleen met Nextcloud.

Dat was een lang verhaal. Vaak als er een niet te groot probleem is, kun je met deze stappen de oorzaak vinden en verhelpen.

Software bijhouden

Als alles het doet dan is dat fijn. Maar het is wel belangrijk om bij te blijven met beveiligingsupdates. Sommige beveiligingsupdates worden door Yunohost zelf gedaan. Om volledig bij te werken, en ook nieuwe functionaliteit beschikbaar te maken, kun je het systeem bijwerken via de admin-pagina of via SSH.

update via admin-pagina

Een van de menupunten op de admin-pagina is systeem-update. Als je die aanklikt, wordt infomatie over alle updates opgehaald en weergegeven.

Daarna kun je kiezen of je het systeem wil bijwerken of de apps. In het laatste geval kun je ze ook een-voor-een bijwerken. Soms is dat nodig omdat de bovenste een probleem heeft bij de update, en de rest niet in een rijtje afgewerkt wordt. Soms wil je juist weer snel alleen het onderste programma bijwerken.

Bovenin de pagina wordt weergegeven bij welke stap van de upgrade Yunohost is: downloaden van de nieuwe versie, backup maken, installeren, etc. Daar wordt ook een berichtje gegeven als de upgrade klaar is, of als er juist iets fout gaat.

Update via SSH

Inloggen met SSH kan met een SSH-programma op je computer of op je telefoon, of via “Terminalscherm in je browser / shell in a box”. Je logt in met admin en het wachtwoord van admin (er komen bij het wachtwoord geen sterretjes of balletjes in beeld, dus gewoon typen en enter drukken).

Daarna kun je met drie commando’s het systeem bijwerken, telkens met enter achteraan de regel:

sudo yunohost tools update
sudo yunohost tools upgrade --system
sudo yunohost tools upgrade --apps

Laatst werkte Nextcloud niet meer na een upgrade. Bij het openen van Nextcloud werd een melding over onderhoudsmodus / maintenance mode getoond.

Het bleek dat Nextcloud na de update een nieuwe versie van een programmeertaal nodig had (PHP 7.3 ipv PHP 7.0). De upgrade dat wel de nieuwe versie van PHP geinstalleerd, maar gebruikte standaard nog versie 7.0. Daardoor lukte het me niet om de onderhoudsmodus te deactiveren:

sudo -u nextcloud php /var/www/nextcloud/occ maintenance:mode --off

gaf een foutmelding. Ik heb PHP handmatig laten wijzen naar versie 7.3 met sudo update-alternatives –set php /usr/bin/php7.3 , maar achteraf gezien had ik misschien moeten proberen de aanroep van PHP aan te passen ( dus sudo -u nextcloud /usr/bin/php7.3 /var/www/nextcloud/occ maintenance:mode –off ), dat merk ik vast later weer. Nextcloud doet het in ieder geval weer, en de rest van het systeem ook.

Print this entry

Fediverse met Nextcloud/nginX op Yunohost part II

Het resultaat van deel I was dat ik gebruikers op dezelfde server kon vinden: iedereen die een account op online.osba.nl heeft. Leuk, maar dat was niet wat ik voor ogen had. De afgelopen weken heb ik zo nu en dan een blik op het probleem geworpen, in de hoop dat me een makkelijke oplossing onder ogen zou komen. Helaas.

Vanavond heb ik er meer tijd dan ik had gehoopt besteed, maar ik heb wel een deel van de (weg naar de) oplossing gevonden. De test op webginger.net geeft nu een nuttig resultaat terug:

https://webfinger.net/lookup/?resource=wbk%40online.osba.nl

geeft:

Request log

18:20:13 Looking up WebFinger data for acct:wbk@online.osba.nl
18:20:13 GET https://online.osba.nl/.well-known/webfinger?resource=acct%3Awbk%40online.osba.nl

JSON Resource Descriptor (JRD)

{
  "subject": "acct:wbk@online.osba.nl",
  "links": [
    {
      "rel": "self",
      "type": "application/activity+json",
      "href": "http://online.osba.nl/nextcloud/nextcloud/index.php/apps/social/@wbk"
    },
    {
      "rel": "http://ostatus.org/schema/1.0/subscribe"
    }
  ]
}

Dat was telkens 404, niets gevonden.

Meer details zijn (in het Engels) te vinden Yunohost forum, maar het belangrijkste deel is de benodigde configuratie en waar je het moet laten. Het configuratiebestand waar het om gaat is de nginx-configuratie op

/etc/nginx/conf.d/online.osba.nl.conf

Er zijn twee servers gedefinieerd, de onversleutelde op poort 80 en de versleutelde verbinding op poort 443. De eerste had na het installeren via Yunohost / Nextcloud alle redirects cadeau gekregen, die op poort 443 niets. Ik vond het opvallend, maar bij gebrek aan kennis van nginx deed het ook geen alarmbellen rinkelen. Het blijkt dat de verwijzingen op beid e servers gedefinieerd moeten staan, anders werkt het niet via TLS. Bovendien moet het een combinatie van doorverwijzing en herschrijven van de URL zijn:

Het gecombineerde stanza ziet er zo uit:

location = /.well-known/webfinger {
  rewrite ^ https://online.osba.nl/nextcloud/public.php?service=webfinger&$1 last; # $1 will use the first parameter (?resource=…)
}

Stop het stukje tussen de ‘include …’ en ‘log ..’ regels.

Ookal werkt de test op webfinger.net nu, het lukt nog niet om op de ene Nextcloud een gebruiker op een andere Nextcloud-server te vinden.

Wordt vervolgd…

Print this entry

Foto’s bewaren en delen met Nextcloud

Nextcloud is een systeem om allerlei dingen die op je computer of op je telefoon staan te bewaren of te delen. Bijvoorbeeld foto’s, muziek, plaatjes, savegames of backups.

Een blauwe, vierkante knop met de tekst 'Fotos en andere bestanden delen (Nextcloud)'
Zoek Nextcloud uit en klik erop

Je kunt gewoon inloggen op je Nextcloud door op het vierkantje de drukken en te bladeren in de bestanden die al naar Nextcloud gestuurd zijn, of je kan op je computer/telefoon instellen dat nieuwe foto’s automatisch geupload worden: backup (kopie voor de zekerheid) en synchronisatie (zodat de foto van je telefoon automatisch op je computer komt te staan).

Foto upload

Het hoofdscherm van Nextcloud ziet er ongeveer zo uit:

Een lijst met menu-items, direcories en foto's
Nextcloud startscherm

Het ziet er een beetje uit als de lijst met bestanden op je computer, maar dan op je webserver. Als je voor het eerst kijkt, zie je dat er tijdens de installatie van het systeem al wat voorbeeldbestanden neergezet zijn. Die kun je gerust weggooien.

Een nieuwe foto kun je met het plusje naast het huisje toevoegen. Als je het plusje aanwijst, komt er een menu’tje tevoorschijn waar je kun kiezen een nieuw bestand te uploaden (‘Upload file’/’Bestand uploaden’):

Het kleine menu'tje waar je kun kiezen een bestand te upoaden
Bovenaan de pagina, naast ‘All files’ / ‘Alle bestanden’

De foto is na een paar ogenblikken (afhankelijk van hoe groot de foto is en hoe snel de verbinding) te zien in de lijst met bestanden.

Foto delen

Drie balletjes en twee lijntjes: delen
poena@osba.nl als emailadres, of klik ‘Share link’

Onder elke foto (en elk ander bestand) staat een ikoontje, drie balletjes met streepjes ertussen. Dat is om aan te geven dat je iets kan delen. Als je het ikoontje aanklikt, krijg je een nieuw menu aan de rechterkant. Je kan een emailadres of de naam van iemand anders invullen om rechtstreeks te sturen, of je kan op ‘share link’ klikken om een hyperlink klaar te zetten. Die link moet je daarna zelf aan iemand sturen: met een email, overschrijven of een ander berichtje.

Klaar!

Je foto is nu bereikbaar voor iedereen aan wie je de link stuurt, of enkel voor degene aan wie je de email stuurde. Wat die mensen vervolgens doen weet je maar nooit, als je eenmaal iets gedeeld hebt op internet, is het voor altijd gedeeld.

Behalve de foto zelf delen, kun je ook iets over de foto zeggen, of andere mensen er iets over laten zeggen. Iedereen met een account op je Yunohost kan dat in ieder geval, maar je kan ook vrienden op hun eigen Nextcloud rechtstreeks benaderen. Het is me nog niet goed gelukt dat te laten werken, wordt vervolgd.

Print this entry