Deploying Zenphoto
Introduction
Zenphoto is a standalone CMS designed specifically for multimedia websites, with a focus on photography. It provides a simple yet powerful platform for creating photo galleries, video showcases, and multimedia portfolios with an emphasis on image quality and presentation.
Key highlights of Zenphoto:
- Gallery Management: Organize photos into albums and categories
- Video Support: Host videos alongside photos
- Image Processing: Automatic thumbnail generation and watermarking
- EXIF Data: Display camera settings and metadata
- Theme System: Extensive theming options for customization
- Comment System: Built-in commenting for engagement
- User Management: Control access to private galleries
- Plugin Architecture: Extend functionality with plugins
This guide walks through deploying Zenphoto on Klutch.sh using Docker.
Why Deploy Zenphoto on Klutch.sh
Deploying Zenphoto on Klutch.sh provides several advantages:
Photographer Control: Own your portfolio without platform restrictions.
Full Resolution: Display photos at original quality without compression.
HTTPS by Default: Secure access with automatic SSL certificates.
Persistent Storage: Your photos and galleries persist with Klutch.sh volumes.
Prerequisites
Before deploying Zenphoto on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
Deploying Zenphoto on Klutch.sh
Create Your Repository
Create a new GitHub repository with a Dockerfile:
FROM php:8.2-apache
# Install dependenciesRUN apt-get update && apt-get install -y \ libpng-dev \ libjpeg-dev \ libfreetype6-dev \ libzip-dev \ unzip \ wget \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install gd pdo pdo_mysql zip exif
# Enable Apache modulesRUN a2enmod rewrite
WORKDIR /var/www/html
# Download ZenphotoRUN wget https://github.com/zenphoto/zenphoto/releases/latest/download/zenphoto.zip \ && unzip zenphoto.zip \ && mv zenphoto/* . \ && rm -rf zenphoto zenphoto.zip \ && chown -R www-data:www-data /var/www/html
EXPOSE 80Push to GitHub
Push your Dockerfile to your GitHub repository.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project.
Deploy a MySQL Database
Zenphoto requires a MySQL/MariaDB database. Deploy one within your project first.
Create a New App
Create a new app for Zenphoto and connect your GitHub repository.
Configure HTTP Traffic
Set the traffic type to HTTP with port 80.
Set Environment Variables
Configure your database connection details for the installer.
Attach Persistent Volumes
Add persistent volumes:
| Mount Path | Purpose |
|---|---|
/var/www/html/albums | Photo albums storage |
/var/www/html/cache | Generated thumbnails |
/var/www/html/zp-data | Configuration and data |
Deploy Your Application
Click Deploy to build and launch Zenphoto.
Run Setup Wizard
Access your Zenphoto instance and complete the web-based installation wizard to configure your database and create an admin account.
Upload Photos
Start uploading photos through the admin interface or directly to the albums directory.
Additional Resources
- Zenphoto Official Website
- Zenphoto Documentation
- Zenphoto GitHub Repository
- Klutch.sh Persistent Volumes
Conclusion
Zenphoto on Klutch.sh provides photographers and artists with a powerful platform for showcasing their work. Create beautiful galleries, maintain full control over your images, and present your portfolio professionally without third-party platform limitations.