It displays photos, videos and audios from an album based folder structure in an easy to use yet beautiful way.
This is a hobby project by Bernd Bestel
- Public demo of the latest stable version (
release
branch) → https://piksi-demo.berrnd.xyz
Lately 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.
I wanted to have a tool that
- displays media files from an existing folder structure (one album per folder, unlimited subfolders are supported)
- uses the folder name for albums or alternatively a cover image (configurable naming convention)
- uses pre-generated thumbnails (from a subfolder per album, again configurable naming convention)
- has a strong focus on simplictiy - that explicitly means:
- no file management, sharing or similar gallery organization options (it's just a viewer)
- any technical information is hidden by default, optionally filenames can be shown
- it doesn't have user management (means no authentication, so run this in a trusted local network only)
to 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.
Please use the Issue Tracker for any requests.
Piksi is technically a pretty simple PHP application, so the basic notes to get it running are:
- Unpack the latest release ZIP
- Copy
config-dist.php
todata/config.php
+ edit to your needs (all config options should be self-explanatory based on the comments there) - Ensure that the
data
directory is writable - The webserver root should point to the
public
directory - Include
try_files $uri /index.php$is_args$query_string;
in your location block if you use nginx- Or disable URL rewriting (see the option
DISABLE_URL_REWRITING
indata/config.php
)
- Or disable URL rewriting (see the option
Alternatively clone this repository (the release
branch always references the latest released version) and install Composer and Yarn dependencies manually.
- PHP 8.2 or 8.3
- Required PHP extensions:
fileinfo
,ctype
,intl
,zlib
,mbstring
- Required PHP extensions:
- Recent Firefox, Chrome or Edge
- Overwrite everything with the latest release ZIP while keeping the
data
directory - Check
config-dist.php
for new configuration options and add them to yourdata/config.php
where appropriate (the default values fromconfig-dist.php
will be used for not indata/config.php
defined settings) - Empty the
data/viewcache
directory
Piksi is fully localizable - the default language is English (integrated into code), a German localization is always maintained by me.
You can easily help translating Piksi:
- Copy
localization/en.po
to e.g.localization/it.po
to start the italian translation - Translate all strings (lines starting with
msgstr
) in the.po
file - Test it by changing the option
LOCALE
indata/config.php
- Submit a pull request if you want to have the translations included for everyone
- When the file
data/custom_js.html
exists, the contents of the file will be added just before</body>
(end of body) on every page - When the file
data/custom_css.html
exists, the contents of the file will be added just before</head>
(end of head) on every page
Any help is welcome, feel free to contribute anything which comes to your mind or see https://berrnd.de/say-thanks if you just want to say thanks.
There is none. The progress of a specific bug/enhancement is always tracked in the corresponding issue, at least by commit comment references.
The MIT License (MIT)