little-backup-box icon indicating copy to clipboard operation
little-backup-box copied to clipboard

This software turns a single-board computer into a versatile, pocket-sized backup solution. Especially for digital photography, this is the solution for backing up images and media files on mass stora...

Little Backup Box

Dmitri Popov has entrusted me with the further maintenance of Little Backup Box today. Thank you Dima for this great project. I very much hope you stay connected to the project!
26.12.2021

NEWS

  • 2022/04/03: A secondary default backup mode has been added. This allows you to configure a automatically starting network backup after a local backup.
  • 2022/01/16: The Wiki explains now, how to connect a LCD-display.
  • 2022/01/12: Camera-backup: Paths to backup can be configured for each device.
  • 2022/01/08: Add option to backup only specific directories from cameras or smartphones.
  • 2022/01/08: Remove upload.php. This is performed by the filemanager much better now.
  • 2021/12/31: Add language support for display-messages Caution: The translations were carried out by machine and could cause unpleasant feelings in native speakers. Help is particularly welcome here. Technically, working on the language files is extremely easy. Would you help?
  • 2021/12-27: Add power-off after idle time. Configuration in "Settings".
  • 2021/12/21: Add language support for French, Spanisch and German
  • 2021/12/13: There is a one-click-update-function
  • 2021/12/18: Select color-themes and background-images. Design is more colorful now to make orientation easier.

The web UI

The web UI on a smartphone. Full function in pocket-size.

Developement status

Little Backup Box is still under construction.
Please test your Installation carefully before productive use!
Final tests offered minor bugs (fixed), it looks good for the moment!
Little Backup Box has undergone massive development over the past few months. At the moment, no further major innovations are planned. Instead, the focus should now be on finding and correcting any errors and making the system even more reliable.
Hence the request: Test, test, test!
Please give feedback on problems or translation errors but also on the successful use, if possible with details of your equipment.

Some major developement-steps:

  • Multiple cloud-services can be used as storage. Check for rclone at the settings.
  • Power-off after idle time. Configuration in "Settings".
  • Mounting devices is managed by UUIDs. If a device disconnects*1, it can be automatically reconnected. The process becomes much more robust.
  • Some tools are added (check device, repair device)
  • Installation of components (comitup, mejiro) is automated
  • It has a full powered webserver now, ssl as standard
  • Setup is form-based
  • Setup can be ex- and imported as zip-file.
  • Web interface and Samba-Server can be configured for password-protection
  • sync to your rsync-server is possible
*1 Maybe because of power-failures sometimes the connection to a device is disrupted. After reconnecting, it gets a new drive-identifier (e.g. sda becomes sdb) while the drives UUID is still the same.

... a lot of stuff! Please let me know about problems.

Please mind the wiki!

As there is no manual available anymore, the github-wiki should replace it one day: https://github.com/outdoorbits/little-backup-box/wiki. It's not particularly detailed yet, but it can certainly help with the most common questions.

Installation

  1. Create a bootable SD card with the latest version of Raspberry Pi OS Lite (32 or 64 bit) for use with Little Backup Box.
    An easy way is to use Raspberry Pi Imager. Please select "Raspberry Pi OS (other)" > "Raspberry Pi OS Lite (32-bit)" or "Raspberry Pi OS Lite (64-bit)". If you need, you can enable ssh by Raspberry Pi Imager: Shift+Ctrl+x opens an options-dialog, where you can activate ssh. Write ...
  2. If you couldn't activate ssh in the previous step, just add an empty (text-)file "ssh" to the new boot-partition to enable ssh.
  3. Do not change any more settings (language!).
  4. Make sure that your Raspberry Pi is connected to the internet.
  5. Run the following command on the Raspberry Pi:
    curl -sSL https://raw.githubusercontent.com/outdoorbits/little-backup-box/main/install-little-backup-box.sh | bash
    or to save the error-messages during installation to disk:
    curl -sSL https://raw.githubusercontent.com/outdoorbits/little-backup-box/main/install-little-backup-box.sh | bash 2> install-error.log
  6. You will be asked if you want to install mejiro and comitup.
    Mejiro is an easy-to-use PHP web app for instant photo publishing.
    The comitup service establishes wifi connectivity for a headless Linux system, using wifi as the only access mechanism to the system. Access the box by its own wifi hotspot or connect it to a local wifi access point.
  7. Don't worry: Please note this in case you installed via wlan/ssh and decided to install comitup. If your installation-screen scrolls down and seems to freeze at something like Setting up python3-networkmanager (2.2-1) ..., this doesn't mean anything went wrong. Comitup is installed at the end of the process and when it's comming up, it changes your wlan-network. Your ssh-session is broken and you will not get any more information. In the background the installation finishes and a few seconds later the pi reboots. What you can't see anymore is a short information, how to access Little Backup Box. In your setting, this would be the information you need:

    ********************************************************************************************
    *** How to proceed:
    ***
    *** Your raspberrys wlan-configuration has been removed by comitup now. Because comitup has no
    *** access-data for your wlan yet, it can't connect to it and will start as a wlan-hotspot:
    *** ssid=little-backup-box-nnnn (nnnn is a random number).
    ***
    *** Please connect your mobile or your notebook to this wlan.
    *** If you want to configure comitup now, navigate to http://10.41.0.1 (http, not https!)
    ***
    *** Alternatively can reach the web UI of Little Backup Box when you are connected to its
    *** hotspot as follows:
    ***
    *** https://10.41.0.1 (secure, certificate can't be verified automatically, please confirm it)
    *** http://10.41.0.1:8000 (insecure)
    ***
    *** Please use the settings of the web UI to optimally adapt the Little Backup Box for you.
    ***
    *** If you have further questions, please check the wiki first:
    *** https://github.com/outdoorbits/little-backup-box/wiki
    ***
    *** We are always happy to receive your feedback!
    ********************************************************************************************
    ... using comitup, you now have to connect your computer to the wlan little-backup-box-nnnn to access the new IP 10.41.0.1.

Start

If everything went well, it's done! Open a browser and enter https://IP.OF.YOUR.BOX or http://IP.OF.YOUR.BOX:8000
Have fun!

Update

To update you can perform a webUI-based one-click update. Just follow the instructions at the wiki.

Known problems

  • Samba does not show external mounts.
    Little Backup Box mounts external storage according to the following scheme:
    1. the uuid of the device is determined:
      lsblk -p -P -o PATH,MOUNTPOINT,UUID
      The line for the USB memory sda1 gives:
      PATH="/dev/sda1" MOUNTPOINT="" UUID="B20D-9734"
    2. The mount is triggered through the web interface (apache2, user www-data in sudoers). A second called bash script does the following:
      sudo mount --uuid B20D-9734 /media/storage/ -o umask=0
    From the point of view of the Little Backup Box web UI and its scripts, the mounts are now available. However, from the point of view of samba and from the command line (as root), they are not mounted. Even the command
    sudo mount
    gives no line for the mount.

    However, if I run the above mount command as user pi (member of sudoers), the mount is also available for the web UI and for samba.
    It gets even crazier when I unmount this mount via the web interface (Tools). The mount has now disappeared from the web interface, but from the command line it is retained and I still have full access.
    For me it's a miracle. Any idea?

Contribute

  • If you've found a bug or have a suggestion for improvement, open an issue in the Issues section.
  • If you could spend a bit of time and add a new language - great, just tell me, it's easy!
  • To add a new feature or fix issues yourself, follow the following steps.
  1. Open an issue to discuss your idea.
  2. Fork the project's repository.
  3. Create a feature branch using the git checkout -b new-feature command.
  4. Add your new feature or fix bugs and run the git commit -am 'Add a new feature' command to commit changes.
  5. Push changes using the git push origin new-feature command.
  6. Submit a pull request (in your fork at github.com).

Authors

Stefan Saam, founder is Dmitri Popov

Contributors

  • Dmitri Popov
  • Kerry Staite (STL files)
  • munecito (Spanish corrections added)

License

The GNU General Public License version 3