|
| 1 | +--- |
| 2 | +title: "Run a Real Cloud Locally with Taubyte Dream" |
| 3 | +author: Zaoui Amine |
| 4 | +featured: true |
| 5 | +draft: false |
| 6 | +tags: |
| 7 | + - tutorials |
| 8 | + - devtools |
| 9 | + - dream |
| 10 | + - local-development |
| 11 | + - cloud |
| 12 | +image: |
| 13 | + src: /blog/images/dream-local-cloud.png |
| 14 | + alt: Run a Real Cloud Locally with Taubyte Dream |
| 15 | +summary: Testing cloud applications locally often means dealing with incomplete emulators that don't match production behavior. Taubyte Dream changes this by running a complete, real cloud on your local machine—not an emulation, but an actual simulation of production infrastructure. |
| 16 | +date: 2026-01-14T12:00:00Z |
| 17 | +categories: [Hand-on Learning] |
| 18 | +--- |
| 19 | + |
| 20 | +Testing modern cloud applications locally is a common challenge. Emulators and mocked environments often fail to replicate the true behavior of a distributed production cloud, leading to bugs that only appear after deployment. |
| 21 | + |
| 22 | +**What if you could run a real cloud on your own machine?** |
| 23 | + |
| 24 | +## Introducing Taubyte Dream |
| 25 | + |
| 26 | +Taubyte Dream lets you spin up a **universe**—a complete, self-contained Taubyte cloud running entirely on your local machine. This universe is an isolated peer-to-peer network of nodes, each running actual Taubyte services like gateway, substrate, and auth. |
| 27 | + |
| 28 | +This design provides a development environment that closely mirrors working with a live remote cloud infrastructure. |
| 29 | + |
| 30 | +## Simulation vs. Emulation: Why It Matters |
| 31 | + |
| 32 | +It's crucial to understand that Dream provides a **simulation**, not an emulation. |
| 33 | + |
| 34 | +| Aspect | Emulation | Dream Simulation | |
| 35 | +|--------|-----------|------------------| |
| 36 | +| Behavior | Approximates production | **Identical** to production | |
| 37 | +| Code | Different codebase | **Same** software components | |
| 38 | +| Protocols | Simplified versions | **Same** protocols | |
| 39 | +| Testing confidence | Medium | **High** | |
| 40 | + |
| 41 | +An emulation merely approximates behavior, which can lead to inconsistencies. In contrast, Dream's simulation runs the exact same software components that exist in a live deployment. The services communicate using the same protocols and follow the same logic. |
| 42 | + |
| 43 | +> **The only difference is the scale, not the substance.** |
| 44 | +
|
| 45 | +What you build and test in Dream will behave exactly as it would in a full-scale cloud. |
| 46 | + |
| 47 | +## True Dev/Prod Parity |
| 48 | + |
| 49 | +The primary benefit of this approach is achieving **true dev/prod parity**. With Dream: |
| 50 | + |
| 51 | +- Code and configuration tested locally can be deployed to production with **zero changes** |
| 52 | +- No translation layers or environment-specific surprises |
| 53 | +- Catch issues early in the development cycle |
| 54 | + |
| 55 | +## Getting Started |
| 56 | + |
| 57 | +### Installation |
| 58 | + |
| 59 | +First, ensure you have Node.js installed on your machine. Then install Dream globally: |
| 60 | + |
| 61 | +```bash |
| 62 | +npm install -g @taubyte/dream |
| 63 | +``` |
| 64 | + |
| 65 | +This makes the `dream` command available globally. |
| 66 | + |
| 67 | +### Creating Your Cloud |
| 68 | + |
| 69 | +Initialize your local cloud with a single command: |
| 70 | + |
| 71 | +```bash |
| 72 | +dream new multiverse |
| 73 | +``` |
| 74 | + |
| 75 | +You'll see output confirming your cloud is running: |
| 76 | + |
| 77 | +``` |
| 78 | +[INFO] Dreamland ready |
| 79 | +[SUCCESS] Universe blackhole started! |
| 80 | +``` |
| 81 | + |
| 82 | +**That's it.** You've just initialized a personal cloud on your machine. |
| 83 | + |
| 84 | +### Viewing Your Cloud |
| 85 | + |
| 86 | +To see all the running components of your universe: |
| 87 | + |
| 88 | +```bash |
| 89 | +dream status universe |
| 90 | +``` |
| 91 | + |
| 92 | +This displays every service that makes up your cloud: |
| 93 | + |
| 94 | +```bash |
| 95 | +┌───────┬─────────────────────┬────────┬───────┐ |
| 96 | +│ Nodes │ elder@blackhole │ p2p │ 14051 │ |
| 97 | +│ ├─────────────────────┼────────┼───────┤ |
| 98 | +│ │ tns@blackhole │ http │ 14466 │ |
| 99 | +│ ├─────────────────────┼────────┼───────┤ |
| 100 | +│ │ substrate@blackhole │ http │ 14529 │ |
| 101 | +│ ├─────────────────────┼────────┼───────┤ |
| 102 | +│ │ auth@blackhole │ p2p │ 14123 │ |
| 103 | +│ ... |
| 104 | +└───────┴─────────────────────┴────────┴───────┘ |
| 105 | +``` |
| 106 | + |
| 107 | +Each service functions just as it would in production. |
| 108 | + |
| 109 | +## Visual Inspection with the Web Console |
| 110 | + |
| 111 | +You can also inspect your local cloud visually: |
| 112 | + |
| 113 | +1. Open [console.taubyte.com](https://console.taubyte.com) |
| 114 | +2. Click the **Dreamland** button (only visible when Dream is running) |
| 115 | +3. Navigate to **Sidebar → Network → blackhole** |
| 116 | + |
| 117 | +You'll see a visual network graph showing all your running nodes and their connections. |
| 118 | + |
| 119 | + |
| 120 | + |
| 121 | +## Working with Your Local Cloud |
| 122 | + |
| 123 | +### Connecting to the Console |
| 124 | + |
| 125 | +To add real code and test Taubyte functionalities: |
| 126 | + |
| 127 | +1. Go to [console.taubyte.com](https://console.taubyte.com) |
| 128 | +2. Enter your email |
| 129 | +3. Select the network as **blackhole** |
| 130 | +4. Click **Login with GitHub** |
| 131 | + |
| 132 | + |
| 133 | + |
| 134 | +From here you can: |
| 135 | +- Create projects |
| 136 | +- Define functions |
| 137 | +- Manage applications |
| 138 | +- Test databases and storage |
| 139 | + |
| 140 | +All while interacting with the cloud running on your machine. |
| 141 | + |
| 142 | +### Testing a Function |
| 143 | + |
| 144 | +If you have a project imported or created: |
| 145 | + |
| 146 | +1. Navigate to **Functions** in the sidebar |
| 147 | +2. Find your function in the list |
| 148 | +3. Click the **lightning icon** to run it |
| 149 | + |
| 150 | + |
| 151 | + |
| 152 | +The function executes on your local cloud exactly as it would in production. |
| 153 | + |
| 154 | +### Example: Running a Ping Function |
| 155 | + |
| 156 | +```bash |
| 157 | +# First, find your substrate HTTP port |
| 158 | +dream status substrate |
| 159 | + |
| 160 | +# Then test your function |
| 161 | +curl -H "Host: your-domain.blackhole.localtau" http://127.0.0.1:14529/ping |
| 162 | +``` |
| 163 | + |
| 164 | +Response: |
| 165 | +``` |
| 166 | +PONG |
| 167 | +``` |
| 168 | + |
| 169 | +## Key Dream Commands |
| 170 | + |
| 171 | +| Command | Description | |
| 172 | +|---------|-------------| |
| 173 | +| `dream new multiverse` | Start a new local cloud | |
| 174 | +| `dream status universe` | Show all running nodes | |
| 175 | +| `dream status substrate` | Get substrate node details (for HTTP port) | |
| 176 | +| `dream inject push-all` | Trigger builds for all repositories | |
| 177 | +| `dream inject push-specific <id>` | Trigger build for specific repository | |
| 178 | + |
| 179 | +## The Architecture |
| 180 | + |
| 181 | +When you run Dream, it starts a complete peer-to-peer network locally: |
| 182 | + |
| 183 | +```bash |
| 184 | +┌────────────────────────────────────────────┐ |
| 185 | +│ Local Dream Universe │ |
| 186 | +│ (blackhole) │ |
| 187 | +├────────────────────────────────────────────┤ |
| 188 | +│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ |
| 189 | +│ │ auth │ │ tns │ │ seer │ │ |
| 190 | +│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ |
| 191 | +│ │ │ │ │ |
| 192 | +│ └─────────────┼─────────────┘ │ |
| 193 | +│ │ │ |
| 194 | +│ ┌──────────┐ ┌────┴─────┐ ┌──────────┐ │ |
| 195 | +│ │ patrick │ │ substrate│ │ hoarder │ │ |
| 196 | +│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ |
| 197 | +│ │ │ │ │ |
| 198 | +│ └─────────────┴─────────────┘ │ |
| 199 | +│ P2P Network │ |
| 200 | +└────────────────────────────────────────────┘ |
| 201 | +``` |
| 202 | + |
| 203 | +Each node runs the same code as production, just scaled down to your local machine. |
| 204 | + |
| 205 | +## Why Dream Changes Everything |
| 206 | + |
| 207 | +Before Dream, local development for distributed cloud applications meant: |
| 208 | + |
| 209 | +- Setting up mock services that behave differently than production |
| 210 | +- Discovering bugs only after deployment |
| 211 | +- Complex local environment configurations |
| 212 | +- Environment-specific conditionals in code |
| 213 | + |
| 214 | +With Dream: |
| 215 | + |
| 216 | +- **Test production behavior locally** before deploying |
| 217 | +- **No environment-specific code** needed |
| 218 | +- **Faster development cycles** with immediate feedback |
| 219 | +- **Confidence in deployments** because local = production |
| 220 | + |
| 221 | +## Conclusion |
| 222 | + |
| 223 | +Taubyte Dream eliminates the gap between development and production environments. By running an actual simulation of a Taubyte cloud on your local machine, you can develop, test, and debug with complete confidence that your code will behave identically in production. |
| 224 | + |
| 225 | +No more "works on my machine" scenarios. No more deployment surprises. Just pure dev/prod parity. |
| 226 | + |
| 227 | +For more details on Dream and all its capabilities, visit the [documentation at tau.how](https://tau.how). Join our [Discord community](https://discord.gg/taubyte) if you have questions or want to connect with other developers. |
| 228 | + |
0 commit comments