Python 3.14 compileren en installeren op Debian 13

Debian 13 komt met Python 3.13 als standaardpython, maar omdat ik toch graag python 3.14 ook op het systeem aanwezig heb heb ik besloten om eens te kijken om zelf python te compileren.

Eerst moeten we de python broncode downloaden, deze kunnen we vinden op https://www.python.org/ftp/python/3.14.0/Python-3.14.0.tgz

wget https://www.python.org/ftp/python/3.14.0/Python-3.14.0.tgz
tar xzf Python3.14.0.tgz
cd Python3.14.0

dan kunnen we de build-dependencies installeren:

sudo apt install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl git \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libzstd-dev

vervolgens kunnen we python configureren en compileren. Let wel dat als je naar een systeemmap compileerd je best make altinstall doet in plaats van make install.

./configure --enable-optimizations --with-lto
make -j 8
make altinstall

vervolgens kunnen we python 3.14 gebruiken:

vincent@sonnblick:~$ python3.14 --version
Python 3.14.1
vincent@sonnblick:~$ which python3.14
/usr/local/bin/python3.14

FTP gebruiken in Python

Het is zeer eenvoudig om bestanden te uploaden met FTP en Python:

from ftplib import FTP_TLS
with FTP_TLS("ftp.server.be") as ftp:
    ftp.login("gebruikersnaam","wachtwoord1234")
    ftp.prot_p() # Gebruik een versleuteld datakanaal

    # Upload bestand
    with open("testdata.json","rb") as f:
        ftp.storbinary("STOR testdata.json",f)

    # Bestanden oplijsten
    print(ftp.nlst())

    # Bestand downloaden
    with open("testdata2.json","wb") as f:
        ftp.retrbinary("RETR testdata.json",f.write)

    # Maak een map
    ftp.mkd("/testdir/")
    # Ga in een map
    ftp.cwd("/testdir/")
    print(ftp.nlst())
    
    # Ga terug naar de "hoofdmap"
    ftp.cwd("/")
    print(ftp.nlst())


Hetzner storage box mounten met SSHFS

Ik heb onlangs een Storage box van hetzner gehaald, maar woud deze mounten binnen mijn Debian server. Na heel wat prutsen is het me uiteindelijk gelukt met deze instellingen:

eert moeten we fuse en sshfs installeren:

sudo apt install fuse sshfs

Vervolgens kunnen we onze systemd mount file aanmaken als “/etc/systemd/system/mnt-bigstorage.mount” met de volgende inhoud (pas aan waar nodig

[Unit]
Description=Hetzner Storage Box sshfs mount
Requires=network-online.target
After=network-online.service

[Install]
WantedBy=multi-user.target

[Mount]
What=u1234@u1234.your-storagebox.de:~/
Where=/mnt/bigstorage
Type=sshfs
Options=_netdev,allow_other,x-systemd.automount,IdentityFile=/home/vincent/.ssh/id_ed25519,reconnect,uid=1001,gid=1001,default_permissions,ssh_command=ssh,user=vincent,group=vincent -4 -p 23

Nu kunnen we het mounten met “systemctl start mnt-bigstorage.mount”

Linkrot oplossen in WordPress

Mijn site is bijna 7 jaar oud, maar daardoor is er natuurlijk al heel wat “linkrot” (vooral omdat ik al heel wat manieren heb geprobeerd om mijn site te beheren). Met de “Redirection” Plugin van John Godley kan je heel eenvoudig alle 404 errors loggen en redirects aanmaken.

Ik ga dit de komende weken doen voor deze site, om een poging te doen om linkrot tegen te gaan.

ProFTPD Quota’s

Binnen Skyz gebruik ik ProFTPD zodat enkele gebruikers hun weerstationsgegevens als bestand kunnen uploaden. Het gaat nog altijd om een zeer beperkt aantal gebruikers die via SFTP gegevens doorsturen, maar om toch een beetje limieten te zetten zodat de opslag niet vol geraakt, heb ik onlangs quota’s ingesteld. Aangezien een databestand van een weerstation meestal klein is, is een limiet van 5MB/gebruiker in mijn geval zeker ruim voldoende.

Plaats het volgende in /etc/proftpd/conf.d/quota.conf:

QuotaEngine on
QuotaLog /var/log/proftpd/quota.log
QuotaLimitTable file:/etc/proftpd/ftpquota.limittab
QuotaTallyTable file:/etc/proftpd/ftpquota.tallytab
QuotaOptions ScanOnLogin

vervolgens moeten we de quotafiles maken:

ftpquota --create-table --type=limit
ftpquota --create-table --type=tally

Nu kunnen we een gebruiker een quota geven, gebruik de tool hieronder om het quota commando te genereren:






Een volgende stap is om het SFTP-gebruikersbeheer & quota te automatiseren, zodat elk weerstation automatisch een SFTP gebruiker krijgt, en vervolgens de uitleesfunctie te integreren in skyz zodat een gebruiker via SFTP gegevens kan sturen zonder tussenkomst van mij.

Verbeterde weergave weerstationsgrafieken

De grafieken bij de weerstations voor Temperatuur en Wind zijn lichtjes verbeterd binnen Skyz: De temperatuurgrafiek toont nu ook de gevoelstemperatuur (groene arcering), en de windgrafiek kan nu ook de 10min gemiddelde waarde tonen (de waarde die het station meestuurt). De windstoten worden dan in een rode arcering getoond. Voor de windgrafieken kan een stationseigenaar nog altijd terug gaan naar de oude weergave (enkel windstoten) of ook een weergave met enkel de 10min gemiddelde waarde.

Ook de weerstations in de buurt zijn nu zichtbaar, standaard worden de 2 dichtste getoond, met een knop om alle stations in de buurt (25km, max 25 stations) te tonen, met een grafiek eronder om de temperatuur te vergelijken met de stations in de buurt.