{"id":20659049,"url":"https://github.com/berrnd/piksi","last_synced_at":"2025-04-19T13:24:49.147Z","repository":{"id":152896701,"uuid":"627009091","full_name":"berrnd/piksi","owner":"berrnd","description":"A web-based self-hosted media gallery focused on simplicity. It displays photos, videos and audios from an album based folder structure in an easy to use yet beautiful way.","archived":false,"fork":false,"pushed_at":"2023-12-16T14:10:55.000Z","size":17333,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-12-16T18:29:48.769Z","etag":null,"topics":["gallery","image-gallery","ownyourdata","photo-gallery","photos","php","self-hosted"],"latest_commit_sha":null,"homepage":"https://piksi-demo.berrnd.xyz","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/berrnd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"custom":["https://berrnd.de/say-thanks?project=Piksi"]}},"created_at":"2023-04-12T15:44:54.000Z","updated_at":"2023-12-16T18:29:48.769Z","dependencies_parsed_at":null,"dependency_job_id":"0eece762-4856-4c43-8481-c0f200731b45","html_url":"https://github.com/berrnd/piksi","commit_stats":null,"previous_names":[],"tags_count":9,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berrnd%2Fpiksi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berrnd%2Fpiksi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berrnd%2Fpiksi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berrnd%2Fpiksi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berrnd","download_url":"https://codeload.github.com/berrnd/piksi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224957025,"owners_count":17398360,"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":["gallery","image-gallery","ownyourdata","photo-gallery","photos","php","self-hosted"],"created_at":"2024-11-16T18:29:47.161Z","updated_at":"2024-11-16T18:29:47.701Z","avatar_url":"https://github.com/berrnd.png","language":"PHP","funding_links":["https://berrnd.de/say-thanks?project=Piksi"],"categories":[],"sub_categories":[],"readme":"-----\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg alt=\"Logo\" height=\"50\" src=\"https://raw.githubusercontent.com/berrnd/piksi/main/public/img/logo.svg?sanitize=true\" /\u003e\n\u003ch2\u003eA web-based self-hosted media gallery focused on simplicity.\u003c/h2\u003e\n\u003ch3\u003eIt displays photos, videos and audios from an album based folder structure in an easy to use yet beautiful way.\u003c/h3\n\u003cem\u003e\u003ch4\u003eThis is a hobby project by \u003ca href=\"https://berrnd.de\"\u003eBernd Bestel\u003c/a\u003e\u003c/h4\u003e\u003c/em\u003e\n\u003c/div\u003e\n\n-----\n\n## Give it a try\n\n- Public demo of the latest stable version (`release` branch) \u0026rarr; [https://piksi-demo.berrnd.xyz](https://piksi-demo.berrnd.xyz)\n\n## Features / Motivation\n\nLately I've been digitizing a large number of photos and wanted to make them accessible to older family members. There are a lot of web-based image galleries out there and I kind of tried them all, but none of them met my expectations regarding a simple user interface that would work for people who didn't grow up with computers.\n\nI wanted to have a tool that\n\n- displays media files from an existing folder structure (one album per folder, unlimited subfolders are supported)\n- uses the folder name for albums or alternatively a cover image (configurable naming convention)\n- uses pre-generated thumbnails (from a subfolder per album, again configurable naming convention)\n- has a strong focus on simplictiy - that explicitly means:\n  - no file management, sharing or similar gallery organization options (it's just a viewer)\n  - any technical information is hidden by default, optionally filenames can be shown\n  - it doesn't have user management (means no authentication, so run this in a trusted local network only)\n\nto make those family memories of yesterday accessible on devices of today, but without the overly complex stuff which practically often discourages said target audience to have fun with modern things. I haven't found that, so this is Piksi.\n\n## Questions / Help / Bug Reports / Feature Requests\n\nPlease use the [Issue Tracker](https://github.com/berrnd/piksi/issues/new/choose) for any requests.\n\n## How to install\n\nPiksi is technically a pretty simple PHP application, so the basic notes to get it running are:\n\n- Unpack the [latest release ZIP](https://github.com/berrnd/piksi/releases/latest)\n- Copy `config-dist.php` to `data/config.php` + edit to your needs (all config options should be self-explanatory based on the comments there)\n- Ensure that the `data` directory is writable\n- The webserver root should point to the `public` directory\n- Include `try_files $uri /index.php$is_args$query_string;` in your location block if you use nginx\n  - Or disable URL rewriting (see the option `DISABLE_URL_REWRITING` in `data/config.php`)\n\nAlternatively clone this repository (the `release` branch always references the latest released version) and install Composer and Yarn dependencies manually.\n\n### Platform support\n\n- PHP 8.2 or 8.3\n  - Required PHP extensions: `fileinfo`, `ctype`, `intl`, `zlib`, `mbstring`\n- Recent Firefox, Chrome or Edge\n\n## How to update\n\n- Overwrite everything with the [latest release ZIP](https://github.com/berrnd/piksi/releases/latest) while keeping the `data` directory\n- Check `config-dist.php` for new configuration options and add them to your `data/config.php` where appropriate (the default values from `config-dist.php` will be used for not in `data/config.php` defined settings)\n- Empty the `data/viewcache` directory\n\n## Localization\n\nPiksi is fully localizable - the default language is English (integrated into code), a German localization is always maintained by me.\n\nYou can easily help translating Piksi:\n\n- Copy `localization/en.po` to e.g. `localization/it.po` to start the italian translation\n- Translate all strings (lines starting with `msgstr`) in the `.po` file\n- Test it by changing the option `LOCALE` in `data/config.php`\n- Submit a pull request if you want to have the translations included for everyone\n\n## Things worth to know\n\n### Adding your own CSS or JS without to have to modify the application itself\n\n- When the file `data/custom_js.html` exists, the contents of the file will be added just before `\u003c/body\u003e` (end of body) on every page\n- When the file `data/custom_css.html` exists, the contents of the file will be added just before `\u003c/head\u003e` (end of head) on every page\n\n## Contributing / Say Thanks\n\nAny help is welcome, feel free to contribute anything which comes to your mind or see [https://berrnd.de/say-thanks](https://berrnd.de/say-thanks?project=Piksi) if you just want to say thanks.\n\n## Roadmap\n\nThere is none. The progress of a specific bug/enhancement is always tracked in the corresponding issue, at least by commit comment references.\n\n## Screenshots\n\n![overview](https://github.com/berrnd/piksi/raw/main/.github/publication_assets/overview.png \"overview\")\n\n![cover_albums](https://github.com/berrnd/piksi/raw/main/.github/publication_assets/cover_albums.png \"cover_albums\")\n\n![gallery](https://github.com/berrnd/piksi/raw/main/.github/publication_assets/gallery.png \"gallery\")\n\n![gallery_with_videos](https://github.com/berrnd/piksi/raw/main/.github/publication_assets/gallery_with_videos.png \"gallery_with_videos\")\n\n![lightbox](https://github.com/berrnd/piksi/raw/main/.github/publication_assets/lightbox.png \"lightbox\")\n\n## License\n\nThe MIT License (MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberrnd%2Fpiksi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberrnd%2Fpiksi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberrnd%2Fpiksi/lists"}