Windows
This section describes how to deploy Canvus server on Windows using Podman Desktop and WSL2. The containers run inside a Linux VM managed by WSL2.
Note
Supported platforms: Windows 10/11 and Windows Server 2019/2022 (64-bit) with WSL2 enabled.
System requirements
- 8 GB RAM minimum (16 GB recommended)
- 2 CPU cores minimum (4 recommended)
- 20 GB disk space minimum
- WSL2 enabled (Podman Desktop handles this automatically on Windows 10/11)
- Administrator access for installation
Install Podman Desktop
- Download the Windows installer from podman-desktop.io/downloads
- Run the installer and follow the prompts
- Podman Desktop will automatically enable WSL2 and install a Podman-optimized distribution
- Launch Podman Desktop from the Start Menu
- Click \"Initialize and Start\" if prompted
Verify in PowerShell:
podman --version
# Should show: podman version 4.x.x or higher
Install podman-compose
Podman Desktop does not include podman-compose. Choose one option:
Option A: Built-in compose (Podman 4.0+, recommended)
podman compose version
If this works, use podman compose (with a space) for all commands.
Option B: Install via Python
winget install Python.Python.3.11
# Close and reopen PowerShell to refresh PATH
pip install podman-compose
Login to the container registry
podman login docker.multitaction.com -u canvus-deploy -p gldt-synTX_NnF8LcmnktR1xK
Download the compose file
mkdir C:\canvus-server
cd C:\canvus-server
Invoke-WebRequest -Uri "https://canvus-downloads.s3.amazonaws.com/server/podman-compose.yml" -OutFile "podman-compose.yml"
Configure the deployment
Edit podman-compose.yml in Notepad or your preferred text editor:
In the canvus service:
environment:
CANVUS_EXTERNAL_URL: https://canvus.example.com
CANVUS_ADMIN_EMAIL: admin@yourcompany.com
CANVUS_ADMIN_PASSWORD: YourSecurePassword123!
POSTGRES_PASSWORD: a-strong-database-password
In the postgres service (must match the password above):
environment:
POSTGRES_PASSWORD: a-strong-database-password
Note
The compose file uses Linux-style paths (/canvus-data/...). Podman Desktop creates these inside the WSL2 VM automatically. Do not change these to Windows paths.
Start services
cd C:\canvus-server
podman compose -f podman-compose.yml up -d
Verify
podman compose -f podman-compose.yml ps
Open https://localhost in your browser. Accept the self-signed certificate warning and login with the admin credentials you set above.
Windows-specific notes
Data persistence
Container data lives inside the WSL2 VM at /canvus-data/. To access from Windows Explorer: \\wsl$\podman-machine-default\canvus-data\
Firewall configuration
Windows Firewall may block incoming connections from other machines:
# Run as Administrator
New-NetFirewallRule -DisplayName "Canvus HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
New-NetFirewallRule -DisplayName "Canvus HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
Port conflicts
If ports 80/443 are already in use (IIS, Apache):
netstat -ano | findstr :443
Stop the conflicting service, or use unprivileged ports in podman-compose.yml.
WSL2 resource allocation
Create C:\Users\YourUsername\.wslconfig to increase resources:
[wsl2]
memory=8GB
processors=4
swap=2GB
localhostForwarding=true
Apply: wsl --shutdown (WSL2 restarts on next use).
Management
cd C:\canvus-server
# Start / stop / restart
podman compose -f podman-compose.yml up -d
podman compose -f podman-compose.yml stop
podman compose -f podman-compose.yml restart
# View logs
podman compose -f podman-compose.yml logs -f
podman logs -f canvus-combined
# Update to latest version
podman compose -f podman-compose.yml pull
podman compose -f podman-compose.yml down
podman compose -f podman-compose.yml up -d
Windows Server
For Windows Server Core (no GUI), use Podman CLI directly in WSL2:
# Enable WSL2 (requires reboot)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Restart-Computer
# After reboot
wsl --set-default-version 2
wsl --install -d Ubuntu
Then follow the Linux installation guide from within the WSL2 Ubuntu session.
Troubleshooting
\"Cannot connect to Podman\":
podman machine stop
podman machine start
\"WSL2 not found\":
wsl --status
wsl --set-default-version 2
Container won\'t start:
podman logs canvus-combined
podman logs canvus-postgres