FlowFlow

Logs and the terminal

When something isn't working, or you just want to see what a deploy actually did, a service gives you two different ways to look inside it, one for looking back at what already happened, one for reaching in and doing something right now.

Logs

The Logs tab on a service shows you the full output of a deployment, build steps and runtime output together, exactly as they happened. There's a dropdown at the top to pick which deployment you're looking at, listed by date, status, and short commit hash, so you can compare what today's deploy printed against yesterday's, or dig into why a specific one failed.

This is a captured dump of that deployment's output, not a live tail. If a service is currently running and printing new output, you'll want the terminal below for anything you need to watch in real time, logs are for reviewing what already happened.

The terminal

Open Terminal, on the General tab, gives you an actual interactive shell inside the service's running container or process, directly in your browser, no SSH access to the underlying node required at all. Under the hood your browser opens a WebSocket connection to Flow, which hands it off to the agent running on that service's node, and the agent attaches a real shell and streams it back and forth. It behaves like any terminal you're used to, resizing included.

This only makes sense while the service is actually running, so the button is disabled if it's stopped or mid-deploy. It's the right tool for things logs can't show you: checking whether a file made it into the container, running a one-off script inside the exact environment your service is running in, or poking at a database from inside the network your bot and site already share.

If you find yourself running the same command in the terminal repeatedly, on a schedule, that's worth automating instead, see Schedules.