Skip to content

Access your container’s filesystem from your local machine. You mount the container’s storage on YOUR computer (client-initiated), giving you drag-and-drop file access while keeping full control—your machine connects to the container, not the other way around.

Why this is practical:

  • Your data, your control - You initiate the connection from your local machine
  • Bridge cloud and local - Edit container files with local tools (VS Code, Photoshop, Excel)
  • No container changes needed - SFTP via Hoody SSH Proxy, WebDAV via hoody-files
  • Familiar file managers - Use Finder/Explorer like any network drive

File Access:

Related Access:


TWO protocols for local mounting:

SFTP

Provided by: Hoody API (SSH Proxy)

  • Built on SSH protocol (port 22)
  • Same infrastructure as SSH access
  • Same authentication (SSH keys)
  • Privacy-preserving routing
  • Universal SFTP client support

WebDAV

Provided by: hoody-kit (hoody-files service)

  • HTTP/HTTPS-based protocol
  • Authentication via Proxy Permissions
  • Native macOS/Windows support
  • Mount directly in file managers
  • Works through firewalls easily

Both protocols access the SAME container filesystem. SFTP via Hoody API, WebDAV via hoody-kit.


SFTP provided by Hoody API’s SSH Proxy—same infrastructure as SSH access.

Terminal window
Protocol: SFTP (SSH File Transfer Protocol)
Host: ssh.{server-name}.containers.hoody.icu
Port: 22
Username: root
Authentication: SSH public key

You mount FROM your local machine TO the container - client-initiated connection for security and control.

Example: If your container is on server us-west-1, the SFTP host is:

ssh.us-west-1.containers.hoody.icu

Privacy benefit: Same endpoint for ALL containers on that server. SFTP routing happens by SSH public key during handshake—not visible in connection URL.


  1. Open FinderGo menu → Connect to Server (⌘K)
  2. Server Address:
    sftp://ssh.us-west-1.containers.hoody.icu
  3. Click Connect
  4. Authentication:
    • Select your SSH private key from keychain
    • Or add new key: Keychain Access → add ~/.ssh/hoody-container-1
  5. Container filesystem mounts as network drive

Mounted at: /Volumes/ssh.us-west-1.containers.hoody.icu/


Download: WinSCP

  1. New Site:

    • File protocol: SFTP
    • Host name: ssh.us-west-1.containers.hoody.icu
    • Port: 22
    • User name: root
  2. Authentication:

    • Advanced → SSH → Authentication
    • Private key file: Browse to %USERPROFILE%\.ssh\hoody-container-1
    • WinSCP converts to .ppk format automatically
  3. Login - Container filesystem appears in WinSCP’s file manager

  4. Optional: Tools → Preferences → Integration → Explorer

    • Enable “Windows Explorer integration”
    • Access via right-click “WinSCP” in Explorer

Terminal window
# Install sshfs
sudo apt-get install sshfs # Debian/Ubuntu
sudo dnf install sshfs # Fedora
sudo pacman -S sshfs # Arch
# Create mount point
mkdir -p ~/hoody-containers/container-1
# Mount container
sshfs root@ssh.us-west-1.containers.hoody.icu:/ \
~/hoody-containers/container-1 \
-o IdentityFile=~/.ssh/hoody-container-1
# Access files
ls ~/hoody-containers/container-1/hoody/storage
# Make persistent (add to /etc/fstab)
echo "root@ssh.us-west-1.containers.hoody.icu:/ /home/user/hoody-containers/container-1 fuse.sshfs defaults,IdentityFile=/home/user/.ssh/hoody-container-1,allow_other 0 0" | sudo tee -a /etc/fstab
# Unmount
fusermount -u ~/hoody-containers/container-1

ClientPlatformGUIFeatures
FileZillaWin/Mac/LinuxTwo-pane, queue, bookmarks, free
WinSCPWindowsExplorer integration, scripting, sync
CyberduckMac/WindowsFinder integration, cloud services
TransmitMacBeautiful UI, fast, paid
sshfsMac/LinuxCommand-line, native mounting
Mountain DuckMac/WindowsMount as drive letter, paid

WebDAV provides HTTP-based filesystem access with native OS support.

Terminal window
# Get container details to build WebDAV URL
hoody containers get $CONTAINER_ID
# The WebDAV URL follows this pattern:
# https://{project}-{container}-files.{server}.containers.hoody.icu/

Connection Details:

Terminal window
URL: https://{project}-{container}-files.{server}.containers.hoody.icu/
Authentication: Hoody Proxy Permissions

Example URL:

https://proj123-cont456-files.us-west-1.containers.hoody.icu/

You mount FROM your client TO the container - you control the connection.


  1. FinderGoConnect to Server (⌘K)

  2. Server Address:

    https://proj123-cont456-files.us-west-1.containers.hoody.icu/
  3. Click Connect

  4. Authentication:

    • If Proxy Permissions configured: Use those credentials
    • If no permissions: Leave blank or use any credentials (access is open)
  5. Container filesystem mounts as WebDAV drive

Mounted at: /Volumes/webdav/


  1. Right-click “This PC”Map network drive

  2. Drive letter: Choose (e.g., Z:)

  3. Folder:

    https://proj123-cont456-files.us-west-1.containers.hoody.icu/
  4. Check: “Reconnect at sign-in” (for persistence)

  5. Check: “Connect using different credentials”

  6. Credentials:

    • If Proxy Permissions configured: Use those credentials
    • If no permissions: Leave blank (or any credentials—access is open)
  7. Click Finish - Drive appears in Explorer as Z:\


Terminal window
# Install davfs2
sudo apt-get install davfs2 # Debian/Ubuntu
sudo dnf install davfs2 # Fedora
# Create mount point
sudo mkdir -p /mnt/hoody-container
# Add credentials to /etc/davfs2/secrets (if Proxy Permissions configured)
echo "https://proj123-cont456-files.us-west-1.containers.hoody.icu/ USERNAME PASSWORD" | sudo tee -a /etc/davfs2/secrets
# OR leave blank if no permissions configured
sudo chmod 600 /etc/davfs2/secrets
# Mount
sudo mount -t davfs https://proj123-cont456-files.us-west-1.containers.hoody.icu/ /mnt/hoody-container
# Access files
ls /mnt/hoody-container/hoody/storage
# Make persistent (add to /etc/fstab)
echo "https://proj123-cont456-files.us-west-1.containers.hoody.icu/ /mnt/hoody-container davfs user,noauto 0 0" | sudo tee -a /etc/fstab
# Unmount
sudo umount /mnt/hoody-container

Recommended WebDAV client for Android

  1. Install WebDAV Navigator from Play Store

  2. Add Connection:

    • Tap +WebDAV
    • URL: https://proj123-cont456-files.us-west-1.containers.hoody.icu/
    • If Proxy Permissions configured: Enter credentials
    • If no permissions: Leave blank or use any credentials
  3. Browse Files:

    • Tap connection to browse container filesystem
    • /hoody/storage, /home/user, etc. all accessible
  4. File Operations:

    • Download files to device
    • Upload from device to container
    • Create folders, rename, delete
    • Open with Android apps

iOS 13+ built-in WebDAV support

  1. Open Files app

  2. Tap ••• (More) → Connect to Server

  3. Server:

    https://proj123-cont456-files.us-west-1.containers.hoody.icu/
  4. Authentication:

    • If Proxy Permissions configured: Enter credentials
    • If no permissions: Tap “Connect as Guest”
  5. Container mounts in sidebar under “Shared”

  6. Access Files:

    • Browse container filesystem
    • Open files with iOS apps
    • Share files between apps
    • Download/upload via drag & drop

Which protocol should you use?

FeatureSFTPWebDAV
Provided ByHoody API (SSH Proxy)hoody-kit (hoody-files)
SetupRequires SSH keyUses Proxy Permissions
Native SupportmacOS/Linux (via sshfs)macOS/Windows/iOS (built-in)
Mobile SupportAndroid/iOS SSH clientsAndroid/iOS native file managers
SecuritySSH protocol (very secure)HTTPS (secure)
FirewallPort 22 (sometimes blocked)Port 443 (rarely blocked)
SpeedFastSlightly slower (HTTP overhead)
MetadataFull POSIX supportLimited metadata
CompatibilityAll SFTP clientsAll WebDAV clients

Recommendation:

  • SFTP: When you already have SSH configured and need full POSIX metadata (desktop/laptop)
  • WebDAV: For native OS mounting, especially on mobile (iOS Files app, Android file managers)
  • Both work equally well for basic file transfer

Mount container → Edit locally → Changes reflected immediately:

Terminal window
# Mount container filesystem
# macOS:
open sftp://ssh.us-west-1.containers.hoody.icu
# Edit files in your favorite local editor
code /Volumes/ssh.us-west-1.containers.hoody.icu/hoody/storage/myapp/
# Changes saved locally = changes in container instantly

Perfect for: Editing code, configs, logs without SSH terminal.

Drag & drop backup via file manager:

Terminal window
# Mount container
# Copy /hoody/storage to local backup
cp -r /Volumes/webdav/hoody/storage ~/Backups/container-backup-2025-11-10/
# Or use rsync for incremental backups
rsync -av /Volumes/webdav/hoody/storage/ ~/Backups/container-latest/

Better than: Manual file downloads via HTTP API.

Upload hundreds of files efficiently:

Terminal window
# Mount container WebDAV
# Drag entire project folder from local machine
# to /Volumes/webdav/hoody/storage/projects/
# Or use command-line
cp -r ~/Projects/website/* /Volumes/webdav/var/www/html/

Faster than: Sequential HTTP uploads.

Tail logs in your favorite local text editor:

Terminal window
# Mount container
# Open log file with live-updating editor (e.g., VS Code, Sublime Text)
code /Volumes/webdav/hoody/storage/myapp/logs/app.log
# Log updates appear in real-time as container writes

Alternative to: SSH + tail -f command.


SFTP’s public key routing means the connection URL doesn’t reveal which container you’re accessing:

Terminal window
# Same endpoint for all containers
ssh.us-west-1.containers.hoody.icu
# Routing happens by SSH key (invisible to network observers)

WebDAV URLs contain project/container IDs (visible in URL).

SFTP: SSH keys already in ~/.ssh/ with permissions 600

WebDAV: Use credential managers:

  • macOS: Keychain stores WebDAV passwords automatically
  • Windows: Credential Manager saves mapped drive credentials
  • Linux: davfs2 secrets file with chmod 600

Never hard-code API tokens in scripts.

Leaving mounts active consumes resources:

Terminal window
# macOS
umount /Volumes/webdav
# Linux
fusermount -u ~/hoody-containers/container-1
# Windows
net use Z: /delete

Or use auto-unmount on logout/shutdown.

SFTP (Linux/macOS):

Terminal window
sshfs root@ssh.server.containers.hoody.icu:/ ~/container-1 \
-o ro,IdentityFile=~/.ssh/key

Prevents accidental deletions when just browsing/reading files.

5. Prefer hoody-files HTTP API for Automation

Section titled “5. Prefer hoody-files HTTP API for Automation”

Local mounting is for human interaction (file managers, editors).

For automation (scripts, CI/CD), use Hoody Files HTTP API:

Terminal window
# ✅ Automation: Direct HTTP
curl "https://...-files.../api/v1/files/data.json"
# ❌ Automation: Mounting unnecessary
mount access unmount (slower, more complex)

Do I need SSH configured for SFTP mounting?

Section titled “Do I need SSH configured for SFTP mounting?”

Yes. SFTP uses SSH authentication, so your container must have an ssh_public_key configured. See SSH Access.

WebDAV doesn’t require SSH—it uses Hoody Proxy Permissions (or no auth if permissions disabled).

Can I mount multiple containers simultaneously?

Section titled “Can I mount multiple containers simultaneously?”

Yes! Each container has unique SFTP/WebDAV endpoints. Mount as many as you need.

SFTP: Different SSH keys route to different containers (same hostname).

WebDAV: Different container URLs mount as different drives.

Does mounting affect container performance?

Section titled “Does mounting affect container performance?”

Minimal impact. File operations go through hoody-files service, which is optimized for this use case.

Heavy operations (copying GBs of data) will consume bandwidth and I/O, like any file transfer.

SFTP: Only if they have the container’s SSH private key.

WebDAV: Only if they pass Proxy Permissions (if configured). If permissions disabled, WebDAV is open access.

Security: Configure Proxy Permissions for WebDAV access control. SFTP is always key-protected.

What happens if I delete files via mounted drive?

Section titled “What happens if I delete files via mounted drive?”

Files are permanently deleted from container filesystem (same as SSH rm command).

Safety: Create snapshots before bulk deletions.

Does mounting work with containers in “block” network mode?

Section titled “Does mounting work with containers in “block” network mode?”

Yes! Mounting is INBOUND (to container) via Hoody Proxy. Network block mode only prevents OUTBOUND (from container).


Problem: “Connection refused” when mounting SFTP

Solutions:

  1. Verify container is running:

    Terminal window
    curl "https://api.hoody.icu/api/v1/containers/{id}"
    # Check: "status": "running"
  2. Test SSH connectivity:

    Terminal window
    ssh -i ~/.ssh/hoody-container-1 root@ssh.server.containers.hoody.icu
    # Should connect to shell
  3. Check SSH key is added to container:

    Terminal window
    # Verify via API
    GET /api/v1/containers/{id}
    # Check: "ssh_public_key" field is set

Problem: Windows can’t connect to WebDAV, authentication fails

Solutions:

  1. Enable WebClient service:

    Terminal window
    sc config webclient start=auto
    sc start webclient
  2. Allow Basic Auth over HTTPS: Registry: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters

    • Set BasicAuthLevel = 2
    • Restart WebClient
  3. Check Proxy Permissions:

    • If permissions configured: Verify credentials are correct
    • If no permissions: Any credentials should work (or leave blank)
    • See Proxy Permissions for configuration

macOS Won’t Connect to “Untrusted” HTTPS

Section titled “macOS Won’t Connect to “Untrusted” HTTPS”

Problem: macOS blocks WebDAV connection due to SSL certificate

Solution: Hoody uses valid Let’s Encrypt certificates—this shouldn’t happen.

If it does:

  1. Verify URL is correct (use container’s actual URL from Hoody)
  2. Try SFTP instead (SSH doesn’t have this issue)

Problem: Changes made in container don’t appear in mounted filesystem

Cause: File manager caching

Solutions:

  1. Unmount and remount:

    Terminal window
    umount /Volumes/webdav
    # Remount
  2. Refresh view: F5 or ⌘R in file manager

  3. Use Hoody Terminal to verify file contents:

    Terminal window
    cat /path/to/changed/file

Problem: File transfers via mounted filesystem are slow

Solutions:

  1. Check network latency:

    Terminal window
    ping ssh.server.containers.hoody.icu
    # High latency = slow transfers
  2. Use local server: Create container on geographically close server

  3. Compress before transfer:

    Terminal window
    # Instead of copying entire directory
    tar czf backup.tar.gz /source/dir
    # Copy single compressed file (faster)
  4. Consider direct HTTP upload for large files:

    Terminal window
    curl -X PUT "https://...-files.../api/v1/files/uploads/large-file.zip" \
    --data-binary @large-file.zip

Other storage capabilities:

File access methods:

Understanding gained:

  • ✅ SFTP provided by Hoody API (SSH Proxy infrastructure)
  • ✅ WebDAV provided by hoody-files (hoody-kit service)
  • ✅ You mount FROM your machine TO container (client-initiated, you control it)
  • ✅ Mount container filesystem in macOS Finder, Windows Explorer, Linux
  • ✅ SFTP uses SSH keys (privacy-preserving routing via Hoody API)
  • ✅ WebDAV uses Proxy Permissions (hoody-kit authentication)
  • ✅ Same filesystem access as SSH, just via file manager GUI

Your container’s filesystem, accessible from your local machine. SFTP via Hoody API. WebDAV via hoody-kit.

Client-initiated mounting. Your data, your control. Bridge cloud and local seamlessly.