Cloud Development

Shulker DevSpace Cloud Dev Environments

Deploy anything you can imagine. Unlike other platforms, DevSpace gives you direct, dedicated IP access with full TCP/UDP support, real-time collaboration, and zero configuration.

Updated recently 20 min read v2.0

What is DevSpace?

Cloud-Native Dev
Spin up containers from any device with internet access. Code on iPad, laptop, or desktop — DevSpace lives in the cloud.
Real-Time Collaboration
Share a link, manage access, and work side by side — wherever you are. See real-time activity.
Full TCP/UDP Support
Direct dedicated IP access. Forward any port — TCP or UDP — with DDoS protection at the edge.
Persistent Volumes
Data persistency and redundancy. Your data survives container restarts and re-deployments.
Recovery Shell
Fix broken startup commands or scripts when your container crashes.
Full Container Reinstall
Reset your container to a clean state via settings if something breaks.

⚡ Launch in under 10 seconds — DevSpace spins up a Docker container in our cloud. You get a public URL, web terminal, file manager, and real-time monitoring — all accessible from your browser. 800+ images — Node.js, Python, Rust, Go, MySQL, and more.

Key Features Explained

🔐 Enterprise-Grade Security

Designed with protection at its core. Full container isolation, no shared memory, no data leakage. 92 Tbps DDoS scrubbing at the edge for every container.

🌐 Port Forwarding & Static IP

Forward any container port to a routable public static IP — TCP or UDP — with your own port number. IP whitelisting & firewall: lock individual ports to specific IPs or CIDR ranges with instant effect. Domain mapping + Auto SSL: point any domain at any port, TLS provisioned automatically.

👥 Collaboration

DevSpace brings your team into a unified development environment, eliminating complex setup and wasted time. Share a link, manage access with granular permissions, and work side by side — wherever you are.

📦 800+ Images

Any stack. Any runtime. Node.js, Python, Go, Rust, PHP, Java, Ruby — if it runs in Docker, it runs on DevSpace. Custom images also supported.

Importing Your Codebase

DevSpace makes it easy to bring your existing projects into the cloud environment.

1
Upload a ZIP File
Use the File Explorer in your DevSpace dashboard to upload a ZIP archive of your codebase.
2
Extract the Archive
Run unzip your-file.zip in the terminal. If unzip is not available, install it first.
Installing unzip (Debian/Ubuntu)
apt-get update && apt-get install unzip -y
unzip your-project.zip -d /project

⚠️ Alpine Linux Note — If apt or apt-get is not available (e.g., Alpine Linux), use apk add unzip instead. If your image lacks a package manager entirely, consider switching to a Debian or Alpine-based image via the DevSpace settings.

Alpine Linux
apk update && apk add unzip
unzip your-project.zip -d /project

Recovery Shell

If your container crashes due to a broken startup command or script, DevSpace provides a recovery shell to fix the issue without needing to reinstall the entire container.

1
Access Recovery Mode
When a container fails to start, click the "Recovery Shell" button in the DevSpace dashboard.
2
Diagnose the Issue
You'll be dropped into a root shell inside your container environment (without executing the broken startup command).
3
Fix the Problem
Edit your startup script, remove problematic files, or correct configuration errors.
4
Exit Recovery Mode
Click "Restart Container" or type exit — your container will restart with the corrected setup.
Common Recovery Commands
# Check what's broken
cat /var/log/startup.log

# Edit startup script
nano /start.sh  # or vim, vi

# Check if required files exist
ls -la /project/

# Test your startup command manually
python /project/app.py  # or node, go run, etc.

# Fix permissions if needed
chmod +x /start.sh

💡 Pro Tip — The recovery shell gives you full root access to your container filesystem. You can install debug tools, inspect logs, and fix virtually any startup issue without losing your data.

Reinstalling Your Container

If something breaks beyond repair or you want a completely fresh start, you can reinstall your container from scratch — all through the DevSpace settings.

1
Open Container Settings
Navigate to your DevSpace dashboard and click on the container you want to reinstall.
2
Click "Reinstall Container"
Find the option under the Danger Zone or Advanced Settings section.
3
Confirm Reinstallation
Type the container name to confirm — this action is irreversible.

⚠️ Warning — Reinstalling will completely wipe your container and start fresh from the base image. Any data not stored in persistent volumes will be permanently lost. Make sure to back up important files first.

🔧 When to Reinstall — Use reinstall when: your container is in an unrecoverable state, you've corrupted system files, you want to reset to a completely clean image, or you're switching to a different base image entirely.

Persistent Volumes

Volumes provide data persistency and redundancy. Your data survives container restarts, crashes, and even re-deployments.

Data Persistence
Data stored in volumes persists across container restarts and re-deployments.
Automatic Backups
Your volumes are automatically backed up daily with point-in-time recovery.
Cross-Container Sharing
Mount the same volume across multiple containers for shared data access.
Using Volumes
# Check mounted volumes
df -h | grep /mnt/volumes

# Write data to a volume
echo "Important data" > /mnt/volumes/myvolume/data.txt

# Create a new volume via DevSpace CLI
devspace volume create my-volume --size 10GB

# Attach volume to container (via DevSpace dashboard or API)
devspace volume attach --container my-container --volume my-volume --path /data

💾 Volume Best Practices — Always store databases, user uploads, configuration files, and any stateful data in volumes. Store ephemeral data like logs and caches on the container's ephemeral storage. Regular backups are automatically handled, but you can also export volume data manually via the File Explorer.

Custom Startup Commands

You can customize what runs when your DevSpace container starts. This is perfect for running build steps, starting servers, or launching your application automatically.

1
Open Container Settings
Go to your DevSpace dashboard and select your container.
2
Find Startup Command Section
Under Configuration or Advanced Settings, locate the "Startup Command" field.
3
Enter Your Command
Type the command you want to run when the container starts.
4
Save and Restart
Click Save, then restart your container to apply the new startup command.
Example Startup Commands
# Node.js application
node /project/app.js

# Python Flask app
python /project/app.py

# Go application
go run /project/main.go

# Custom script with build step
cd /project && npm install && npm start

# Multiple commands with &&
cd /project && pip install -r requirements.txt && python app.py

⚠️ Important — The startup command runs as the container's entrypoint. If your command fails, the container will crash and enter a failed state. Use the Recovery Shell to fix broken startup commands. Always test your command manually before setting it as the startup command.

📝 Custom Startup Script — For complex setups, create a shell script:

start.sh
#!/bin/bash
echo "Starting application..."
cd /project
npm install
npm run build
npm start

Then set your startup command to bash /project/start.sh.

Container Management

Web Terminal
Full-featured terminal directly in your browser with syntax highlighting and multiple tabs.
File Explorer
Browse, upload, download, edit, and manage files with drag-and-drop support.
Real-Time Monitoring
CPU, memory, disk, and network usage with historical graphs.
Container Logs
Live streaming of stdout/stderr with search and filtering.

📊 Resource Limits — Free tier containers have 512MB RAM and 0.5 vCPU. Professional tier unlocks up to 8GB RAM and 4 vCPUs. Enterprise offers custom resources. Check your current usage via the dashboard.

Troubleshooting Common Issues

❌ Container Won't Start

Check the container logs for errors. Use Recovery Shell to diagnose and fix startup command issues. Verify your startup command works manually before setting it.

🌐 Port Not Reachable

Verify the port is correctly forwarded in Port Manager. Check if your application is listening on the correct interface (0.0.0.0, not localhost/127.0.0.1). Ensure no firewall rules are blocking the port.

📦 Out of Disk Space

Run df -h to check disk usage. Clean up unnecessary files with apt-get clean, docker system prune, or remove old logs. Consider adding a persistent volume for larger datasets.

🔑 Permission Denied Errors

Use chmod +x your-file.sh to make scripts executable. Check file ownership with ls -la. You may need to use sudo for certain operations (your container has sudo access with no password).

🐳 Custom Docker Image Fails

Ensure your image is publicly accessible or from a trusted registry. Check that the image has the correct architecture (linux/amd64). Test the image locally with Docker before deploying to DevSpace.

Best Practices

📁 Use Volumes for State — Always store databases, user uploads, and configuration in persistent volumes. The container's ephemeral storage is wiped on reinstall.

🔒 Secure Your Ports — Use IP whitelisting for sensitive services like databases or admin panels. Enable firewall rules to restrict access to trusted IP ranges only.

📝 Log Rotation — Applications that generate excessive logs can fill up your disk. Implement log rotation or limit log verbosity. Use `logrotate` or redirect logs to stdout only.

🔄 Regular Backups — While DevSpace automatically backs up volumes, export critical data periodically via the File Explorer or CLI for off-platform storage.

Resource Limits & Quotas

Free Tier
4 free container deployments per day. 512MB RAM, 0.5 vCPU per container. No credit card required.
Professional
Always-on containers, up to 8GB RAM, 4 vCPUs, custom domains, dedicated IPs, team collaboration.
Enterprise
Bare metal options, unlimited resources, SOC2 compliance, SLA guarantee, dedicated support.

📊 Check Your Usage — View your current resource usage and remaining free deployments in the DevSpace dashboard under "Usage & Quotas".

Quick Reference

DevSpace CLI Commands
# Deploy current directory
devspace deploy

# Deploy with custom name
devspace deploy ./my-app my-server

# List all deployments
devspace list

# Get container logs
devspace logs my-server

# Execute command in container
devspace execute my-server "npm install"

# Stop container
devspace stop my-server

# Start container
devspace start my-server

# Restart container
devspace restart my-server

# Delete container
devspace delete my-server