Tuesday, 27 January 2026
Tuesday, 20 January 2026
PI43 : OMV : Docker
Intro
A key reason for choosing OMV for my NAS is that it also provides an environment for docker containers. Although docker is widely used I know little about it and it seems likely that I can benefit from using it on my new server.
I searched for suitable application which have been packaged for docker which I might find useful. My initial list included Jellyfin (a media player), pihole (an ad blocker) and opencloud/nextcloud (dropbox replacement).
Installation
There are lots of docker install tutorials. I needed to pick one which installs docker using OMV7. I found a good youtube video from db tech
The first step is to install omv-extras, which gives you a list of plugins that can be added into OMV. In addition to docker, I was directed to add OMV scripts and docker-compose "extras".
Next I setup three OMV shared folders for compose, backup and data. I had a problem setting up the compose share, with OMV repeatedly complaining it couldn't do it. After some time I discovered that my drive is formatted with NTFS as it was formatted for Windows storage. I moved the docker compose share to the linux OS SD card and the system was happy again.With the pre-requisites complete I could click on the "install docker" button to create my system. Finally I setup a user, dockuser, which should be able to to manage my system.
Overall this was a very straightforward install using OMV, with very little technical thought involved.
Sample Application
The tutorial I followed used a simple web app docuwiki as an example to get started. This was very helpful though not useful. It shows that you start by cut-and-pasting the container definition into docker compose, defining disk storage, allocating ports and setting userids. You then "spin up" the container; software is downloaded, configured and the app starts. It is wonderfully straightforward and the app is independent of the local system and any complications or dependencies related to it. The one constraint is that containers are architecture dependant. Many / most images seem to have an arm64 version which is what my RPI requires.
Bittorrent
For a proper test I setup the Transmission bittorrent server. I can use this to replace an old version I have on an old server.
Step 1 is to create a container definition and copy the docker compose definition from the linuxserver site.
I created a Samba shared folder for transmission files in OMV.
I then amended the docker compose definition for my own UID, GID, Timezone and my storage volume. I didn't need to change any of the port numbers.
I then started the transmission container. As usual the software is downloaded, configured and then initialised.
As the downloads are saved to a Samba I can access and copy them to any device.
In fact I dont need to use the web interface as I have a windows Transmission client which I use for managing torrents.
On the new transmission system I now have lots of space for downloads. It turns out that my downloads can be 5-10 times faster than the old system, upto 10MBps.
Pi-hole
Pi-hole is a popular ad-blocker. I have tried it before but it didn't seem to work well for me. Setting it up in a docker container enables me to start and stop it at will. As usual I pasted a default configuration into docker-compose. In this case I had to make a small change to set the HTTP port to 8081.
The container comes up cleanly and I can signon to the web interface to see what is happening.
Initially pi-hole doesn't do any work. I tested it by pointing the iPad at PI43 for its DNS and the iPad continued to work ok. I then changed the router so it pointed to PI43 for its DNS. Now all devices use pi-hole.
It works well, it doesn't interfere with normal browser operation and shows blank spaces instead of adverts in web pages. If I want I can take down pihole and devices will use google DNS (8.8.8.8) instead.
Jellyfin
Installing the Jellyfin client on a PC is easy. For some reason Samsung make it slightly complicated to install the app on the TV but I googled a solution.
Jellyfin provides a very professional interface, as good as Prime or Netflix. It finds a thumbnail image for shows and is pretty good at discovering descriptions about individual episodes to help you choose what to watch.
I can add shows easily by copying them across to the Jellyfin shared folder.
I will call this my killer app, it makes docker worthwhile.
Thursday, 15 January 2026
PI43 : Open Media Vault : NAS : Backups
Intro
I have had a new Raspberry Pi 4 sitting in a drawer and an urge to look at Linux again so I thought it would be a good time to set it up. The particularly good feature of RPI4 is that it doesnt need a fan. I have a smart electric blue metal case for it which can dissipate heat and keep it safe. As usual I will run it headless. I could probably have a reasonable experience using a desktop but I have an RPI5 waiting which will be better suited.
I want PI43 to do something useful for me and I aim to leave it as a server switched on and unattended. I already have a web server, application server and database server.
A few ideas come up repeatedly, a media server (jellyfin), a backup server (rsync), NAS (openmediavault), cloud server (OpenCloud) and containerised applications (docker).
As OpenMediaVault will potentially work well as a backup or cloud server and allows me to use docker I will set it up and see whether it meets my needs. It will need external USB HDD or SSD. If I had an M.2 hat for PI43 I could have faster SSD storage, but I dont think I need it. I will use an existing Samsung 1TB HDD. I was concerned this wouldn't be appropriate for a NAS, but confirmed that it wont be spinning continually so it should be fine.
OMV Install
pidiylab.com and pimylifeup have simple detailed tutorials on setting up OMV. I mainly followed the pimylifeup tutorial as it mentioned that I need to use RPI OS Bookworm version (rather than Trixie, the latest version) with the current release OMV7 in November 2025. (OMV8 supporting Trixie, the latest version came out in December).
Using RaspberryPi Imager, I created a new Bookworm SD card build and set PI43 up with an ethernet static address.
OMV is installed using a couple of scripts. It has a very simple web interface allowing me to configure disks, file-systems, sharing protocols, shared folders users and permissions.
I connected a 1TB Samsung M3 USB portable HDD which have previously used for backups.
I then enabled Samba in OMV, setup a shared folder on the samsung drive and created a backup user.
I also set the "spin down" time to 5 minutes and enabled S.M.A.R.T. drive monitoring.
NASmusic
Now I have lots of storage readily available to my local users / systems I setup a CIFS/SMB shared folder NASmusic to contain my music library. Initially I just copied a load of music across so it is sitting there waiting for me to use it from whatever device I choose. In due course I can consolidate my music in this one place and use it for various home music players.
Review
At its simplest, all I have done is setup a Samba folder on PI43 which I can easily access from Windows. I can also use it on iPad (using Files), Android (Samsung MyFiles) and Linux (mount command). OMV improves on basic Samba by letting me setup multiple shared folders on the same drive through a simple interface. I can easily setup users and permissions for appropriate access. Usually with Samba I faff around each tiime I need to access a drive. OMV makes Samba a lot more friendly.
The OMV install hasn't "taken over" the server, I still have the usual PI OS capabilities available to me. It is a bit more than an app and a less than an OS.
Backup
My first use for the OMV NAS is to improve my existing RPI backup arrangements. Until now backups have been totally inadwuate based on very occasional rpi-clone system copies and sometimes copying zipped directory structures to other systems. Even if a backup exists I have trouble finding it.
rsync is a widely used command line utilitiy for linux backups. It is used to copy directory structures to another drive. A regular backup will only copy any changed files across, so it doesn't use very amounts of storage. It is perfectly suited to use Samba shares on a remote devices.
I found a suitable simple tutorial at jumpcloud and started to setup a backup for PI40, which is most in need of attention. You specify a starting directoy (/home/pi in the example), folders you want to exclude and the target Samba folder.
You can run this script as often as you like and it will mirror any file/folder additions/changes/deletions across. You can also specify a "dry-run" option which just shows you what would be backed up. This makes it very easy to get the syntax and arguments just like you want them.
However there is a better way to use rsync. rync can use ssh to communicate with the backup server. I just needed to make sure that PI40 had ssh credentials for automatic signon to PI43. After that I didn't need to worry about Samba shares. Veronica Explains provided an enjoyable tutorial.
I quickly setup a simple backup.
After a little more trial and error I setup script to backup important PI40 folders that I didn't want to lose.
They backup to a folder PI40 on the samsung_backup share.
Finally I added this script as a CRON job to run monthly
Outro
We now have a new server which makes its storage available for easy use by other systems.
We also have a solid backup system which makes it easy to backup RPI files on a regular basis.
3D Levitation
In fact the electromagnets are fearsomely powerful and the floating magnet can easily crash into the base risking damage to the electrics.
1/ Create a cylinder the overall height of the cover.
2/ Create a hole 2mm shorter than the cover and lower it to the top of cylinder 1.
4/ Make a cuboid hole the width of cylinder 1/ and lower it to 2mm above the workplane.
However this does fulfull my requirement to make something useful, so I can stop here for the moment.
Wednesday, 14 January 2026
Mark Kostabi
It is very rare for me to buy a picture. Thinking back over many years these are the ones that I have bought or Annette and I have bought together.
Chinese style landscape (now deceased), three impressionistic flower arrangements (Richard Akerman), two local park studies (Peter Boyle), a pool with overhanging trees (Mrs Ferguson) and of course lady watching TV (Lu J Son).
When we visited Tallinn in Agust I went to PoCo, their museum of contemporary art. It was interesting and enjoyable. There were one or two pictures by Mark Kostabi in the exhibition, which I liked and as I was leaving I saw that there was one of his prints for sale. I was tempted to buy it but, as usual, I wasn't ready to make a quick decision.
Mark Kostabi is an American, living in Los Angeles, but his parents emigrated from Estonia so he has local connections.
I thought more and more about the picture as we returned home and after a week or two I started looking online for prints by Kostabi that I could buy. I am very happy with one I chose which now has pride of place in my personal gallery.
In my picture it is easy to see a couple who are very fond of each other, standing in an embrace and two more people in a state of abject despair.
So much is achieved by simple, gradual shading changes on their surfaces. They could be mannikins which you can dress as you wish.
I like to think of the title as "hope and despair".
Mark Kostabi has produced many works some of which I have looked through. Many are more complex or have more to say but I like these two. Mark Kostabi himself faded somewhat from the art scene, some year ago because of balatant homophobic statements so I haven't looked further.
Saturday, 10 January 2026
Digital Picture Frame III
Intro
My Digital Picture Frame was successfully implemented in October 2025. It has a web interface which makes it easy to select galleries to display. The randomiser, choosing a first picture to display, helps retain interest. The display webpage has proved reliable.
There was some inconvenience in setting up, starting and stopping the show which I have addressed as the final part of the project using Home Assistant
1/ The TV needed to be turned on/off manually - HA can do this.
2/ HA now has a voice assistant "Jarvis" which I would like to start and stop the slideshow rather than using HA on PC, iPad or Laptop
3/ To avoid needless long-term i/o and SD card damage, turn off the slideshow each night in CRON.
TV Control
The small Samsung TV I use to display a slideshow is very old (2014) and only a little bit SMART.
There is an old "Samsung Smart TV" HA integration available which can turn the TV on or switch between HDMI and TV input.
Also the TV has a chromecast stick and the HA Chromecast integration can control some TV functions.
Thirdly I have a Broadlink IR sender which can duplicate TV remote Control functions.
There is a small issue: the Raspberry PI uses the HDMI2 input, so I need to make sure that regardless of whether the TV was previously in TV or HDMI1 or HDMI2 or something else I need to switch to HDMI2. There isn't an entity which tells me which input is used or one which allows me to switch to HDMI2.
After some trial and error I use a sequence of "Samsung Smart TV" and "Chromecast" commands to turn the TV on and select HDMI2.
Script to Start and Stop Slideshow
The Digital Picture Frame web page uses a websocket interface which allows it to run a bash script on the web server (PI41). The script invokes a python program "pictureparm.py" on PI41 to pause / resume the slideshow and change which gallery art is displayed.
The Home Assistant server (PI42) requires the capability to run "pictureparm.py". We can execute a command on a remote server using SSH.
Next I set up a HA shell command called slideshow_start so that I can easily run the command from a HA script.
Finally the TV22_slideshow script, brought everything together.
It runs some "Chromecast" and "Samsung Smart TV" commands to turn the TV on and change it to HDMI2, which is the source connected to the PI41 server.
The script can then run the SSH shell command to start the slideshow running on the PI41 server screen.
Jarvis Voice Assistant
As an enthusiastic HA user I was excited to see that Nabu Casa have designed a Voice Assistant to rival Alexa and Google Home. The Google Home interface to HA is somewhat tortuous and I certainly dont want to venture into the world of Alexa.HA Voice isn't fully developed yet but obviously it is well integrated into HA and is somewhat more secure than alternatives as it can keep data processing local.
HA Voice is easy enough to setup using the instructions provided. I select "Jarvis" as the control word.
Using the Voice Assistant we simply associate the command "Start Slideshow" with our script and say the words.😊😊😊CRON
As our slideshow runs in the background and I can watch it or do something else it is quite easy to forget it is running. Since the slideshow reads continually from an SD card, this could lead to issues with the media if I leave it. I schedule a CRON job each evening at 23:00 to stop the show if necessary.
OUTRO
This project has changed significantly from its starting point. I was particularly keen that the result is something that I can use easily and it has exceeded my expectations in this respect. Doing some technical stuff to start the show isn't conducive to regular use as it is a hassle. A verbal command makes all the difference. Secondly, the image on a small TV screen is visible and can be watched or ignored so I can just start the slideshow and watch when I am interested. As there are usually a number of exhibitions within a show there are likely to be some pictures I am interested in.
In conclusion this is a worthwhile use of time, I have learned plenty and have an enjoyable result.
Tuesday, 6 January 2026
VisionFive 2 Lite
Purchase
Back in August I was seduced by an advert for the VisionFive 2 Lite. Previously I purchased the VisionFive 2, which was, in my opinion the first properly useable RISC-V SBC. The new offering has a similar spec but is priced much more reasonably. It is in the same price range, but not quite so powerful as a RPI3 or RPI4. I definitely wanted one to try out and, hopefully, to put it to use.
Initial setup
The board arrived in November so I wanted to set it up asap. Installation is very straightforward. An Ubuntu desktop image can be downloaded from rvspace.org and copied to an SD card using win32diskimager.
I attached a screen for first boot, the system came up very slowly to show the GUI console. I changed the configuration to stop the GUI loading which speeds the system somewhat. I also enabled root SSH login so that I can comfortably run a headless server here on it.
I was able to run apt upgrade to bring software up to date without problems. Initially I installed lighttpd, nano and samba, which all work seamlessly.
RISC-V packages are not available for all software, for example I couldn't install vncserver. However I did install xrdp which I could use instead if I want a GUI.
Comparison with VF2
The rvspace website doesn't really distinguish between VF2 and VF2L OS software. I was able to take the SD card from VF2L, insert it in VF2 and it booted fine. The boards seem to have similar performance, the main difference is that the newer one is cheaper.
Assembler
Of course the main feature of a riscv64 computer is its assembly instruction set so it would be remiss of me to not to check whether it is easy to write assembly programs. Modern day hero Bruce Hoult is a RISC-V evangelist and provides some simple instructions.
Docker
I noticed that docker is already installed on VF2L, which is great.
I tried the docker hello world example and it works fine.☺☺☺
Conclusion
VF2L is a good product, perhaps comparable with a Raspberry Pi Zero W. It will be interesting to see what software it will run. As the RISC-V universe grows more software will be adapted / available to run.
I think I will aim to setup standard linux packages to run on it with an emphasis on using docker where possible.