Deploying WonderCMS
Introduction
WonderCMS is an extremely small, flat-file content management system. With a core of under 50KB, it is one of the smallest CMS platforms available while still providing essential features for building and managing websites. WonderCMS requires no database, making it incredibly easy to deploy and maintain.
Key highlights of WonderCMS:
- Tiny Footprint: Core under 50KB - the smallest CMS available
- No Database: All content stored in a single JSON file
- One-Click Updates: Simple update mechanism built into the admin
- Theme Support: Custom themes for different looks
- Plugin System: Extend functionality with plugins
- SEO Friendly: Clean URLs and meta tag management
- Instant Setup: No installation wizard - works immediately
- Secure: Simple architecture means smaller attack surface
This guide walks through deploying WonderCMS on Klutch.sh using Docker.
Why Deploy WonderCMS on Klutch.sh
Deploying WonderCMS on Klutch.sh provides several advantages:
Minimal Resources: The tiny footprint means minimal CPU and memory requirements.
No Database Overhead: Flat-file storage eliminates database management entirely.
HTTPS by Default: Automatic SSL certificates secure your website.
Simple Backups: Single JSON file makes backup and migration trivial.
Prerequisites
Before deploying WonderCMS on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
Deploying WonderCMS on Klutch.sh
Create Your Repository
Create a new GitHub repository with a Dockerfile:
FROM php:8.2-apache
# Enable Apache mod_rewriteRUN a2enmod rewrite
WORKDIR /var/www/html
# Download WonderCMSRUN apt-get update && apt-get install -y wget unzip \ && wget https://github.com/WonderCMS/wondercms/releases/latest/download/wondercms.zip \ && unzip wondercms.zip \ && rm wondercms.zip \ && chown -R www-data:www-data /var/www/html
# Configure Apache for clean URLsRUN echo '<Directory /var/www/html>\n\ AllowOverride All\n\ Require all granted\n\</Directory>' > /etc/apache2/conf-available/wondercms.conf \ && a2enconf wondercms
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.
Create a New App
Within your project, create a new app and connect your GitHub repository.
Configure HTTP Traffic
Set the traffic type to HTTP with port 80.
Attach Persistent Volume
Add a persistent volume mounted at /var/www/html/data to store your site content and database.json file.
Deploy Your Application
Click Deploy to build and launch WonderCMS.
Access Your Site
Once deployed, access your site at your Klutch.sh URL. Navigate to /loginURL to access the admin panel (the default password is admin).
Change Default Password
Immediately change the default admin password through Settings > Security.
Additional Resources
- WonderCMS Official Website
- WonderCMS Community
- WonderCMS GitHub Repository
- Klutch.sh Persistent Volumes
Conclusion
WonderCMS on Klutch.sh provides the ultimate lightweight CMS solution. Its tiny footprint, database-free architecture, and simple administration make it perfect for small websites, landing pages, or anyone who wants a CMS without complexity.