Access your deployed application
Let’s learn the ways to reach an application running on your device with SPEKTRA Edge.
Once you deploy an application, its containers run on the device and publish ports according to your Docker compose file. How you reach those ports depends on where you are relative to the device. This page covers the three common cases:
- From your workstation, anywhere — through the platform’s secure port forwarding (no inbound ports open on the device).
- From the device’s local network — directly to a published port.
- From another container — service-to-service inside the same application.
Publishing a port
A container is only reachable on a port if your compose file publishes it. For example, the Nginx example publishes container port 8000:
services:
app:
image: nginx:alpine
ports:
- 8000:8000
The left side (8000) is the device host port; the right side (8000) is
the container port.
From your workstation (port forwarding)
This is the recommended way to reach an application on a remote device. It works from anywhere, over the device’s existing outbound connection to the platform, so no inbound ports need to be open on the device or its network.
You need the cuttle CLI installed for this method.
- Open the application’s Application overview page in the dashboard (see Monitor & control).
- Click Copy port forward as Cuttle command to copy a ready-made command.
- Run it in your local terminal. For example:
cuttle devices forward-port \
projects/your-project/regions/us-west2/devices/your-device \
8000 tcp://127.0.0.1:8000This forwards the device’s port 8000 to 127.0.0.1:8000 on your machine.
Point your browser at http://localhost:8000
and you’ll reach the application as if it were running locally.
The first argument is the full device name (it includes the project and region); the dashboard fills this in for you when you copy the command.
Why use port forwarding?
- It works wherever you are, not just on the device’s network.
- It is tunneled through the platform’s authenticated connection, so you don’t expose the application to the public internet or open firewall ports.
- It’s ideal for administration, debugging, and one-off access.
From the device’s local network
If your client (a browser, another machine, a PLC, etc.) is on the same local network as the device, you can reach a published port directly using the device’s IP address:
http://<device-ip>:<published-port>
For the Nginx example above, that would be http://<device-ip>:8000.
This is the natural choice when the application is meant to serve other equipment on-site — for example, a local dashboard, an API consumed by nearby machines, or a gateway service.
A few things to keep in mind:
- The port must be published in the compose file (the
portsentry). A container port that isn’t published is only reachable from inside the device. - By default a published port is reachable on all of the device’s network
interfaces. If you only want it on a specific interface, bind it explicitly
in the compose file, for example
127.0.0.1:8000:8000to keep it on the device itself. - Make sure the chosen host port doesn’t collide with another application or a system service on the device.
From another container
Containers within the same application can talk to each other over the
application’s internal network using their service name as the hostname —
they don’t need to publish ports for this. For example, an app service can
reach a redis service at redis:6379.
Only publish a port (with ports) when something outside the application
needs to reach the container. Internal service-to-service traffic should stay
on the internal network.
Persisting data behind your application
If your application stores data (uploads, a database, configuration), mount it under the device’s persistent data area so it survives restarts and power cycles:
services:
app:
image: nginx:alpine
ports:
- 8000:8000
volumes:
- /isodevice/data/nginx/conf.d:/etc/nginx/conf.dSee Configuration for a full walk-through of mounting configuration and host volumes.
Which method should I use?
| Goal | Use |
|---|---|
| Reach an app on a remote device for admin/debugging | Port forwarding |
| Serve clients on the same on-site network | Local network access |
| Let app containers talk to each other | Internal service names |
Next step
Learn how to monitor and control your application — view its status, metrics, and logs — from the SPEKTRA Edge dashboard.