Nextcloud and the Open Web

Nextcloud and the Open Web

Two evenings ago I played with setting a No-ip host, setup the Swisscom router to make a Pi available in the DMZ so that I could access the apache server and Nextcloud from the open web and it worked. I had it all done within 15-20 minutes. Now for those with the “But why nextcloud?” the answer is simple. It offers two factor authentication and it is trusted by various EU institutions and governments. It is also trusted by Geneva but I don’t remember by whom, at this point.

Multiple Hacks Due to Vulnerable Apps

I have had a website and web presence on the web since 97 or so but in recent years some of my older projects, but also WordPress, were repetitively hacked to the point that I deleted all the old projects that I had on the site because they made my website vulnerable to attack. Several times my website was locked and I had to spend several hours, or even days to restore access. After a few experiences I streamlined recovery, but I also increased security. Now all my accounts have two factor authentication and each site has a different password.

PhotoPrism Unvetted

In theory PhotoPrism would be fun to have on the open web, because I could upload images, and share them more easily. The drawback is that I haven’t RTFMed (Read the fabulous manual) on two factor authentication for PhotoPrism.

WP and NC Two Factor Authentication

WordPress and NextCloud are both designed with the option for two factor authentication so those are the two sites that I have running. For a while I thought “but if I run it through the tailscale VPN that’s good enough for me” and it is. I’m happy to block off full access to these services, so that only I, and those I share these devices with have access but at the same time it’s good to learn and to experiment.

Easier than Expected

I expected that punching a hole through the server would be complicated but it was easy. I intuitively knew what to do without RTFM. I should add that I have spent the last three years studying related topics so “intuitive” means “put in the hours”.

Firewalled

I also set up UFW the morning before attempting this experiment and I tested whether I had SSH access from the World Wide Web. It’s when I saw that I didn’t that I setup two factor authentication. If that wasn’t the case I would have deleted the no-ip address.

The Advantage of the Open Web

The advantage of having the servers on the open web is that I can share links to files more easily when required to do so. It also means that I can backup photos whilst I’m out, without having to log in through the VPN.

The disadvantage is that I need to verify that my setup is secure and I need to spend time checking that SQLi attacks, among others are not possible. I added wordfence for the WordPress install and brute force protection and two factor authentication to NextCloud. Having done these things I still want to do some more research to ensure that the sites are secure on that one server.

The VPN Advantage

The VPN advantage is that I control access and it’s behind security protocols put in place by Tailscale. It should be harder for people to gain malicious access.

And Finally

Now that I have seen how simple it is to make a home server available to the World Wide Web, rather than hidden behind a VPN I might setup a smaller instance with less storage that is setup to back up photos and videos while I’m hiking and walking, but that would be emptied and moved to a more secure instance within my personal network.

Time for more experimentation.

Kdrive and PhotoPrism

Kdrive and PhotoPrism

Yesterday I configured PhotoPrism to work with my iPhone photo album that was being synced to Infomaniak’s Kdrive, before then being synced to a drive that I could access via the Photoprism docker-compose config file. I then used No-ip to make that PhotoPrism instance available to the world wide web.

For several years I have had an Infomaniak Kdrive account but did not use it much, until I noticed that what costs 100 CHF with Google Drive costs 67 CHF with Kdrive. That’s a 34 CHF franc saving.

Migrating Data from Google to Infomaniak

This is interesting because of two things. The first one is that you can easily migrate your Google Photos Albums to Kdrive, and from Kdrive to your local machine without having to spend hours doing so manually. I am in the process of migrating from Kdrive to my local drive, for my Google Takeout album but this is slow.

What worked well was telling Kdrive to download the iPhone photo album from the Kdrive cloud to my local machine. I then edited the docker-compose config file but it took some trial and error before I understood how it works. It’s simple.

Telling PhotoPrism Where to Look

In my mind it should be “label: destination” but this is wrong. With Photoprism config files it is destination: label. To explain this more clearly:

volumes:
 - "/mnt/photos:/photoprism/originals"
 - "/mnt/videos:/photoprism/originals/videos"

“mnt/photos” is the folder location and “photoprism/originals” is the label that docker and photoprism recognise. This is important because when you understand this you can set an external drive to be the photo gallery main drive, run index, and catalogue everything.

Ingesting Photos and Videos

If you export your Google Photos albums via Google Takeout, you can unzip the 2 gigabyte files, and as they unzip the files and their related JSON files are all brought together. Tell PhotoPrism that the Google Takeout folder is the import folder. After this mark “move files once ingested” and press import. PhotoPrism will then ingest all those files, delete what has already been ingested, catalogue everything, and leave you with an organised folder of photos and videos.

The indexing stage is very fast but can still take time, depending on album size.

The Next Step

There are two possible next steps. The first is to access this gallery from anywhere using tailscale, or using No-IP to access your photo album remotely. I recommend tailscale for this stage, because I haven’t seen much information about how secure PhotoPrism is so I’d rather not risk it.

I setup no-ip before telling my router about it and within a few minutes I had access to PhotoPrism and Nextcloud via No-Ip. I will write about that experiment tomorrow.

And Finally

When you’re playing with linux, and experimentating with projects like PhotoPrism you need to take time to understand how they work, to adapt them to your use case. I did this. Now I can get PhotoPrism to behave as I want it to. Now I can use external hard drives, and index photos, without having to import them. Within minutes I can plug in a drive, tell PhotoPrism where to find it, index it, and then use it.

If it had two factor authentication and more security measures then I would consider having it on the cloud, but for now I’m happy to use it via Tailscale’s VPN, as this is more secure.

Experimenting With the Pi5

Experimenting With the Pi5

The Raspberry Pi 5 is twice as powerful as previous Pis according to various sources. For the last 24 hours I have been using a Pi 5 running Ubuntu and the experience has been good. Despite being a small computer it feels as comfortable as some of the computers I have been using.

The Pi 5 feels comfortable

I have loaded several webpages at once, in various tabs, tried importing images via photoprism, whilst writing this blog post and running VS Code. So far I feel that a Pi running Ubuntu can run Nextcloud, PhotoPrism and be used to write a blog post simultaneously.

I struggled with installing VS Code but that was due to not being used to dealing with Debian packages. That was quickly resolved and that’s how I am able to experiment with blogging from a Pi 5.

The Fan Gets Quieter After the First Boot.

After the first boot the Raspberry pi 5 was noisy, with the fan running at full power until I rebooted it. On the second boot the fan started to vary in strength according to what I was doing. If you’re doing something intensive, like indexing and importing photos to photoprism then it will be noisy, but if you’re writing a blog post it will be quiet.

FrontMatter is Faster Than on a 2016 Mac Book Pro

What I especially like is that Front Matter, on a 2016 mac book pro is slow to load. On the Pi it loads all the posts within a few seconds. It helps that I moved all 2023 posts to the archive.

The point remains that if you want to write blog posts in Markdown for Hugo to generate static web pages then the Pi 5 8GB is fine.

Remembering the Recent and Distant Past

In 2008 or so I bought an EEEpc for about 300 CHF and it was relatively crap. In 2020 or so I bought a Chrome Book and it was fine for web surfing but costs about 270 CHF or so. With the EEEpc you could feel that the machine was underpowered, cheap, and huge, mainly for the battery to fit on the back. The keyboard was tiny so you had to re-learn to touch type on this device.

With the Chrome Book you have a simple laptop but not much freedom so it’s good for web browsing, but not much more, in my experience. I didn’t experiment with running it with the Linux features enabled.

Small And Light Weight

With the Pi 5 you have a computer that could fit into the small pouch of a Domke satchel. With an aluminium apple keyboard teathered by a power cable, and a mouse, you can use the Pi 5 and forget that you’re using such a small and relatively small computer.

It isn’t portable. It doesn’t have batteries, or a keyboard, or anything else, but when it’s plugged in it works well for web browsing, and hosting docker containers, and running VS Code, for blogging at least. If you’re a writer then the Pi 5 could be enough.

Bluetooth Tethering

I tried pairing a bluetooth rapoo keyboard and that worked as well. Just open the bluetooth tab, tell the keyboard you want to tether by pressing the pairing button, find it on the Pi, type in the pin, and you’re tethered. This means that you can keep the ports free for hard drives or other items.

Power Adaptor

I tried using a Pi 4 power adaptor and it worked but said that it would restrict the amount of power third party devices could draw from it. The Pi 4 has a 15W power adaptor whereas the Pi5 has a 27W adaptor.

Laptop Replacement

My Mac Book Air is old and needs replacing. By Autumn of this year it will no longer be supported by Apple. That’s why I didn’t bother to replace the battery a few weeks ago when I was considering giving it another two years of life.

I was playing with an H Elite Book recently. I have cooled to this machine because it has killed two USB devices. It killed a hard drive and a USB stick. Due to this realisation I think I will use it for experimentation, and nothing more. I don’t mind that it killed the old USB stick because I expected that it was already dead when I found it after it had been dormant in a drawer for years. When it killed the SSD I didn’t know whether the drive had died because it was cheap so I was worried for it’s twin which I am using photoprism with at the moment.

I’m happy that it’s the USB port that killed the drive, rather than a faulty drive, but I would prefer not to kill any more devices. I don’t trust the right USB port not to kill it’s own USB devices, if given the chance.

I will install NixOS on that machine and experiment with it.

And Finally

Although I bought the Pi 5 to work as a server I have realised that it can be used as a desktop for web browsing, playing video and more. I like that the Pi 5 has a fan that speeds up, or slows down, depending on how intense the work load is. This means that it can be quieter when you do simple tasks. I feel that it could replace my 1600 CHF eight year old mac book pro, with relative ease.

I should try to run kdenlive.

I’m happpy with the Pi 5, so far, after a day of experimenting.

Photoprism and Fast Loading

Photoprism and Fast Loading

ast night I spent hours going through videos and changing them from “public” to private, so that they would be removed from the index. I went through them by loading 2024 without filters and worked my way through 60 or so files at a time, before scrolling, and waiting for content to load. After a few hours I got bored so tried to switch things up.

I decided to sort images by camera but that’s slow, so I tried to sort by colour, and by category, and more. I found that if you sort by colour, category and other filters the video thumbnails load within seconds. I don’t mean sixty images per scroll. I mean hundreds of images at once.

The Goal

In my use case I wanted to make private or unindex thousands of files at a time. Imagine if you have a thousand images of a wedding, or three or four hundred images from a conference. If you want to change hundreds of files you want to be able to see all media assets at once, rather than mindlessly scrolling and waiting to load.

Filter Searches

I counted and with the unfiltered process I had to wait at least eight seconds for 60 thumbnails to load, and then scroll again. By using various filters that was reduced to seconds, for every image.

On the same topic, if you want to bulk modify media assets the limit is 999 files at once. Once the changes are applied you can select the files that were not processed, and continue from there if you selected more than 999 files.

This is good for adding the country for images where that information is not in the exif, or adding a photographer’s name if that is not in the exif. It’s a trick worth knowing about.

Hundreds of Faces

In the process I also learned that my instance of PhotoPrism could index faces from video and photos. If you take photos at an event then PhotoPrism will help you index photos according to which faces are in them. De-rushing videos becomes faster. Of course this probably works for keyframe images, rather than actual video but that’s still great if each face is used as a keyframe for the relevant file.

If you’re at a wedding you can define the names that go with faces and it can find images with the bride, groom, and other key personalities. Instead of just giving a photo book you can give them a way of searching by key individuals. The advantage of using PhotoPrism is that it’s hosted at your home or work place, rather than in the cloud and should thus be more secure, as well as kept out of Google or Facebook’s hands.

And Finally

In the end I marked 68,000 video files as private. That is 68,000 files that I could migrate from PhotoPrism Instance to another. I could have one for personal photographs and video, and the second one for random videos from the web. Do the videos, themselves, have any value? Nope, but the photo archive does, and the establishement of a faster work flow does too. The faster we can process tens of thousands of files, the more time we can dedicate to high value media assset management.

PhotoPrism On a Pi Continued

PhotoPrism On a Pi Continued

After more than a week of working twenty four hours a day my Raspberry Pi 4 finally indexed over 120,000 videos and photos. The first thing that I notice is that Photoprism feels slower now. It takes several seconds and it feels as if it is suffering.

Overloaded with 120,000 Files

The Raspberry Pi 4 and PhotoPrism were not designed to have so many photos at once. It tells me that 63,000 files are videos, which I will remove from this archive eventually. They take an enormous amount of space without having much personal value.

Imagine that you use PhotoPrism to index your video directories, where render files are generated by Final Cut Pro X or other softwares. If those files are indexed then they take up a lot of resources to index but have no value except to the video editing system.

Purging Render Video Files

As an archivist I would often purge the render directories because they can take gigabytes of space when the only file you need is the final edit, as an international version, with no titles, and natural sound.

The Long Tail of Thumbnails

Although I speak of 120,000 images indexed there might be 12 times that number of assets being tracked by PhotoPrism. It generates up to 11 thumbnail images per asset for quick display on different resolution screens, from laptops to desktops, mobile phones and tablets.

12,000 of those video files are live photos, so I need to sort through the other files now that the indexing is finished.

Extra stats

It has found 1365 folders, 725 places, 222 calendar “events”, 57 moments and 59 people so far. It takes a long time to load unrecognised people with PhotoPrism because it is not designed to deal with hundreds of unrecognised faces at once.

Changing Faces

As you go through decades of photos at once you notice the faces that have changed over time. You see how you looked when you were two or three decades longer, and you see how your face has changed over time. You also see how much younger people looked just eight years ago in some cases.

The other challenge is to remember the name of people that you have photographed, and with a decade or two since you saw certain people it’s hard to remember.

If you have no idea of a person’s name you can just mouse over a face and click the x button and that face will cease to be in the database.

No Mass Delete

There is no mass delete option. If you want to delete photos via the web interface you will need patience. It might be better to use wildcards and delete them from the directories, and then refresh the indexes to remove ghost files and index references that no longer have media attached.

And Finally

The next step is to see how to backup the database files so that if photoprism crashes I can restore it, and how to backup the images, so that if the drives fail I do not lose the data. The step after that is to see how differently it behaves on a Raspberry Pi 5. I suspect it will make a huge difference.

Xcursion Fusion in Snow

Xcursion Fusion in Snow

Yesterday it snowed enough for the snow to get some depth. I went for a walk with snowboard trousers, a proper winter coat and the Xero Xcursion Fusion in snow that reached above their rim without getting snow or water onto my socks until I removed the shoes at the end of the walk. They’re minimal waterproof shoes that have “FeelTrue®” soles. These are thin, minimal soles. Despite this my feet felt warm for the entire walk with normal soles.

Fine in Snow

When I was walking on thin snow I felt that the sole might be sliding slightly but this is probably due to the slightly slushy snow, rather than the soles. Sometimes I had to walk in five centimres or more of snow and they still felt fine. I didn’t feel any concern about snow making its way into the shoes, even when walking where grass or fallow fields were growing. They’re very comfortable.

Light and Flexible

The advantage of these shoes is that they’re light and flexible. When you walk with them you can walk with your ordinary stride, rather than one adapted to hiking shoes, or moon boots. I thought that I might feel the cold through the thin soles but no such problem. I could walk normally for one hour and fourty minutes without regretting that I was wearing these shoes. That’s great, because hiking shoes can be 200-300 CHF and I got these for 90 CHF, the same price as my other barefoot shoes that are better in summer, and dry conditions.

I did not expect them to be so comfortable. I thought that water could filter through the top, or the gap between the tongue and the sides of the shoes, or through the soles. I had none of these issues. I would rate these for winter walking with snowboarding trousers without hesitation now. I was pleasantly surprised by how comfortable they were.

When I tested them in heavy rain, walking through puddles I did get water to enter the shoes. With snow they’re fine, because snow isn’t wet until it melts. It’s important to stay dry when freezing conditions could affect your comfort level.

Walking in a Cold Wind

Although not highly scientific I walked in a cold wind two days ago with these shoes and felt no discomfort. It’s not a scientific observation, as I didn’t walk on my hands with my feet in the air. The main point is that despite being minimal I do not find them to be uncomfortable in -2°c with a strong wind and a noticable windchill factor. I didn’t check the “feels like” temperature

The Competition

Originally I wanted to get the Merrel Tail Glove 7 GTX but cancelled my order due to the wait. I also cancelled my order due to the price. The Trail Glove 7 GTX shoes cost from 160-180 CHF whereas the Xero shoes can be bought for 80 CHF if you shop around. The Xero Xcurion Fusion shoes cost as much, or less than the barefoot shoes and they keep my feet dry.

Snow Shovelling

When I finished my walk I noticed that snow had built up on the road outside of the building I live in. I went down to the garage to get a snow shovel and started to shovel the snow. Part of that shovelling requires walking up and down a steep ramp that was covered in snow. I did not slip, or feel that my traction was in danger once. I was in full control the entire time.

And Finally

Usually when it snows you need to wear big, heavy shoes that are more tiring to walk with. With the Xero Xcursion Fusion shoes you have the advantages of ankle height hiking shoes without the weight and bulk. These shoes are light and malleable. They do what your feet are doing, without having to adapt your gait to the shoes. The shoes are well suited to casual snow walking, especially when you have snow trousers with gaiters that prevent any and all snow from entering through the top. That’s how shoes should be.

I believe that these shoes are worth trying, especially if you’re used to the barefoot feel but want something that is seasonally appropriate. I was comfortable both when walking and shovelling snow.

PhotoPrism, Walks in Cold Weather and Migrating to Linux

PhotoPrism, Walks in Cold Weather and Migrating to Linux

A Cold Walk

Yesterday I went out for my daily walk but within minutes I noticed that my legs felt cold and that I really did need the scarf that I wore. It’s exceptional for me to wear a scarf. My fleece and my inner coat both have neck protection built in so I usually feel fine. Yesterday was unusually cold so I was happy to add the scarf to really keep my neck warmer. I removed it for a few minutes because it felt itchy but I soon put it back on.

PhotoPrism is Still Indexing

In the meantime PhotoPrism has been chugging away, indexing tens of thousands of files and adding location information as well as other metadata. It has indexed 60,000 files of which 20,000 are videos. Most of the video files are junk though, stuff I saved that has no personal value. I’m marking the video files as private and I will probably delete them as they take teraybtes of space without having much value.

Migrating to a Linux Machine

I also experimented with migrating my blog writing from this mac to a Linux machine. I managed to gh clone the blog files from github to my local linux machine but struggled a little with uploading the test file from the linux machine to the web server. While writing this blog post I was reminded of the solution that should work.

My mac is old and I suspect that at some point the battery will fail and I will lose access to it. I already had to swap the battery once and soon it will die again, and that’s when I will stop using it.
I considered swapping the battery a second time but I saw that Apple is about to stop support for it. If I can use a Linux machine instead, then I save money.

And Finally

Walking in challenging weather is good. It requires us to equip ourselves better, to remain comfortable, whether it’s cold, rainy, windy, or a heatwave. By migrating from Google Photos to PhotoPrism I can keep photos and videos locally rather than in the cloud, and access them with ease, as well as slide from the cheapest service to the cheapest service without investing days or weeks in the effort.

Sliding from Mac to Linux is about learning, and cutting costs, but mainly about experimentation and learing about a different OS. It’s good to be comfortable on Windows, Linux and Mac. At least now if, and when, the mac fails I will be ready to slide from one device to the other.

Playing with the Xiaomi Band 7

Playing with the Xiaomi Band 7

I have had the Xiaomi Band 7 for a while but I didn’t wear it properly until the start of the new year. As a silly concept I thought that I would try to wear it for the entire year and so far I have kept to that resolution. Sometimes it’s worth trying the cheapest device that you can find to see how it differs from the flagships by Suunto, Garmin and Apple.

PAI

The first thing that I enjoy is that it has the PAI indicator. The Personal Activity Index. The idea is that you should reach 100 points per week. If you go for a run you can get 45 points within an hour or so. If you walk for one and a half hours you may get 18 points or more. It’s just to indicate whether you have exercised enough, without putting pressure on high energy sports like cycling, running and others.

Training Load

It also gives you an indication of training load. The four categories are low, optimal, high, and very high. Despite just walking for the last seven days the indicator is at a high value for me, with a training load of 193 over the last seven days.

Sleep Tracking

Recently I have found sleep trackers less reliable than I used to. The main reason is that I let various watches and fitness trackers guess when I am sleeping, rather than telling me. If I get up in the night then it discards the first stage of sleep and just tracks from the moment I went back to sleep. I used to track sleep nightly, but with time I lost interest. When you have tracked at least a thousand nights the results are less captivating. I also started to worry about how quickly it was affecting mobile phone battery longevity.

Seven Day Battery

Whilst on the topic of longevity, one of the key advantages of the Activity Band 7 is that the battery lasts for seven days or more, between charges. You place it on your wrist and forget it for seven days. Apple Watches prove to be especially frustrating because you have to charge them every 18 hours and the charge time can be from two and a half to three and a half hours long. It tends to need to charge just as I want to walk, rather than at a reasonable time. With the Band 7 this isn’t an issue.

And Finally

I like the simplicity of the device. Tracking walks, runs and more is easy. It uses the phone for GPS tracking so this enables the device itself just to count steps and measure heart rate. Some people might want more but if you always walk, run, and more, with your phone, then this is a great device. It’s light and small on the wrist. It has a wealth of displays to chose from. I chose a mountain landscape, with the digital time. For 40-50 CHF this could be a good device for children and non geeks, as long as the parents and teachers tolerate children listening whilst fiddling, rather than fighting to stay awake in class.

Sliding Between MacOS, Windows and Linux Daily

Sliding Between MacOS, Windows and Linux Daily

Recently I have been sliding between Windows, Linux distributions and MacOS throughout the day. I use a mac for blogging, and Linux to experiment and learn new skills, and windows to watch Netflix and YouTube. I might be over-simplifying but that’s the simplified version.

Pi and Linux

I find that I have come to be at ease in all three environments, especially since playing around with Raspberry Pi devices. “Why?”, you may ask. Because with a Pi you can try dedicated images for Nextcloud, for PhotoPrism, for Immich and more. You can also try them for Ph-Hole and others. The advantage is also that you use microSD cards. This means that you slot in card A and try A1, then you slot B and try B1 and finally you try C with C1. In the end you’re trying instances with what could be thirty seconds with your Pi being a PhotoPrism server, before it becomes a NextCloud server, and so on. With enough SD cards if you mess up you can revert to something that you enjoyed using with a minute or two.

MacOS

I am using the Mac for blogging for one key reason. The git history for this blog has become too big for a sync in a single go and I need to learn how to sync just the last 10 changes, rather than the entire history, but that requires RTFM. I haven’t taken that time yet. It’s not laziness. It’s about having more interesting projects to work on before reaching this one.

Windows

I use the windows machine for media viewing habits because it’s plugged in to external screens and a monitor whereas the other two aren’t. I practiced using Chocolatey and PowerShell, as well as other windows related experiments. I also use it for flashing linux SD cards. It’s good at that because it has an SD card reader built in so I don’t need a dongle.

And Finally

In the 80s, as a child I played with the CLI, and norton commander, and DOS, and Windows 3.1. I installed games and chose sound cards and more. I used to see displays that recently I have seen quite regularly. It’s interesting that the CLI interface to NextCloud reminds me of when I was playing with computers as a child in the 80s. For decades I left the CLI behind, but now I’m back. I use it daily at the moment.

When I first started playing with Linux in the 90s I had to download the ROM, burn a CD or a DVD, and then attempt to install the OS on a computer. I would often succeed, and sometimes fail. Now, you don’t need to burn a DVD. You just flash a microSD card and you’re ready to go. You don’t even need to prepare a USB key, and wait for an install on a desktop. Experimentation is faster now.

The next step is to install Nextcloud, HomeAssistant, Pi-hole and PhotoPrism to play nicely on a single device.

Migrating Media Assets from Google Photos to PhotoPrism

Migrating Media Assets from Google Photos to PhotoPrism

Yesterday I started the proper migration of my Google Photo assets from Google Takeout to PhotoPrism. The first step was to mount the drives to the linux system, the second was to transfer the photos from the external hard drive to the internal SD card, unzip them, and then start imposing assets.

The first bottle neck is exporting 800 gigabytes from Google drive to a local drive. I chose to download the files in one gigabyte packages in fifty gigabyte sets over many hours. This depends on your connection so the experience will vary.

Moving Between Disks

The second bottle neck is when moving the files from an external hard drive to a microsd card. The transfer can be quite time consuming which is part of my reason for using a Pi, rather than a laptop. A laptop would be much faster but it will time out unless you tell it not to sleep. The issue with that is that laptops are not designed to be un for days at a time, without sleeping every so often. Once the Pi is working you can leave it to work.

Ideally I would keep the files on the external drive and skip this time consuming step. I wanted to test the feasability of using an SD card, to keep things tidy once the time consuming phase is over.

Unzipping

PhotoPrism needs files to be unzipped to work. This can be a time consuming task if you do so with the Pi, rather than a laptop or desktop. I would recommend unzipping the files ahead of moving the files from an external drive to an internal drive. At the time of writing I did not find a quick way of unzipping files with a single command.

Importing From the Import Folder

PhotoPrism has an import folder. This is where you extract your unzipped Google Takeout Folders to. Select “move files” to delete all files that have been automatically imported. Click import and then PhotoPrism does the rest. This is the stage that takes the most time. PhotoPrism orgqanises the photos by year, month, date, location, tags, and people. This is the stage where you can go for a walk, or enjoy a good night of sleep because it will take hours to complete.

I am not clear whether the JSON files for images are always zipped within the same archive or whether they are zipped once every few files. This is part of my reason for experimenting with ingesting several gigabytes at a time, rather than one folder at a time. The second reason is that if I give it tasks that take hours it gives me no excuse to procrastinate. That’s what I did before writing this blog post.

Recognising Faces

PhotoPrism recognises faces but it doesn’t create a “person” until it has several images. When it does have several images it gives you the opportunity to name that face, or add it to a pre-existing face. It’s nice to watch as faces from your past re-appear, and amusing when you realise how many names you have forgotten, as well as seeing which ones you clearly remember.

Recognising Places

At the moment when I am writing this post it has recognised 200 places and 15 states. When it recognises a place you can search by country via the search tool, or by location with the map. States are towns, villages or regions. This is a useful way of organising photos because it shows how much you travel, but also how many places you have been to, once you zoom in enough.

Cameras

This tool, by reading EXIF info, makes it possible to search for photos by camera. You can search for 360 photos with insta360 or photos from years ago with canon s70 or Canon EOS 5 MkII etc.

Categories

If you’re looking for photos of food, or aircrafts, or goats, or sheep, or monuments, or historical, you can. It also allows you to seach by colours, for example teal for grass and diving or blue for sunny days and more.

Years and Months

It is possible to search by year or by month, or both. You can search for December images to see if you can find images of snow, or you can search for June and yellow to find images of drought.

Import and Log

Two tabs that I spent time watching last night when I first started to import Google Photos properly were “import” and “log”.

The import tab is important because it allows you to know whether files are being imported or not so this allows you to decide whether to import more images or not. I prefer to import 50 gigabytes, clear the import directory, and then import the next 50 gigabytes, rather than to leave it to run for hours and assume that everything was imported correctly. If something fails I like to know when it’s easier to fix. So far I am under the impression that photos are, at the very least, imported into folders by year and month, as well as indexed automatically based on content.

I like to watch the logs to see if errors occur, but also to see when new faces are recognised, whether thumbnails are being generated correctly as well as when a new face cluster is ready to be named.

Making Photos and Videos Private

With PhotoPrism you can set several images or videos as private at once. You select the first image and then before clicking the last image press shift as you click and it will select that range. You can then click on the lock and those images or videos will be marked as private. Having the ability to select a range of images and apply changes, such as privacy is useful. I use privacy as an example but you could just as easily add a country, or keyword, or anything else.

The Index Tab

I realise that I should mention the index tab. Indexing runs automatically, as soon as it detects images in a directory or a mounted drive it will attempt to index those files which is both useful and likely to cause a mess. Luckily PhotoPrism comes with a “cleanup” tool to make clearing up orphan files and tidying the index easier.

It’s Fast

Despite indexing thousands of files, adding metadata, recognising colours, adding categories and labels, as well as generating thumbnails it’s fast. I can load images almost instantly when scrolling up and down. This is despite running on a Pi whilst it’s working hard. This is a great self-hosted alternative to Google Photos and iPhotos. Remember, before cloud storage was a default tools like Picasa existed, and these were great for organising photos. The difference is that now they’re cloud solutions where the cloud is your home Raspberry Pi rather than an app on your phone or laptop.

User Roles

When you use PhotoPrism for free you can have just one user. If you pay 2 Euros per month you can have “Super Admin, Admin, User, Viewer, Guest” accounts. This allows you to create individual users, to add friends and family.

Cloud Option

If you don’t desire to have your own private instance running at home you have a cloud based solution that starts at 6.50 Euros per month but it’s unclear what the cost is for storage.

And Finally

Initially I thought that I would use Nextcloud for media asset management but when it failed to display video files as thumbnails and when I saw that I couldn’t easily get rid of orphan index entries I hesitated between Immich and PhotoPrism. What made me commit to PhotoPrism is that I saw that they had a tool to import from Google Takeout built in. Instead of spending hours or even days or weeks re-organising photos the software would do it for me.

Adobe Lightroom costs 99 CHF per year. Kyno by LessPain Software costs 150 Euros per year and CatDV costs several thousand CHF to purchase. If you know how to setup PhotoPrism you can save money, or upgrade the hard drive to a higher capacity once per year, to ensure less risk of drive failure due to age.