first commit
🚀 Deploy — JH Photomaton / 🔍 Vérification (push) Has been cancelled
🚀 Deploy — JH Photomaton / 🍓 Deploy sur le Pi (push) Has been cancelled

This commit is contained in:
2026-07-16 00:55:29 +02:00
commit 209f81aa3d
100 changed files with 17682 additions and 0 deletions
@@ -0,0 +1,548 @@
{
"_comment": "Config optimisee pour RPi4 2Go - Photomaton Les Sapins Du Web",
"_comment2": "Changements vs config originale marques avec OPTI:",
"common": {
"admin_password": "xxxxxxxxxxx",
"logging_level": "WARNING",
"_OPTI_logging": "OPTI: DEBUG -> WARNING. DEBUG consomme CPU+RAM en continu. Passer en INFO si besoin de diagnostiquer.",
"users_delete_to_recycle_dir": true
},
"actions": {
"image": [
{
"_comment": "Action principale sans remove_background - la plus legere en RAM",
"name": "HnB - normal",
"jobcontrol": {
"countdown_capture": 5.0
},
"processing": {
"remove_background": false,
"fill_background_enable": false,
"fill_background_color": "#ededed",
"img_background_enable": false,
"img_background_file": "userdata/demoassets/backgrounds/background.jpg",
"image_filter": "original",
"img_frame_enable": true,
"img_frame_file": "userdata/hopnbloc/frames/hnb cadre final.png",
"texts_enable": false,
"texts": []
},
"trigger": {
"ui_trigger": {
"show_button": true,
"_OPTI_show_button": "OPTI: false -> true. Au moins 1 action doit etre visible pour les utilisateurs.",
"title": "Photo",
"icon": "photo_camera",
"use_custom_color": true,
"custom_color": "#016911"
},
"keyboard_trigger": {
"keycode": ""
},
"gpio_trigger": {
"pin": "27",
"_OPTI_gpio": "OPTI: '' -> '27'. Declenchement direct via GPIO sans passer par Node-RED.",
"trigger_on": "pressed"
}
}
},
{
"_comment": "Avec remove_background - uniquement quand on change le fond",
"name": "Hnb - Etoile",
"jobcontrol": {
"countdown_capture": 5.0
},
"processing": {
"remove_background": true,
"fill_background_enable": true,
"fill_background_color": "#ededed",
"img_background_enable": true,
"img_background_file": "userdata/demoassets/backgrounds/background.jpg",
"image_filter": "original",
"img_frame_enable": true,
"img_frame_file": "userdata/hopnbloc/frames/hnb cadre final.png",
"texts_enable": false,
"texts": []
},
"trigger": {
"ui_trigger": {
"show_button": true,
"title": "Voie lactee",
"icon": "star_shine",
"use_custom_color": true,
"custom_color": "#016911"
},
"keyboard_trigger": {
"keycode": ""
},
"gpio_trigger": {
"pin": "",
"trigger_on": "pressed"
}
}
},
{
"name": "Hnb - Cailloux",
"jobcontrol": {
"countdown_capture": 5.0
},
"processing": {
"remove_background": true,
"fill_background_enable": true,
"fill_background_color": "#f2f0f0",
"img_background_enable": true,
"img_background_file": "userdata/hopnbloc/backgrounds/Wall-with-large-and-small-stones.jpg",
"image_filter": "original",
"img_frame_enable": true,
"img_frame_file": "userdata/hopnbloc/frames/hnb cadre final.png",
"texts_enable": false,
"texts": []
},
"trigger": {
"ui_trigger": {
"show_button": false,
"title": "Mur de pierre",
"icon": "brick",
"use_custom_color": true,
"custom_color": "#016911"
},
"keyboard_trigger": {
"keycode": ""
},
"gpio_trigger": {
"pin": "",
"trigger_on": "pressed"
}
}
},
{
"name": "Hnb - Light",
"jobcontrol": {
"countdown_capture": 5.0
},
"processing": {
"remove_background": true,
"fill_background_enable": true,
"fill_background_color": "#f2f0f0",
"img_background_enable": true,
"img_background_file": "userdata/hopnbloc/backgrounds/2149243965.jpg",
"image_filter": "original",
"img_frame_enable": true,
"img_frame_file": "userdata/hopnbloc/frames/calque photos final.png",
"texts_enable": false,
"texts": []
},
"trigger": {
"ui_trigger": {
"show_button": false,
"title": "Soiree branchee",
"icon": "nightlife",
"use_custom_color": true,
"custom_color": "#016911"
},
"keyboard_trigger": {
"keycode": ""
},
"gpio_trigger": {
"pin": "",
"trigger_on": "pressed"
}
}
},
{
"_comment": "OPTI: remove_background desactive car img_frame_enable est false et pas de fond custom utile",
"name": "Normal image",
"jobcontrol": {
"countdown_capture": 5.0
},
"processing": {
"remove_background": false,
"fill_background_enable": false,
"fill_background_color": "#2d68c4",
"img_background_enable": false,
"img_background_file": "userdata/demoassets/backgrounds/background.jpg",
"image_filter": "original",
"img_frame_enable": false,
"img_frame_file": "userdata/demoassets/frames/frame_image_photobooth-app.png",
"texts_enable": false,
"texts": []
},
"trigger": {
"ui_trigger": {
"show_button": false,
"title": "Normal",
"icon": "photo_camera",
"use_custom_color": true,
"custom_color": "#016911"
},
"keyboard_trigger": {
"keycode": ""
},
"gpio_trigger": {
"pin": "",
"trigger_on": "pressed"
}
}
},
{
"_comment": "LULU - sans remove_background car juste un cadre",
"name": "LULU",
"jobcontrol": {
"countdown_capture": 5.0
},
"processing": {
"remove_background": false,
"fill_background_enable": false,
"fill_background_color": "#ededed",
"img_background_enable": false,
"img_background_file": "userdata/demoassets/backgrounds/background.jpg",
"image_filter": "original",
"img_frame_enable": true,
"img_frame_file": "userdata/LSDW/lulu-versaire2.png",
"texts_enable": false,
"texts": []
},
"trigger": {
"ui_trigger": {
"show_button": false,
"title": "LULU",
"icon": "star_shine",
"use_custom_color": true,
"custom_color": "#016911"
},
"keyboard_trigger": {
"keycode": ""
},
"gpio_trigger": {
"pin": "",
"trigger_on": "pressed"
}
}
},
{
"name": "LULU - Etoile",
"jobcontrol": {
"countdown_capture": 5.0
},
"processing": {
"remove_background": true,
"fill_background_enable": true,
"fill_background_color": "#ededed",
"img_background_enable": true,
"img_background_file": "userdata/demoassets/backgrounds/background.jpg",
"image_filter": "original",
"img_frame_enable": true,
"img_frame_file": "userdata/LSDW/lulu-versaire2.png",
"texts_enable": false,
"texts": []
},
"trigger": {
"ui_trigger": {
"show_button": false,
"title": "LULU - Etoile",
"icon": "star_shine",
"use_custom_color": true,
"custom_color": "#016911"
},
"keyboard_trigger": {
"keycode": ""
},
"gpio_trigger": {
"pin": "",
"trigger_on": "pressed"
}
}
}
],
"_OPTI_removed_actions": "OPTI: Supprime 'background stars' (doublon de Hnb-Etoile) et 'Hnb-Etoile-copy' (copie). Garde 7 actions au lieu de 9.",
"collage": [
{
"name": "default action",
"jobcontrol": {
"countdown_capture": 2.0,
"countdown_capture_second_following": 1.0,
"ask_approval_each_capture": true,
"approve_autoconfirm_timeout": 15.0,
"show_individual_captures_in_gallery": true
},
"processing": {
"capture_remove_background": true,
"capture_fill_background_enable": true,
"capture_fill_background_color": "white",
"capture_img_background_enable": false,
"capture_img_background_file": null,
"canvas_width": 1920,
"canvas_height": 1280,
"merge_definition": [
{
"description": "left",
"pos_x": 160,
"pos_y": 220,
"pos_z": 0,
"width": 510,
"height": 725,
"rotate": 0,
"predefined_image": null,
"image_filter": "FilterPilgram2.earlybird"
},
{
"description": "middle predefined",
"pos_x": 705,
"pos_y": 66,
"pos_z": 0,
"width": 510,
"height": 725,
"rotate": 0,
"predefined_image": "userdata/demoassets/predefined_images/photobooth-collage-predefined-image.png",
"image_filter": "original"
},
{
"description": "right",
"pos_x": 1245,
"pos_y": 220,
"pos_z": 0,
"width": 510,
"height": 725,
"rotate": 0,
"predefined_image": null,
"image_filter": "FilterPilgram2.reyes"
}
],
"canvas_fill_background_enable": false,
"canvas_fill_background_color": "#2e6f40",
"canvas_img_background_enable": false,
"canvas_img_background_file": null,
"canvas_img_front_enable": true,
"canvas_img_front_file": "userdata/demoassets/frames/pixabay-poster-2871536_1920.png",
"canvas_texts_enable": true,
"canvas_texts": [
{
"text": "Have a nice day :)",
"pos_x": 200,
"pos_y": 1100,
"rotate": 1,
"font_size": 40,
"font": "userdata/demoassets/fonts/Roboto-Bold.ttf",
"color": "#333"
}
]
},
"trigger": {
"ui_trigger": {
"show_button": false,
"title": "Collage",
"icon": "auto_awesome_mosaic",
"use_custom_color": false,
"custom_color": "#196cb0"
},
"keyboard_trigger": {
"keycode": "c"
},
"gpio_trigger": {
"pin": "22",
"trigger_on": "pressed"
}
}
}
],
"animation": [],
"video": [],
"multicamera": []
},
"share": {
"sharing_enabled": true,
"actions": [
{
"_comment": "Action visible par les utilisateurs - envoie la demande a Node-RED pour la file d'attente SQLite + dashboard admin",
"name": "Demande d'impression",
"handles_images_only": true,
"processing": {
"share_command": "curl http://127.0.0.1:1880/api/photobooth-custom/ask_print?filename={filename}",
"ask_user_for_parameter_input": false,
"parameters_dialog_caption": "Make your choice!",
"parameters_dialog_action_icon": "print",
"parameters_dialog_action_label": "GO",
"parameters": [],
"share_blocked_time": 1,
"max_shares": 0
},
"trigger": {
"ui_trigger": {
"show_button": true,
"title": "Demander l'impression ?",
"icon": "photo_prints",
"use_custom_color": true,
"custom_color": "#ab0a78"
},
"keyboard_trigger": {
"keycode": ""
},
"gpio_trigger": {
"pin": "",
"trigger_on": "pressed"
}
}
},
{
"_comment": "Action cachee - appelee par Node-RED dashboard quand l'admin valide l'impression",
"name": "Impression directe",
"handles_images_only": true,
"processing": {
"share_command": "/home/pi/photobooth-data/script/script_print.sh \"{filename}\" \"{media_type}\" \"{action_config_name}\" \"{copies}\"",
"ask_user_for_parameter_input": false,
"parameters_dialog_caption": "Combien de copies ?",
"parameters_dialog_action_icon": "print",
"parameters_dialog_action_label": "Imprimer",
"parameters": [
{
"key": "copies",
"label": "Copies",
"ui_type": "int",
"default": "1",
"valid_min": "1",
"valid_max": "2"
}
],
"share_blocked_time": 60,
"_OPTI_blocked_time": "OPTI: 120 -> 60s de blocage.",
"max_shares": 0
},
"trigger": {
"ui_trigger": {
"show_button": false,
"title": "Impression directe",
"icon": "print",
"use_custom_color": true,
"custom_color": "#b01992"
},
"keyboard_trigger": {
"keycode": ""
},
"gpio_trigger": {
"pin": "",
"trigger_on": "pressed"
}
}
}
],
"_OPTI_removed_share_actions": "OPTI: Supprime 'Pouet' (test), 'Mailing action' (demo), 'Printing copies' (doublon). Garde 'Demande impression' (via Node-RED SQLite) + 'Impression directe' (via script_print.sh). 2 actions au lieu de 5."
},
"qrshare": {
"enabled": false,
"shareservice_url": "https://photobooth-app.org/extras/shareservice-landing/",
"shareservice_apikey": "changedefault!",
"enabled_custom": true,
"share_custom_qr_url": "https://photomaton.lessapinsduweb.com/sharepage/#?url=https://photomaton.lessapinsduweb.com/media/full/{identifier}"
},
"filetransfer": {
"enabled": false,
"target_folder_name": "photobooth"
},
"mediaprocessing": {
"full_still_length": 2304,
"_OPTI_full_still": "OPTI: 4608 -> 2304. La Selphy CP1300 imprime en 300dpi sur 4x6 pouces = 1200x1800px. 2304px est largement suffisant et divise la RAM par 4 pour le traitement d'image.",
"preview_still_length": 1200,
"_OPTI_preview": "OPTI: 2304 -> 1200. Pour l'affichage web/QR share, 1200px est largement suffisant.",
"thumbnail_still_length": 480,
"_OPTI_thumbnail": "OPTI: 960 -> 480. Les thumbnails de la galerie n'ont pas besoin d'etre si grands.",
"video_bitrate": 3000,
"video_compatibility_mode": true,
"remove_background_model": "modnet",
"fileformat_animations": "webp",
"fileformat_multicamera": "mp4"
},
"uisettings": {
"PRIMARY_COLOR": "#196cb0",
"SECONDARY_COLOR": "#4283b8",
"theme": "system",
"show_gallery_on_frontpage": true,
"show_admin_on_frontpage": true,
"admin_button_invisible": true,
"show_frontpage_timeout": 5,
"enable_automatic_slideshow": true,
"show_automatic_slideshow_timeout": 120,
"enable_livestream_when_idle": false,
"enable_livestream_when_active": true,
"livestream_mirror_effect": false,
"livestream_blurredbackground": false,
"livestream_blurredbackground_high_framerate": false,
"enable_livestream_frameoverlay": true,
"livestream_frameoverlay_image": "userdata/hopnbloc/frames/hnb cadre final.png",
"livestream_frameoverlay_mirror_effect": false,
"FRONTPAGE_TEXT": "<div> <div class=\"fixed-right text-white text-right\" style=\"margin-top: 45px; text-shadow: 4px 4px 4px #666;\"> <div class=\"text-h5\"> \tSi vous utilisez le photomaton, vous nous autorisez \u00e0 utiliser les photos. <br> \tCe photomaton est propos\u00e9 en libre-service par 'Les Sapins Du Web'. <br> \tLes photos peuvent \u00eatre imprim\u00e9es sur demande et sur dons libre. (2 Photos maximum par personne) <br> \tMerci de votre compr\u00e9hension. \t</div> <div class=\"text-h3 text-weight-bold\">Comp\u00e9t Hop'N Bloc !!!!!</div> </div> <div class=\"q-page-sticky row flex-center fixed-bottom-right q-page-sticky--shrink q-mb-lg q-mr-lg\"> <img src=\"/userdata/LSDW/logo/logo.jpeg\" alt=\"LSDW icon\" style=\"width:160px;height:160px;\"> </div> </div>",
"TAKEPIC_MSG_TIME": 0.5,
"TAKEPIC_MSG_TEXT": "\ud83d\ude03",
"AUTOCLOSE_NEW_ITEM_ARRIVED": 30,
"GALLERY_EMPTY_MSG": "<div class=\"fixed-center text-h2 text-weight-bold text-center text-white\" style=\"text-shadow: 4px 4px 4px #666;\">Pas encore de photos ! \ud83e\udd37\u200d\u2642\ufe0f<br>Appuyez sur le bouton ! <br>\ud83d\udcf7\ud83d\udc95</div>",
"_OPTI_gallery_empty": "OPTI: Traduit en francais",
"gallery_show_qrcode": true,
"qrcode_text_above": "\u2b07\ufe0f T\u00e9l\u00e9charger la photo!",
"qrcode_text_below": "Scannez le QR code ci-dessus pour t\u00e9l\u00e9charger cette photo. ( Vous devez \u00eatre connect\u00e9 au Wifi Photomaton)",
"qrcode_link_codes": true,
"gallery_show_filter": false,
"gallery_show_download": false,
"gallery_show_delete": false,
"gallery_show_shareprint": false
},
"backends": {
"enable_livestream": true,
"retry_capture": 3,
"countdown_camera_capture_offset": 0.2,
"index_backend_stills": 0,
"index_backend_video": 0,
"index_backend_multicam": 0,
"group_backends": [
{
"enabled": true,
"description": "pi camera module V3",
"backend_config": {
"orientation": "1: 0\u00b0",
"backend_type": "Picamera2",
"camera_num": 0,
"CAPTURE_CAM_RESOLUTION_WIDTH": 2304,
"CAPTURE_CAM_RESOLUTION_HEIGHT": 1536,
"_OPTI_capture_res": "OPTI: 4608x3072 -> 2304x1536. Divise la RAM par 4 pour chaque capture. Toujours suffisant pour impression Selphy 300dpi.",
"PREVIEW_CAM_RESOLUTION_WIDTH": 1152,
"PREVIEW_CAM_RESOLUTION_HEIGHT": 768,
"_OPTI_preview_res": "OPTI: 2304x1536 -> 1152x768. La preview n'a pas besoin d'etre aussi grande que la capture.",
"LIVEVIEW_RESOLUTION_WIDTH": 750,
"LIVEVIEW_RESOLUTION_HEIGHT": 500,
"framerate_still_mode": 20,
"framerate_video_mode": 25,
"frame_skip_count": 4,
"optimized_lowlight_short_exposure": false,
"videostream_quality": "MEDIUM",
"original_still_quality": 90,
"_OPTI_quality": "OPTI: 100 -> 90. Difference visuelle imperceptible, fichiers 30-40% plus petits = moins de RAM et I/O disque."
}
}
]
},
"hardwareinputoutput": {
"keyboard_input_enabled": false,
"gpio_enabled": true,
"_OPTI_gpio": "OPTI: false -> true. Active le GPIO natif pour le bouton, permet de se passer de Node-RED.",
"gpio_pin_shutdown": 17,
"gpio_pin_reboot": 18,
"gpio_pin_job_next": 27,
"gpio_pin_job_reject": 22,
"gpio_pin_job_abort": 20
},
"misc": {
"secret_key": "CHANGER_CETTE_CLE_SECRETE",
"_OPTI_secret": "OPTI: Changer la cle par defaut ! Generer avec: python3 -c \"import secrets; print(secrets.token_hex(32))\"",
"cmd_shutdown": "shutdown now",
"cmd_reboot": "reboot"
}
}