/photobooth

A Photobooth web interface for Linux and Windows.

Primary LanguagePHPMIT LicenseMIT

Photobooth v3

!!!

!!!

A Photobooth web interface for Linux and Windows.

Photobooth was initially developped by Andre Rinas to use on a Raspberry Pi, you can find his source here.

This is my personal Photobooth fork with a lot of extras and improvements.
(The full changelog can be found inside the Photobooth Wiki.)

Chat on Telegram

Translate on Crowdin

Lint gulp-sass

😍 Features

  • Works on Windows and Linux.
    • Under Windows digiCamControl by Duka Istvan can be used to control the camera and to take pictures.
    • Under Linux gPhoto2 is used to control the camera and to take pictures.
  • Images are processed with GD.
  • Photobooth caches all generated QR-Codes, Thumbnails and Prints.
  • Updated PhotoSwipe Gallery
  • Standalone Gallery (localhost/gallery.php).
  • Slideshow via Gallery or standalone Gallery at localhost/slideshow.
  • Access login via localhost/login instead localhost/login.php.
  • Offline manual with settings explained at localhost/manual.
  • Offline FAQ at localhost/manual/faq.php.
  • Disk usage page, access via admin panel or directly at localhost/admin/diskusage.php.
  • Settings can be changed via Admin Panel at (localhost/admin):
    • Multi-language support:
    • Login to protect Admin Panel, Start page and/or Manual & FAQ can be enabled.
    • Hardware Button functionality, supports two separate modes of operation (select via admin panel):
      • Button Mode: Distinct hardware buttons can be connected to distinct GPIOs. Each button will trigger a separate functionality (i.e. take photo).
      • Rotary Mode: A rotary encoder connected to GPIOs will drive the input on the screen. This enables to use the rotary to scroll through the Photobooth UI buttons, and click to select actions.
    • Gallery:
      • Order pictures in gallery ascending oder descending by picture age.
      • Hide the gallery.
      • allow to adjust PhotoSwipe Gallery config via Adminpanel, also allow to use some PhotoSwipe functions and make more PhotoSwipe settings available (settings explained inside the manual):
        • Mouse click on image should close the gallery (enable/disable)
        • Close gallery if clicked outside of the image (enable/disable)
        • Close picture on page scroll (enable/disable)
        • Close gallery when dragging vertically and when image is not zoomed (enable/disable)
        • Show image counter (enable/disable)
        • Show PhotoSwipe fullscreen button (enable/disable)
        • Show PhotoSwipe zoom button (enable/disable)
        • PhotoSwipe history module (enable/disable)
        • Pinch to close gallery (enable/disable)
        • Toggle visibility of controls/buttons by tap (enable/disable)
        • allow to adjust PhotoSwipe background opacity (0-1)
        • Loop images (enable/disable)
        • Slide transition effect (enable/disable)
        • Swiping to change slides (enable/disable)
      • gallery: button to delete an image, enable by default
      • Choose thumbnail size:
        • XS = max 360px
        • S = max 540px
        • M = max 900px
        • L = max 1080px
        • XL = max 1260px"
    • Choose between date-formatted or random image names.
    • Choose an image filter after taking a picture.
    • QR-Code to allow downloading pictures from your Photobooth.
    • Pictures can be directly downloaded from the gallery.
    • Print feature:
      • Optional: Print a frame on your picture
      • Optional: Print text on your picture.
      • Optional: Print QR-Code on the right side of your picture.
      • Optional: Auto print function
      • Optional: allow to delay auto print
      • Optional: allow to adjust time "Started printing! Please wait..." is visible
      • Optional: allow to trigger print via defined key
      • Optional: options to show the print button independent (e.g. can be only visible on gallery)
    • Pictures can be sent via e-mail.
    • Different Live Preview options
    • Event specific (e.g. wedding, birthday) config to show a symbol (e.g. heart) between some text on the start page.
    • Chroma keying
    • Photo collage function: take pictures in a row with or without interruption and let it generate a collage out of it. Choose between different collage layouts!
    • Save pictures with a Polaroid effect.
    • Adjust take picture and print commands.
    • Adjust the style of Photobooth via admin panel.
  • ... And many more options to adjust and style Photobooth for your personal needs

📷 Screenshots

⚙️ Prerequisites

  • gphoto2, if used on a Raspberry for DSLR control
  • digiCamControl, if used on Windows for DSLR control
  • Apache, NGINX or Lighttpd

🔧 Installation & Troubleshooting

Please follow the installation instructions in our Photobooth-Wiki to setup Photobooth.

If you're having trouble or questions please take a look at our FAQ before opening a new issue.

For local testing and development, the docker setup can be used with docker-compose up --build.

🔍 Changelog

Please take a look at the changelog in our Photobooth Wiki.

⚠️ Security advice

Photobooth is not hardened against any kind of targeted attacks. It uses user defined commands for tasks like taking photos and is allowed to replace its own files for easy updating. Because of this it's not advised to operate Photobooth in an untrusted network and you should absolutely not make Photobooth accessible through the internet without heavy modifications!

©️ License

Photobooth source is licensed under the MIT license.

Once build, Photobooth incorporates several parts and optimizations that are covered by a different license which could apply to Photobooth as well.
All dependencies include their respective LICENSE files.

🎉 Donation

If you like my work and like to keep me motivated you can buy me a coconut water:

Donate

🎓 Tutorial

Raspberry Pi Weddingphotobooth (german)
Raspberry Pi Fotobox für Hochzeiten und Geburtstage (German)
Raspberry Pi Photobooth in a classic vintage plate camera

👏 Contributors and thanks to