Your first application
Start with an image or a template, inspect the plan, then follow the rollout.
Select a project and environment before creating an application. Development, staging and production are separate scopes; choosing one does not copy data or configuration from another.
Start in the dashboard#
Open New application to use container images or import TOML. For a database or an application with several prerequisites, start in Catalog. The template form identifies required variables, secret references, storage and resource requirements before review.
You can also import a specific TOML path from an approved GitHub or GitLab repository. Repository approval and account sign-in are separate. See Deployments for source setup.
Start with the CLI#
Use the management API address supplied by your operator. The address below is an example; replace it with your installation's HTTPS API origin or its documented loopback tunnel.
hakopod login --api-url https://control.example.com --project demo --environment development
hakopod init --name hello
Login opens browser consent for the selected scope. The initializer creates this complete application file, refusing to overwrite an existing one:
schema_version = 1
name = "hello"
[services.web]
image = "nginxinc/nginx-unprivileged:stable-alpine"
port = 8080
public = true
The image is the CLI's built-in starter. During deployment, Hakopod resolves its tag to an immutable digest. public = true requests HTTP ingress; it does not publish arbitrary TCP ports.
Review and deploy#
hakopod validate --file hakopod.toml
hakopod plan --file hakopod.toml --project demo --environment development
hakopod deploy --file hakopod.toml --project demo --environment development --wait
hakopod status hello --project demo --environment development
Validate checks the file locally. Plan shows normalized configuration, differences, warnings and resource profiles. Deploy obtains a fresh plan and submits it with the expected application revision. A concurrent change causes a conflict rather than silently replacing someone else's work.
Open the resulting application in the dashboard. Follow its deployment, inspect service readiness, then use its assigned public endpoint. A previously successful deployment does not prove a service is healthy now; check current observations and pod events.
When a service does not become ready#
Check the pod's events for scheduling, storage and image-pull errors. Check that the image listens on the declared port and supports an unprivileged user. An HTTP healthcheck must return success at its configured path. A node taint or lack of capacity cannot be fixed by changing a displayed status.
Read recent logs with:
hakopod logs hello --service web --tail 100
Next, add configuration, connect private services, or set up a source deployment.