Skip to content

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

  1. Download the Windows installer from podman-desktop.io/downloads
  2. Run the installer and follow the prompts
  3. Podman Desktop will automatically enable WSL2 and install a Podman-optimized distribution
  4. Launch Podman Desktop from the Start Menu
  5. 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