Overview
PhotoTrove is a GPL application for managing large collections of photos and videos. EasyPhotoTrove is an installer that builds a working PhotoTrove server. Trovester is an “appliance” which will run on most recent computers under VirtualBox and on GNU/Linux computers under QEMU/KVM.
Herein are instructions for building the Trovester appliance and some automation for the final steps so that Trovester will use shared folders for easy file transfer with the host machine.
Build Instructions
Installing the Operating System
-
Download from http://www.debian.org/CD/netinst/ the Debian “small CD” iso image for the target architecture, typically i386 (32 bit) or amd64 (64 bit), either debian-xxx-i386-netinst.iso or debian-xxx-amd64-netinst.iso.
-
Under VirtualBox or virt-manager, create a new virtual machine:
-
Name: trovester
-
OS: Debian GNU/Linux
-
One CPU (adjustable later, in service
[Feel free to give the machine more processors and memory while building it, but set them down to the nominal values before exporting.]
) -
512 MB RAM (adjustable later, in service
[resources]
) -
5GB virtual hard drive, dynamic
-
Attach the Debian iso file as the CD.
-
Audio disabled
-
Network adapter
-
VirtualBox: Select Bridged
-
virt-manager: Select NAT (accessible from host but not local network; I’ll update when I learn more about QEMU/KVM bridging.)
-
-
Shared folder
-
VirtualBox: named mytrovester pointing to a folder on host
-
virt-manager: Enable shared memory, then Add Filesystem:
-
Driver: virtiofs
-
Source path: [path to shared folder mytrovester on host]
-
Target path: mytrovester
-
-
-
-
Boot from the Debian iso file and run the installation script. Let it set up the entire virtual disk.
-
Leave the password for the root account blank so that the installation script lets you create a non-root user account with sudo privilege. Then, when prompted, create the xyzzy account, password
xyZZy!42. -
When it asks, under “Software selection”, what kind of system you want to build, uncheck all the task options except SSH Server and Standard System.
Installing PhotoTrove using EasyPhotoTrove
-
After the installation completes it will boot the new system. Log in as xyzzy.
-
Download the EasyPhotoTrove installer by typing:
wget http://toyrus.ngrok.io/~ted/easyphototrove/install.sh -
When the installer finishes downloading, execute it:
sh install.shIt will give you a long stream of progress messages. At some point it will ask you for xyzzy's password. When it finishes, you’ll have a working PhotoTrove.
Setting Up the Shared Folder
-
VirtualBox only: Download and attach the latest VirtualBox Guest Additions iso image from the Devices menu (don’t execute it yet).
-
Log in as xyzzy if not already logged in.
-
Download and execute the setup script:
-
VirtualBox:
wget http://toyrus.ngrok.io/~ted/trovester/trovestervboxsetup.sh sh trovestervboxsetup.sh -
QEMU/KVM:
wget http://toyrus.ngrok.io/~ted/trovester/trovesterkvmsetup.sh sh trovesterkvmsetup.sh
When the script finishes, the virtual machine is configured.
-
Exporting the Appliance
-
Empty the package cache to recover some disk space:
sudo apt clean -
Clean up any scaffolding or temporary files, then shut down trovester.
-
If you gave the machine extra processors or memory, set them back to the nominal values to maximize portability.
-
Package trovester for export:
-
VirtualBox:
-
If the Guest Additions iso is still mounted, unmount it.
-
Using the VirtualBox Manager, select the trovester machine, select “Export Appliance…” from the File menu and follow the prompts.
-
-
QEMU/KVM:
-
The
trovester.qcow2file is exportable. -
Instructions for importing it are in an appendix to the PhotoTrove user manual.
-
-
Advice to Users
Encourage users to read the PhotoTrove User’s Manual while feeling free to email questions and comments to me.
Remind them of the importance of getting reliable backups in place right from the start. Again, the User’s Manual covers this. The easiest way to start is with an external disk drive. If the host is running Windows, an excellent tool for painless automatic backups is RoboMirror. On GNU or Unix, some configuration of rsync will do it.
License
Copyright © 2026 Theodore B. Ruegsegger
This collection of scripts and documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This collection is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this collection; if not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.