About Mejiro
Mejiro is an easy-to-use PHP web app for instant photo publishing.
The Linux Photography book provides detailed information on installing and using Mejiro. Get your copy at Gumroad.
Features
- Simplicity Mejiro requires no installation, and it can be deployed on any web server with PHP.
- Instant and easy photo publishing Upload photos, and Mejiro does the rest.
- Responsive design Mejiro works well on mobile devices.
- Pagination Mejiro automatically splits photo collection into pages. You can specify the desired number of photos per page.
- Basic EXIF data The app extracts and displays basic EXIF info for each photo, including aperture, shutter speed, and ISO.
- Geo URI links For geotagged photos, Mejiro displays geo URI links you can use to see the exact locations where the photos were taken in the default map application.
- Optional album description If a description.txt text file exists in the album's folder, Mejiro displays its contents as the album's description.
- Optional photo description You can add a description to each photo by creating an accompanying .txt file. The app can also read and display descriptions from the photo's UserComment EXIF field.
- Automatic language detection Mejiro automatically detects the browser language and picks the description text file with the appropriate language prefix.
- Link to RAW For each photo in the JPEG format, you can upload the accompanying RAW file, and Mejiro automatically adds a link to it. This feature can be disabled.
- Support for subfolders Photos inside the default photo directory can be organized into subfolders.
- Statistics View basic statistics: camera models, the total number of photos and RAW files, disk usage.
- Access keys The application supports access keys for common actions.
- Internationalization support. The application automatically detects and picks the right language. Localizing Mejiro is a matter of translating a handful of text strings in a dedicated .ini file.
- GoatCounter integration Mejiro can be used with GoatCounter web analytics.
Requirements
- A web server with PHP7 or higher (tested with Apache and lighttpd)
- PHP libraries: GD, EXIF
- Git (optional)
Installation and usage
- On Debian, Ubuntu, and Raspberry Pi, install Mejiro by running the following command as root:
curl -sSL https://raw.githubusercontent.com/dmpop/mejiro/main/install.sh | bash
. On other distributions, install the required packages and clone the project's Git repository using the commandgit clone https://github.com/dmpop/mejiro.git
as root. Alternatively, you can download the ZIP archive and extract it into the document root of the server. - Open the config.php file in a text editor and edit settings.
- Put photos into the photos directory (.jpg, .jpeg, .JPG, and .JPEG as well as RAW files).
- Make the mejiro directory writable by the server by running
chown www-data -R mejiro
as root. - Point the browser to http://127.0.0.1/mejiro/ (replace 127.0.0.1 with the actual IP address or domain name of your server).
You can add descriptions to photos by creating accompanying .txt files. For example, to add a description to the F994362-R1-14-15.jpg photo, create the F994362-R1-14-15.txt file containing a short text. You can use HTML markup for formatting the text. To add description files in other languages, use the appropriate language prefix as follows: de-F994362-R1-14-15.txt (for German), ja-F994362-R1-14-15.txt (for Japanese), etc.
Run Mejiro in a container
- Install Podman and Buildah.
- Create a directory for your photos on the host machine.
- Switch to the mejiro directory and build an image using the
./buildah.sh
command. - Run a container on port 8000:
podman run -d --rm -p 8000:8000 -v /path/to/photos:/usr/src/mejiro/photos:rw mejiro
(replace /path/to/photos with the actual path to the directory on the host containing photos). - Point the browser to http://127.0.0.1:8000 (replace 127.0.0.1 with the actual IP address or domain name of the machine running the container).
Author
Dmitri Popov ([email protected])
Acknowledgments
License
Mejiro is released under the GNU General Public License version 3 license.