Unraid Deployment
Deploy PrintMaster Server on Unraid using the Docker container.
Installation Methods
Method 1: Community Applications (Recommended)
- Install Community Applications plugin if not already installed
- Search for “PrintMaster Server”
- Click Install
- Configure settings (see below)
- Click Apply
Method 2: Manual Docker Setup
- Go to Docker tab in Unraid
- Click Add Container
- Configure:
| Setting | Value |
|---|---|
| Name | PrintMaster-Server |
| Repository | ghcr.io/printmaster-org/printmaster-server:latest |
| Network Type | Bridge |
| Port | 9090 → 9090 (TCP) |
| Volume | /mnt/user/appdata/printmaster-server/data → /var/lib/printmaster/server |
| Volume | /mnt/user/appdata/printmaster-server/logs → /var/log/printmaster/server |
Configuration
Essential Settings
| Setting | Value | Description |
|---|---|---|
| HTTP Port | 9090 | Web interface and API |
| Data Directory | /mnt/user/appdata/printmaster-server/data | Database storage |
| Logs Directory | /mnt/user/appdata/printmaster-server/logs | Application logs |
| Timezone | Your timezone (e.g., America/New_York) | For correct timestamps |
Environment Variables
| Variable | Value | Description |
|---|---|---|
BIND_ADDRESS | 0.0.0.0 | Allow external access |
BEHIND_PROXY | true or false | Behind Nginx Proxy Manager? |
LOG_LEVEL | info | debug, info, warn, error |
TZ | America/New_York | Your timezone |
PM_DISABLE_SELFUPDATE | true | Recommended for Docker |
Reverse Proxy Setup
With Nginx Proxy Manager
Set container variables:
BEHIND_PROXY=true PROXY_USE_HTTPS=trueIn Nginx Proxy Manager:
- Scheme:
http(not https) - Forward Hostname:
printmaster-serveror Unraid IP - Forward Port:
9090 - Enable WebSockets: ✅ Required!
- Configure SSL certificate
- Scheme:
Without Reverse Proxy (Direct HTTPS)
| Variable | Value |
|---|---|
BEHIND_PROXY | false |
TLS_MODE | self-signed |
SERVER_HTTPS_PORT | 9443 |
Map port 9443 in addition to 9090.
File Locations
On Unraid Host
/mnt/user/appdata/printmaster-server/
├── data/
│ ├── server.db # SQLite database
│ └── config.toml # Configuration (optional)
└── logs/
└── server.log # Application logs
Inside Container
/var/lib/printmaster/server/ # Data
/var/log/printmaster/server/ # Logs
First-Time Setup
Start the container
- Database and config created automatically
Access the Web UI
- Direct:
http://YOUR-UNRAID-IP:9090 - Via Proxy:
https://printmaster.yourdomain.com
- Direct:
Login
- Username:
admin - Password:
printmaster(change immediately!)
- Username:
Connect Agents
- Agent config:
server_url = "http://YOUR-UNRAID-IP:9090"
- Agent config:
Updating
Via Unraid UI
- Go to Docker tab
- Click Check for Updates
- Click Update if available
Via Community Applications
Use CA Auto Update Applications plugin for automatic updates.
Backup
What to Backup
/mnt/user/appdata/printmaster-server/data/server.db
/mnt/user/appdata/printmaster-server/data/config.toml (if customized)
Using Appdata Backup Plugin
- Includes
/mnt/user/appdata/printmaster-server/automatically
Manual Backup
# Stop container first
docker stop PrintMaster-Server
# Backup
cp /mnt/user/appdata/printmaster-server/data/server.db \
/mnt/user/backups/printmaster-$(date +%Y%m%d).db
# Restart
docker start PrintMaster-Server
Troubleshooting
Container Won’t Start
- Check logs: Docker tab → Click container → Logs
- Verify appdata folder permissions
- Ensure port 9090 isn’t in use
Can’t Access Web UI
# From Unraid terminal
curl http://localhost:9090/api/v1/health
Permission Errors
# Fix permissions
chown -R 99:100 /mnt/user/appdata/printmaster-server/
chmod -R 755 /mnt/user/appdata/printmaster-server/
Container uses UID 99, matching Unraid’s
nobodyuser.
502 Bad Gateway (Nginx Proxy Manager)
- Ensure
BEHIND_PROXY=true - Use
http://in NPM (not https) - Enable WebSockets in proxy settings
View Logs
docker logs -f PrintMaster-Server
Integration with Other Apps
Uptime Kuma
Monitor PrintMaster availability:
- URL:
http://printmaster-server:9090/api/v1/health
Nginx Proxy Manager
- Install from Community Applications
- Create proxy host for PrintMaster
- Use Let’s Encrypt for SSL
Complete Example
Container Name: PrintMaster-Server
Repository: ghcr.io/printmaster-org/printmaster-server:latest
Network Type: bridge
Ports:
9090/tcp → 9090
Volumes:
/mnt/user/appdata/printmaster-server/data → /var/lib/printmaster/server
/mnt/user/appdata/printmaster-server/logs → /var/log/printmaster/server
Environment Variables:
BIND_ADDRESS=0.0.0.0
BEHIND_PROXY=true
LOG_LEVEL=info
TZ=America/Chicago
PM_DISABLE_SELFUPDATE=true
Works with Nginx Proxy Manager at https://printmaster.mydomain.com.