{"id":15197010,"url":"https://github.com/jomy10/photobooth","last_synced_at":"2026-02-23T00:37:24.008Z","repository":{"id":230460908,"uuid":"779436467","full_name":"Jomy10/photobooth","owner":"Jomy10","description":"A photobooth application for the Raspberry Pi and the Pi Camera Module","archived":false,"fork":false,"pushed_at":"2024-03-30T11:24:47.000Z","size":67,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-27T02:55:04.360Z","etag":null,"topics":["camera","photobooth","raspberry-pi","raspberry-pi-camera"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jomy10.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-29T20:49:16.000Z","updated_at":"2024-05-21T14:42:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"77dc2a69-60cd-41d8-b42a-a10827728896","html_url":"https://github.com/Jomy10/photobooth","commit_stats":{"total_commits":17,"total_committers":1,"mean_commits":17.0,"dds":0.0,"last_synced_commit":"188c1174e9eac10b3653c0f96e376c5dcdc04231"},"previous_names":["jomy10/photobooth"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jomy10%2Fphotobooth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jomy10%2Fphotobooth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jomy10%2Fphotobooth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jomy10%2Fphotobooth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jomy10","download_url":"https://codeload.github.com/Jomy10/photobooth/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241570921,"owners_count":19984002,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["camera","photobooth","raspberry-pi","raspberry-pi-camera"],"created_at":"2024-09-28T00:23:03.666Z","updated_at":"2026-02-23T00:37:23.987Z","avatar_url":"https://github.com/Jomy10.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e📸 Photobooth\u003c/h1\u003e\n  \u003cp\u003eA photobooth application for the Raspberry Pi and Pi camera\u003c/p\u003e\n\u003c/div\u003e\u003cbr/\u003e\n\nhttps://github.com/user-attachments/assets/19b1c76b-2000-4e29-a9ea-37e35ef21a2d\n\n**Navigation**\n- [Setup](#setup)\n  - [Hardware](#hardware)\n  - [Software](#software)\n- [Install](#install)\n  - [Download](#download)\n  - [Building from source](#building-from-source)\n- [Configuration](#configuration)\n  - [Automatically mounting USB devices](#automatically-mounting-usb-devices)\n  - [Permissions](#permissions)\n  - [Boot config](#boot-config)\n- [Additional notes](#additional-notes)\n- [Questions](#questions)\n- [License](#license)\n\n# Setup\n\n## Hardware\n\nThe application has been tested and works on the following configuration:\n- [Raspberry Pi 4B (2GB RAM model)](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/)\n- [Wimaxit M728 7\" Touch Screen](https://wimaxit.com/products/wimaxit-raspberry-pi-7-touch-screen-display-monitor-1024x600-usb-powered-hdmi-screen-monitor-ips-178-with-rear-speakers-stand-for-raspberry-4-3-2-laptop-pc)\n- [Raspberry Pi Camera Module v3](https://www.raspberrypi.com/products/camera-module-3/)\n\nAll three products come with the necesarry pieces to connect them together.\n\nThis application has not been tested on other hardware, but I am open to pull\nrequests adding support for them, or simply letting me know this application\nalso works on a different hardware configuration.\n\nIn addition to the pi, screen and camera, a USB stick also needs to be connected and mounted on the pi (see the [configuration section for auto mounting USB storage devices](#automatically-mounting-usb-devices)). Images will be saved on this USB stick for easy transfering to another computer.\n\n![back](https://github.com/user-attachments/assets/f9275a29-b301-4121-b4ad-38c7947d53bb)\n![front](https://github.com/user-attachments/assets/48ee3539-b253-4d08-8f4f-0b7b884b3347)\n\n## Software\n\n1. Install a new copy of **Raspbery Pi OS Lite (64-bit)** on your Raspberry Pi's SD-card\n2. [For convenience, you can change the font size of the terminal using `sudo dpkg-reconfigure console-setup`](https://www.raspberrypi-spy.co.uk/2014/04/how-to-change-the-command-line-font-size/)\n3. Enable auto-login on boot:\n    - `sudo raspi-config`\n    - go to *System Options*\n    - go to *Boot / Auto Login*\n    - Select *Console Autologin*\n4. [Edit the boot config](#boot-config)\n5. [Install the photobooth software](#Install); either [build it from soure](#building-from-source) or [download the latest binary](#download)\n6. [Configure the photobooth software](#configuration)\n7. Start photobooth at boot:\n    add the following to the end of ~/.bashrc:\n    ```sh\n    # Replace this with the path to your config file (or comment it out to\n    # not apply any configuration)\n    export PH_CONFIG=config.yaml\n\n    # Replace this with the path to the photobooth executable\n    # This line will start the application\n    ./photobooth\n    ```\n8. Reboot the pi: `reboot`\n\n# Install\n\nInstall the required dependencies:\n\n```sh\nsudo apt-get install \\\n  libinput-dev \\\n  libcamera-dev \\\n  libdrm-dev\n```\n\nNow either [download](#download) the latest binary, or [build from source](#building-from-source).\n\n## Download\n\nPre-compiled binaries can be found in the [the latest release](https://github.com/Jomy10/photobooth/releases/latest).\n\nYou can also use this one-liner to download the latest release:\n```sh\nwget \\\n    \"$( \\\n        curl -s https://api.github.com/repos/jomy10/photobooth/releases/latest |\n        jq -r '.assets[] | select(.name==\"Photobooth\") | .browser_download_url' \\\n    )\" -o photobooth \u0026\u0026 chmod +x photobooth\n```\n\nThe command requires `jq` to parse json, which can be downloaded with `sudo apt-get install jq`.\n\n## Building from source\n\nThis program uses the experimental `mpmc` channels, so it requires nightly.\n\nDownload Noto Emoji and Space Mono Bold [Google fonts](https://fonts.google.com/noto/specimen/Noto+Emoji?selection.family=Noto+Color+Emoji|Noto+Emoji:wght@300..700|Space+Mono:ital,wght@0,400;0,700;1,400;1,700)\n(or change the used fonts in code) and place them in the root directory of the project.\n\n*Download Noto Emoji, not Noto Color Emoji. Color emojis are not supported*.\n\n```sh\ncargo +nightly build --release\n```\n\nThe application will now be located at `target/release/photobooth`.\n\n# Configuration\n\nThe `PH_CONFIG` environment variable can be set to point to a config file (yaml).\nDefinition and defaults can be found in [config.rs](./src/config.rs). Here,\ntranslations can be added tailored to the end user of the photobooth.\n\n## Automatically mounting USB devices\n\nThe photobooth application expects a USB storage device to be mounted. Using the\n[automount](./automount) utility in this repository, you can set up a service\nto automatically mount all USB devices connected to the PI.\n\n## Permissions\n\nMake sure the user running the application has the write rights to /var/log and the mount point of your USB device.\n\n## Boot config\n\nThis should be present in /boot/firmware/config.txt\n\n```\n# Automatically load overlays for detected cameras\ncamera_auto_detect=1\n\n# Automatically load overlays for detected DSI displays\ndisplay_auto_detect=1\n\n# Automatically load initramfs files, if found\nauto_initramfs=1\n\n# Enable DRM VC4 V3D driver\ndtoverlay=vc4-kms-v3d\nmax_framebuffers=2\n\ndtoverlay=cma,cma-256\n```\n\nReboot if necessary:\n\n```sh\nsudo reboot\n```\n\n# Additional notes\n\n- I have used a PI with 2GB of RAM, 1GB might not be enough.\n\n# Questions\n\nFor any questions, feel free to [open an issue](https://github.com/Jomy10/photobooth/issues/new/choose).\n\n# License\n\n[GNU GPL](LICENSE).\n\nPhotobooth: Photobooth software for touch screen devices\u003cbr/\u003e\nCopyright (C) 2024 Jonas Everaert\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\n[Dependencies may be licensed differently](LICENSE_DEPENDENCIES).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjomy10%2Fphotobooth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjomy10%2Fphotobooth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjomy10%2Fphotobooth/lists"}