Blog Banner

Automatically uploading photos solution

Details about auto-photo-upload project which lets photographers automatically upload photos taken by their DSLR camera straight to Pixelliott.

Country flag for United Kingdom
Joey's Photos
Written by Joseph Elliott Part of Joey's Photos
Last updated 26 May 2025

Pixelliott presents auto-photo-upload GitHub project that allows photographers with a DSLR camera to automatically upload captured photos after they've been captured.

One use-case for this project could be for example, if you are a wedding photographer, then you could show guests captured photos as soon as they're uploaded.

Getting the project to work requires a moderate amount of technical expertise, beware of the learning curve if you don't have much experience with SSH, Linux, Raspberry Pi or Docker.

It works by the DSLR camera communicating with the Raspberry Pi for when a photo is captured. A node v20 script within a Docker image runs to check for captured photos and uploads them to the selected provider based on previously provided credentials.

Requirements

Here is a list of what you need for this project.

  • Raspberry Pi We recommend the Raspberry Pi Zero 2W, it's small, has WIFI, is low cost and has low power consumption.
  • DSLR camera with USB interface and the camera is supported by libgphoto You can find the list of supported cameras here. You will need to look through the large table, your camera must have Additional Abilities with Image Capture.
  • USB cable between Raspberry Pi USB type and DSLR camera USB type This is to enable fast communication between your camera and Raspberry Pi.
  • Creator account with Pixelliott The account where your photos will be automatically uploaded
  • Internet connection The Raspberry Pi needs an internet connection to upload them to the selected provider. You could use ethernet if your Raspberry Pi supports it or if you use case is static. If you're planning on moving around, we suggest getting a mobile connection for your Raspberry Pi, or a more cost effective solution is to bridge the mobile data connection on your mobile phone.
  • Battery If you're planning on moving around, you will need a battery to power the Raspberry Pi. It's unlikely that you would want it to be powered by the camera battery. If you are using the Raspberry Pi Zero 2W, I would estimate getting a battery of 500 mAH per hour required.

Setup Raspberry Pi

SSH onto your Raspberry Pi. Install any system updates.

sudo apt-get update && sudo apt-get upgrade -y

You can download the source code for the project here: https://github.com/pixelliott/auto-photo-upload The following command will download the project and extract to a directory called auto-photo-upload-master

curl -sL https://github.com/pixelliott/auto-photo-upload/archive/master.tar.gz | tar xz

Install Docker

Note: Raspberry Pi Zero 2W is 64 bit

If you're using 32 bit Raspberry Pi, follow https://docs.docker.com/engine/install/raspberry-pi-os/ If you're using 64 bit Raspberry Pi, follow https://docs.docker.com/engine/install/debian/ instead.

Configure Docker image

Within the Docker image, there's environment variables that need configuring. If you do not configure them, then you will be asked each time to enter the details.

AUTO_PHOTO_UPLOAD_USERNAME - This is the email adress that you use to sign in with on Pixelliott AUTO_PHOTO_UPLOAD_PASSWORD - This is the password that you use to sign in with on Pixelliott AUTO_PHOTO_UPLOAD_PROVIDER - This should be "Pixelliott" AUTO_PHOTO_UPLOAD_ALBUM_ID - (optional) The id of the album, if you have previously created AUTO_PHOTO_UPLOAD_ALBUM_NAME - Name of the album to which captured photos will be uploaded to AUTO_PHOTO_UPLOAD_ALBUM_VISIBLE - true / false - whether you want the newly created album to be visible or not AUTO_PHOTO_UPLOAD_ALBUM_VISIBLE_LOCATION - true / false - whether you want the newly created album to have visible locations or not AUTO_PHOTO_UPLOAD_PHOTO_VISIBLE - true / false - whether you want the newly created photos to be visible or not AUTO_PHOTO_UPLOAD_PHOTO_VISIBLE_LOCATION - true / false - whether you want the newly created photos to have visible locations or not

Build and run Docker image

Make sure you are in the root directory of the source code.

cd auto-photo-upload-master

The below command will build the docker image. You generally only need to do this once, unless you've made changes to the code.

sudo docker build -t auto-photo-upload-image .

The below command will create a container and run it using the above docker image. It's set to always be running and will start automatically on boot.

sudo docker run -it -d --restart always --name auto-photo-upload --privileged -v /dev:/dev auto-photo-upload-image

While SSH-ing, you can view logs by running the following command:

sudo docker attach auto-photo-upload