Deploy your first app
You’ll create an environment, deploy a small container app, and see instances, logs, and copies in the dashboard.
Before you start
- A connected cluster (previous step)
- A container registry you can push to (Docker Hub, GitHub Container Registry, or a private registry)
Build the image
- Python
- Go
App (main.py)
import time
def main():
while True:
print("heartbeat")
time.sleep(2)
if __name__ == "__main__":
main()
Dockerfile
FROM python:3.12-slim
WORKDIR /app
COPY main.py .
CMD ["python", "main.py"]
App (main.go)
package main
import (
"fmt"
"time"
)
func main() {
for {
fmt.Println("heartbeat")
time.Sleep(2 * time.Second)
}
}
Dockerfile
FROM golang:1.23 AS build
WORKDIR /app
COPY main.go .
RUN go build -o heartbeat main.go
FROM debian:stable-slim
WORKDIR /app
COPY --from=build /app/heartbeat .
CMD ["./heartbeat"]
Build, smoke-test, and push:
docker build -t xooshe-test-project:0.0.1 .
docker run --rm xooshe-test-project:0.0.1
docker push <REGISTRY_ADDRESS>/xooshe-test-project:0.0.1
Create an environment
An environment is an isolated place for apps (for example demo-dev).
- Click Manage environments on the home dashboard.

- Enter a name and create it.

Terms we use
Xooshe says environment. In Kubernetes this is a namespace. See Terms we use.
Deploy
- Click New App.
- Choose a stateless application.
- Enter image name and tag (
<REGISTRY_ADDRESS>/xooshe-test-projectand0.0.1).
- Fill general info (defaults are fine for this demo).

- On resources:
- Select the environment you created
- Set copies to
1
- Click Finish.
You’re done when
- The app appears in the list and becomes healthy / running.
- Open the app and check logs — you should see
heartbeatabout every two seconds. - You should see one instance for one copy.
If it fails
| Symptom | Fix |
|---|---|
| Image pull failed | Check registry name/tag and whether the registry needs credentials |
| App missing after deploy | Confirm the correct environment and that you clicked Finish |
| No logs | Confirm the process writes to standard output |
Apps managed by Xooshe
Apps you create in Xooshe can be edited, paused, restarted, and scaled here. Workloads created outside Xooshe may appear for visibility but cannot always be changed from the dashboard.