Prerequisites
- unRAID server up and running
- Community Applications (CA) installed
- Basic understanding of unRAID’s interface
- Ports 2368 and 3306 available on your network
Step 1: Prepare Directory Structure
- SSH into your unRAID server or use the terminal
- Create the necessary directories:
mkdir -p /mnt/user/appdata/ghost/mysql
mkdir -p /mnt/user/appdata/ghost/content
- Set proper permissions:
chmod -R 777 /mnt/user/appdata/ghost
Step 2: Set Up MariaDB Container
- Open unRAID web interface
- Go to the “Docker” tab
- Click “Add Container”
- Enter the following settings:
Basic Configuration
- Name: GhostDB
- Repository: maurosoft1973/alpine-mariadb
- Network Type: Bridge
Environment Variables
MYSQL_ROOT_PASSWORD=GObrpLskjguwiDoR4lyJzGWUXbl0cY6IOzSMZI1D
MYSQL_DATABASE=ghost
MYSQL_USER=ghost
MYSQL_PASSWORD=91XHfXc0zpJZ8SCTsTheaDW3rm15w17yPGjxHzcL
Path Mappings
- Config Path: /mnt/user/appdata/ghost/mysql:/var/lib/mysql
Port Mappings
- Host Port: 3306
- Container Port: 3306
- Click “Apply” to create and start the container
- Wait for the container to start and verify it’s running
Step 3: Set Up Ghost Container
- In the Docker tab, click “Add Container” again
- Enter the following settings:
Basic Configuration
- Name: Ghost
- Repository: ghost:5-alpine
- Network Type: Bridge
Environment Variables
database__client=mysql
database__connection__host=ghost_db
database__connection__user=ghost
database__connection__password=91XHfXc0zpJZ8SCTsTheaDW3rm15w17yPGjxHzcL
database__connection__database=ghost
url=http://YOUR_SERVER_IP:2368
Replace YOUR_SERVER_IP with your actual unRAID server IP address
Path Mappings
- Content Path: /mnt/user/appdata/ghost/content:/var/lib/ghost/content
Port Mappings
- Host Port: 2368
- Container Port: 2368
- Click “Apply” to create and start the container
Step 4: Verify Installation
- Wait 2-3 minutes for both containers to fully initialize
- Check container logs for any errors:
- Go to Docker tab
- Click on container name
- Click “Logs” to view startup messages
- Access Ghost admin panel:
- Open browser
- Navigate to: http://YOUR_SERVER_IP:2368/ghost
- Create your admin account on first visit
Step 5: Configure Ghost Settings
- Log into Ghost Admin
- Go to Settings → General
- Update your site title and description
- Configure your timezone
- Save changes
Security Recommendations
- Change default passwords in environment variables
- Update the following passwords:
MYSQL_ROOT_PASSWORD=<your-secure-password> MYSQL_PASSWORD=<your-secure-password> database__connection__password=<same-as-MYSQL_PASSWORD>
- Consider setting up SSL/TLS (requires reverse proxy)
- Regularly backup your content directory
Backup Instructions
- Stop both containers
- Backup these directories:
- /mnt/user/appdata/ghost/mysql
- /mnt/user/appdata/ghost/content
- Start containers
Troubleshooting
Database Connection Issues
- Verify MariaDB container is running
- Check logs for connection errors
- Ensure host names match in environment variables
- Verify database credentials
Ghost Not Starting
- Check if MariaDB is fully initialized
- Verify volume permissions
- Check Ghost logs for specific errors
Cannot Access Admin Panel
- Verify correct URL in environment variables
- Check port forwarding settings
- Verify network mode settings
Maintenance Tasks
Regular Updates
- Stop both containers
- Remove containers (data remains safe in appdata)
- Pull new images
- Recreate containers with same settings
Database Maintenance
- Regular backups
- Periodic database optimization
- Log rotation
Additional Configuration Options
Email Setup (Optional)
Add these environment variables to Ghost container:
mail__transport=SMTP
mail__options__host=your-smtp-server
mail__options__port=587
mail__options__auth__user=your-email
mail__options__auth__pass=your-password
Custom Theme Installation
- Upload theme files to: /mnt/user/appdata/ghost/content/themes
- Activate in Ghost Admin → Settings → Design
Performance Optimization
- Consider adding cache plugins
- Optimize images
- Configure proper resource limits
Monitoring
- Regular check of container logs
- Monitor disk space usage
- Check Ghost admin panel for updates
- Monitor database performance
Installation Guide for Ghost Blog Via UnRaid Templates
Unraid_app_templates/ghost-cms at main - hhf/unraid_app_templates - HHF Technology Repository
Template Files Setup
- Create two files on your local computer:
ghost-db.xml
- Copy the exact content from the first templateghost.xml
- Copy the exact content from the second template
Step 1: Installing the Database Container
- Open unRAID web interface
- Navigate to the “Docker” tab
- Click “Add Container”
- Click “Upload” and select your
ghost-db.xml
file - The form will populate automatically. Verify these exact settings:
Container Settings for GhostDB:
Name: GhostDB
Repository: maurosoft1973/alpine-mariadb
Network Type: bridge
Environment Variables (EXACTLY as shown):
MYSQL_ROOT_PASSWORD=GObrpLskjguwiDoR4lyJzGWUXbl0cY6IOzSMZI1D
MYSQL_DATABASE=ghost
MYSQL_USER=ghost
MYSQL_PASSWORD=91XHfXc0zpJZ8SCTsTheaDW3rm15w17yPGjxHzcL
Path Configuration:
Host Path: /mnt/user/appdata/ghost/mysql
Container Path: /var/lib/mysql
Access Mode: Read/Write
Port Configuration:
Host Port: 3306
Container Port: 3306
- Click “Apply”
- Wait until container shows as “Running” (approximately 1-2 minutes)
- Check logs to confirm successful initialization
Step 2: Installing the Ghost Container
- Stay in the Docker tab
- Click “Add Container” again
- Click “Upload” and select your
ghost.xml
file - Verify these exact settings:
Container Settings for Ghost:
Name: Ghost
Repository: ghost:5-alpine
Network Type: bridge
Environment Variables (EXACTLY as shown):
database__client=mysql
database__connection__host=ghost_db
database__connection__user=ghost
database__connection__password=91XHfXc0zpJZ8SCTsTheaDW3rm15w17yPGjxHzcL
database__connection__database=ghost
url=http://[IP]:2368
Note: Replace [IP] with your unRAID server’s IP address
Path Configuration:
Host Path: /mnt/user/appdata/ghost/content
Container Path: /var/lib/ghost/content
Access Mode: Read/Write
Port Configuration:
Host Port: 2368
Container Port: 2368
Step 3: Verification Steps
-
Check Database Container:
- Status should show “Running”
- Logs should show “MariaDB init process done. Ready for start up.”
-
Check Ghost Container:
- Status should show “Running”
- Logs should show “Ghost boot process ended”
-
Access Ghost:
- Open web browser
- Navigate to:
http://YOUR_UNRAID_IP:2368
- You should see the default Ghost welcome page
-
Access Admin Panel:
- Navigate to:
http://YOUR_UNRAID_IP:2368/ghost
- Create your admin account on first visit
- Navigate to:
Important Notes About Templates
-
Template Variables:
- All environment variables are preset in the templates
- Database passwords are preset but should be changed
- URL variable automatically uses your server’s IP
-
Volume Mappings:
- Templates automatically create necessary directories
- Proper permissions are set automatically
- All data persists in
/mnt/user/appdata/ghost/
-
Network Configuration:
- Both containers use bridge networking
- Internal communication is handled automatically
- Ports 2368 and 3306 must be free on your host
-
Container Dependencies:
- Always start GhostDB container first
- Wait for database initialization before starting Ghost
- Both containers set to auto-start after reboot
Template Modifications (if needed)
If you need to change any settings, modify these specific sections:
In ghost-db.xml:
<Environment>
<Variable>
<Name>MYSQL_ROOT_PASSWORD</Name>
<Value>YOUR_NEW_ROOT_PASSWORD</Value>
</Variable>
<!-- Other variables follow same pattern -->
</Environment>
In ghost.xml:
<Environment>
<Variable>
<Name>database__connection__password</Name>
<Value>YOUR_NEW_PASSWORD</Value>
</Variable>
<!-- Other variables follow same pattern -->
</Environment>