[Showcase] Fast Godot Deploys to Steam Deck via CIFS (Windows Share)

Want to quickly test your Godot builds on a Steam Deck without copying files over USB or fiddling with SSH? Here’s a simple CIFS/Windows share setup that lets you export directly to your Deck over LAN.

TL;DR:

On Windows, run the PowerShell script to create user/share
On Steam Deck (Desktop Mode) install cifs-utils, creategodot-share, and mount with:

sudo mount -t cifs //<windows ip>/GodotDeploy /home/deck/godot-share \
  -o username=SteamDeck,password=steamdeck123,uid=1000,gid=1000

:right_arrow: Result: export straight from Godot to your Steam Deck over LAN — no USB sticks, no SSH hassle :rocket:

Disclaimer
The steps below disable SteamOS read-only mode temporarily and (in the quick setup) store your password in plain text. Do this only if you know the risks. Adjust usernames/paths, and for security use a credentials file.

Prerequisites

  • Set deck user password if you havent: passwd
  • SteamOS in Desktop Mode

Simple Windows Share Setup for SteamDeck

adjust to your needs, launch powershell in admin mode and paste the script.

# Configuration variables - adjust these to your needs
$username = "SteamDeck"          # Username for SteamDeck to connect with
$password = "steamdeck123"       # Password (change to something more secure)
$sharePath = "C:\Godot\Deploy"   # Local folder to share
$shareName = "GodotDeploy"       # Network share name

# Create the shared folder if it doesn't exist
if (!(Test-Path $sharePath)) { New-Item -ItemType Directory -Path $sharePath -Force }

# Create the SteamDeck user account with password
try {
    $securePassword = ConvertTo-SecureString $password -AsPlainText -Force
    New-LocalUser -Name $username -Password $securePassword -PasswordNeverExpires
} catch {}  # Silently continue if user already exists

# Remove any existing share with the same name
Remove-SmbShare -Name $shareName -Force -ErrorAction SilentlyContinue

# Create the SMB network share with full access permissions
New-SmbShare -Name $shareName -Path $sharePath -FullAccess $username,"Everyone"

# Enable Windows firewall rules for file and printer sharing
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes

# Enable Windows firewall rules for network discovery (helps with finding the PC)
netsh advfirewall firewall set rule group="Network Discovery" new enable=Yes

Steam Deck (SteamOS) Setup - One-time prep

Disable read-only filesystem

# Disable read-only filesystem to allow package installation
sudo steamos-readonly disable

(Optional) Fix package manager if needed

# Clear corrupted package cache AND sync database
sudo rm -rf /var/cache/pacman/pkg/*
sudo rm -rf /var/lib/pacman/sync/*

# Initialize package manager cryptographic keys (takes several minutes)
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman-key --refresh-keys  # This will take some time. 

# Refresh package database
sudo pacman -Syy

Install cifs-utils (manual download worked for me)

# Manual download of cifs-utils package (if standard install fails)
wget https://archlinux.org/packages/extra/x86_64/cifs-utils/download/ -O cifs-utils.pkg.tar.zst

# Install the downloaded package manually
sudo pacman -U cifs-utils.pkg.tar.zst

Re-enable read-only

# Re-enable read-only filesystem protection
sudo steamos-readonly enable

Mount the share

# Make sharefolder on steamdeck
sudo mkdir -p /home/deck/godot-share

# mount the share
sudo mount -t cifs //<your windows ip>/GodotDeploy /home/deck/godot-share \   -o username=SteamDeck,password=steamdeck123,uid=1000,gid=1000,iocharset=utf8

Now /home/deck/godot-shareshould be accessible.

Make Permanent (Optional)

# Edit fstab
sudo nano /etc/fstab

# Add line:
[//<your windows ip>/GodotDeploy /home/deck/godot-share cifs username=SteamDeck,password=st](//192.168.2.3/GodotDeploy)

# Add line:
//<your windows ip>/GodotDeploy /home/deck/godot-share cifs username=SteamDeck,password=steamdeck123,uid=1000,gid=1000,iocharset=utf8 0 0

After deploying.. “Add a Non-Steam Game to My Library” - Pick your executable, ready to rumble.

That’s it! :video_game: With this setup you can export straight from Godot to your Steam Deck, launch it as a Non-Steam game, and test instantly, no USB drives, no SSH, just smooth iteration. :rocket:

-Robert

9 Likes