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.
What is DevSpace?
⚡ 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.
unzip your-file.zip in the terminal. If unzip is not available, install it first.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.
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.
exit — your container will restart with the corrected setup.# 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.
⚠️ 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.
# 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.
# 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:
#!/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
📊 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
📊 Check Your Usage — View your current resource usage and remaining free deployments in the DevSpace dashboard under "Usage & Quotas".
Quick Reference
# 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