الملفات
Ghaymah_Cloud_Docs/Application.md
2025-09-15 11:40:31 +03:00

2.4 KiB
خام اللوم التاريخ

What is an Application?

When working with the Ghaymah CLI, an Application is the central resource youll interact with.
Its not just source code its a deployable unit wrapped in a container, ready to run anywhere.

Think of an Application as the thing you create, launch, update, and monitor through the CLI.
Everything else like containers, configs, and logs revolves around it.

Note: A Project must be created first before you can initialize or launch an Application.
The Project acts as the parent workspace that organizes your Applications and related resources.


Basic Usage

gy resource app [command]

Aliases: app, a

Tip: You can use -h or --help to see all available options.

gy resource app --help

creating an application

step 1: Initialize the Application

Run the following command to create a new application:

gy resource app init -p project_id

If you dont know your project ID or havent created a project yet, see the Projects documentation.

Flags

Flag what does it do comment
-p project_id specifies the project id required
-n name Sets the application name Optional, defaults to directory name

Step 2: deploying from a Dockerfile

To deploy using a Dockerfile, ensure that:

  • A Dockerfile exists in the project directory.
  • All necessary files referenced by the Dockerfile are present in the same directory.

Once these requirements are met, deploy the application with:

gy resource app launch

Configuring the .ghaymah.json

Example .ghaymah.json

{
  "id": "ac2d8eb7-ff49-4b8d-9a8e-92cd3aae22a6",
  "name": "nginx",
  "projectId": "b887e332-3ecd-4187-bdfb-17d8a437833e",
  "ports": [
    {
      "expose": true,
      "number": 80
    }
  ],
  "publicAccess": {
    "enabled": true,
    "domain": "auto"
  },
  "resourceTier": "t1",
  "dockerFileName": "Dockerfile"
}

Changing values

You can change name, exposed port, and dockerFileName freely.

you can only have one port per application.

Adding environment variables

Add an env object to the top-level JSON.Example:

"env": {
 "foo": "bar",
 "port": 8080
}