Decoded Labs Guide¶
Your lab is a computer that runs in the cloud. You don't sit in front of it — you reach it through your web browser. Anything you start on it (a website, an API, a notebook, a dashboard) gets its own web address, and you can open as many as you like, each in its own tab.
This guide covers two things:
- How to open your apps — the web addresses, so you know what to type.
- How to get your own app to open — the step most tutorials skip for a setup like this, and the small change that fixes it.
The fast path: let an AI do it
Followed a tutorial and your app won't open? You don't have to understand any of this. Copy a ready-made prompt from AI prompts to fix your app into an AI assistant (Claude Code, Copilot, Cursor…) and it makes the change for you.
How to read this guide
The main text is for people new to this — no experience needed. The grey "the technical version" boxes are optional. Open them only if you want the deeper why, or you're on a course that goes there.
The big picture¶
You open a web address; it reaches a program running on your lab computer. In between sits the lab's gateway — think of it as a building's front desk. You tell the front desk which app you want; it walks your request over to that app and brings the reply back.
flowchart LR
B["You, in your browser<br/>open a web address"]
P["The lab gateway<br/>(like a front desk)"]
A["Your app, running<br/>on your lab computer"]
B -->|"your web address"| P
P -->|"finds the right app"| A
Two things about this explain almost every "why won't my app open?" moment — and both are easy to handle:
- Your app has to be willing to accept visitors. Many apps start in a private mode where only the same computer can open them. You switch yours to "accept connections from anywhere."
- Your app is opened with a real, secure web address (starting with
https://), not thelocalhostaddress tutorials use. A few apps need to be told this, or they get confused.
The technical version (optional)
The gateway is a reverse proxy (nginx) shared by the whole lab fleet. It
handles HTTPS and forwards each request to a port on your VM over the
network. Because it connects from another machine, your app must listen on
0.0.0.0 (all network interfaces), not only on the loopback address
127.0.0.1 (localhost). The proxy also passes your app the public
hostname in the Host header and sets X-Forwarded-Proto: https.
The three things your app needs¶
Everything here comes down to these. The Run your own app page gives the exact change for each tool.
- Accept outside connections — start it on
0.0.0.0, notlocalhost. - Use an allowed port number —
5000is the easy default; see the addresses for the full list. - Expect a secure
https://web address — let the tool trust the gateway and accept its real web address.
Your lab number
Throughout this guide, lab1234 stands in for your computer. Your real
number is in the web addresses your instructor gave you — for example, in
code-lab1234.labs.decoded.com the number is 1234. Use yours wherever
you see lab1234.