Overview
This guide documents the process of installing Bludit CMS—a flat-file Content Management System—on a VPS running a YunoHost/Docker hybrid setup.
The goal is to run Bludit in a container while utilising YunoHost's reverse proxy capabilities to expose it via a specific domain (market.nulu.my).
Prerequisites
- Docker and Docker Compose installed.
- A configured YunoHost server.
- Root or sudo access to the server.
Step 1: Directory Setup
First, create a directory to house the configuration files. Keeping the file structure organised is crucial for maintenance.
mkdir -p /opt/bludit
cd /opt/bludit
Step 2: Docker Compose Configuration
Create the docker-compose.yml file.
File: /opt/bludit/docker-compose.yml
services:
bludit:
image: bludit/docker:latest
container_name: bludit_cms
restart: unless-stopped
ports:
- "50328:80" # Exposing on port 50328 to avoid conflict with YunoHost (80/443)
volumes:
# Persisting data using Docker Volumes
- bludit_content:/usr/share/nginx/html/bl-content
- bludit_themes:/usr/share/nginx/html/bl-themes
- bludit_plugins:/usr/share/nginx/html/bl-plugins
environment:
- PUID=1000
- PGID=1000
volumes:
bludit_content:
bludit_themes:
bludit_plugins:
Key Configuration Notes:
- Port 50328: Chosen to avoid conflicts with standard web ports.
- Volumes: We use three distinct volumes (
content,themes,plugins). This allows for easier upgrades without losing site data or customisations.
Step 3: Deployment
Run the container in detached mode:
docker compose up -d
Verify the container status:
docker compose ps
Step 4: YunoHost Reverse Proxy
To expose the container to the public internet securely via SSL, use the YunoHost web admin panel.
- Add Domain: Ensure
market.nulu.myis added to the domains list. - Install Redirect App: Go to Applications > Install and search for the "Redirect" app.
- Configuration:
- Domain:
market.nulu.my - Path:
/ - Destination URL:
http://127.0.0.1:50328 - Type: Proxy (sometimes labelled as 'Invisible Proxy').
- Domain:
Step 5: Finalisation
Access https://market.nulu.my to complete the Bludit installation wizard (setting up the admin user and language).
Managing Themes & Plugins:
Since we used Docker Volumes, standard installation via the Admin Panel is preferred. If manual file access is required (e.g., for a custom theme development), inspect the volume path:
docker volume inspect bludit_themes