None of us are particularly happy with Facebook or other online photo sharing sites, and anyway most of these are geared towards individual photographers, not a family of photo sharers.
As I'm a programmer, I like to know how things work, and strongly favour a solution where I can see and test the photo and metadata storage, so that I know that everything is safe. (And OK, yes, as a programmer I'm much more motivated to create my own solution rather than use an existing one!)
So how do we store and share our photos? Our solution: a Home Photo Bank. It's a safe place to store and share your family photos on your home network.
If you've got a spare Raspberry Pi around (or indeed any Linux or Mac computer), then follow this blog post to get your own photo bank up and running.
As well as photo storage and sharing, there are also cool tagging features so that you can categorise and discover related photos.
You can read a bit more about the photo bank on its GitHub page: https://github.com/ericclack/home-photo-bank
What you need:
- A Raspberry Pi, model 2 or 3, running Raspbian
- A router to plug it into, or use wifi
- Some familiarity with the linux command line.
The set up:
Here's what we'll cover:
- Set a hostname on your Pi so that your family can access it
- Install packages: oracle-java8-jdk and mongodb
- Install the application
- Create cron 'reboot' entry to run the photo bank
- Add a photo-uploader user, SSH keys and local scripts to make it easy to import files
- Test that it works.
Set a hostname
Your family and friends (and anyone else on your home network) need to be able to access the photo bank. Set the Pi's hostname by editing /etc/hostname and then share the link http://photobank.local:3000/ - replace "photobank" with whatever hostname you gave your pi.
Use apt-get to install the required packages: Java JDK for the runtime, and MongoDB for the data store and git to get the app itself.
sudo apt-get install oracle-java8-jdk mongodb git
Install the Photo Bank
There are five parts to the install:
- Install the build tool Leiningen
- Get the app source code
- Make media directories
- Set database credentials
- Run the app to download dependencies and start up the photo bank
To get Leiningen:
chmod +x lein
To get the app source code run:
git clone firstname.lastname@example.org:ericclack/home-photo-bank.git
The photo bank stores photos in media directories. Create these before you run the app:
mkdir _import _process _failed
The media and database credentials are stored in the file profiles.clj -- create this file and add these lines:
:database-url "mongodb://localhost/photo-bank" }}}
Now run the app, this will download all dependencies on the first run:
Now you should be able to browse to http://photobank.local:3000/