--- title: "Initialize an AppSail service" url: https://docs.catalyst.zoho.com/en/cli/v1/initialize-resources/initialize-appsail/ description: "Initialize a Catalyst AppSail web service in a Catalyst-managed runtime of Java, Node.js, and Python, or in a custom runtime as an OCI image in your project directory to deploy it to the cloud." last_updated: 2026-08-17T12:16:04Z service: All Services type: general --- # Initialize AppSail ### Introduction AppSail is a serverless platform of Catalyst that you can use to deploy web services of any scale to the cloud and manage its platform instances. You can initialize an AppSail service in one of two ways: * **As a Catalyst-managed runtime**: Initialize and deploy applications of specific Java, Node.js, and Python runtimes supported by Catalyst directly to the remote console * **As a Container image**: Initialize and deploy an OCI image of your application of any runtime or framework from your local registry to the remote console > **Note:** Catalyst only supports the deployment of [OCI-compliant images](https://github.com/opencontainers/image-spec) built for the Linux AMD64 (x86-64) platform. **[ Refer here for more details](https://docs.catalyst.zoho.com/en/serverless/help/appsail/introduction/).** In both cases, you can initialize an AppSail service for an app that is ready to be deployed, and associate it with a Catalyst project through this command. > **Info:** You can associate an existing Catalyst project directory with an AppSail app using the `[appsail:add command](https://docs.catalyst.zoho.com/en/cli/v1/add-appsail/)`. You can also directly deploy an app without initialization through the [standalone command](https://docs.catalyst.zoho.com/en/cli/v1/deploy-resources/deploy-appsail/). ### Initialize AppSail as a Catalyst-Managed Runtime You can initialize an AppSail service for a Catalyst-managed runtime directly in your app's directory, or from a new directory. If you had selected AppSail during the project initialization, Catalyst will set it up after the client initialization. Catalyst creates an **[`app-config.json](https://docs.catalyst.zoho.com/en/serverless/help/appsail/catalyst-managed-runtimes/key-concepts/#the-app-configjson-file)`** file when an AppSail service is initialized in this method. 1. The CLI will prompt you to select the runtime type as **Catalyst-Managed Runtime** or **Docker Image** when AppSail is initialized. Select the first option. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_0.webp) 2. You can now choose to get started with a readymade sample project by entering "Y" and pressing **Enter**, then selecting a sample app from the list. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_1.png) The sample app will be downloaded to the directory. Provide a name for it when prompted. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_2.png) If you want to initialize your own app, enter "N" , then press **Enter**. 3. Select if this will be your [source directory](https://docs.catalyst.zoho.com/en/serverless/help/appsail/catalyst-managed-runtimes/key-concepts/#source-directory-and-build-path) of your app by entering "Y". If you enter "N", the CLI will prompt you to type in the absolute path for your app's source in your directory. Press **Enter** after the entries. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_3.png) 4. Enter a name for your app. You can name the main file of your app's build anything you prefer. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_4.png) > **Note:** When you build your app as a Java WAR file, you will need to name the main file `root.war` or add specific controllers according to your code. 5. Enter the absolute [build path](https://docs.catalyst.zoho.com/en/serverless/help/appsail/catalyst-managed-runtimes/key-concepts/#source-directory-and-build-path) for your app, then press **Enter**. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_5.png) 6. Select a stack and runtime for your app and press **Enter**. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_6.png) If you select Java, the CLI will further prompt you to pick either **Java SE** or the **Java WAR** as your app's deployable format. You can learn more about this [here](https://docs.catalyst.zoho.com/en/serverless/help/appsail/catalyst-managed-runtimes/key-concepts/). ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_7.png) If you select any other stack, this will be skipped. AppSail is now initialized in the source directory you selected, and the app is now associated with the Catalyst project. The configurations will be updated in [`catalyst.json`](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/catalyst-json/) file accordingly. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_8.webp) This initialization will only create the [`app-config.json](https://docs.catalyst.zoho.com/en/serverless/help/appsail/catalyst-managed-runtimes/key-concepts/#the-app-configjson-file)` configuration file that is specific to AppSail in your app's source directory. You can edit the values such as the startup command, environment variables, or memory in this file before deploying. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_9.webp) ### Initialize AppSail as a Custom Runtime You can initialize AppSail for a compliant OCI image of your app from a new directory. Catalyst supports two protocols that you can use to associate your app's image with AppSail. Each protocol has a distinct schema for identification and functioning. * **Docker Image Protocol:** Use this to associate a pre-built image of your app present in the local docker registry. The image must be built and [tagged](https://docs.docker.com/reference/cli/docker/image/tag/) to point to the local registry. Example: *docker://localhost/expres-hw:latest* * **Docker Archive Protocol:** Use this to point to an archive file (.tar or .tar.gz) of a pre-built image of your app in your system's directory. Example: *docker-archive://test.tar* > **Note:** The `.tar` file can be typically generated with the [`docker save` command](https://docs.docker.com/reference/cli/docker/image/save/). You need not provide any other details except the name for the AppSail for container images. The source or build path of the app, stack, and startup command are not required to be configured for OCI images, as they are already defined in the images. 1. The CLI will prompt you to select the runtime type as Catalyst-Managed Runtime or **Docker Image** when AppSail is initialized. Select the second option. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_01.png) 2. Select the protocol as **Docker Image** or **Docker Archive**. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_02.png) 3. **Docker Image Protocol:** If you select **Docker Image**, the CLI will list all the available images with tags in the local docker registry. Select the image you need. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_03.png) **Docker Archive Protocol:** If you select **Docker Archive**, the CLI will prompt you to enter the absolute path to the TAR file image of your app in your local system. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_04.png) > **Note:** When the AppSail configuration is stored in the [`catalyst.json`](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/catalyst-json/) file, the path will be stored relative to that file's location. 4. Provide a name for the AppSail service. You can name it anything you prefer. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_05.png) AppSail is now initialized in your local directory, and the app's image is now associated with the AppSail service. The configurations will be updated in [`catalyst.json`](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/catalyst-json/) file accordingly. ![catalyst_cli_appsail_init_1](https://catalyst-docs-development.zohostratus.in/images/cli/initialize-resources/catalyst_cli_appsail_init_06.png) > **Note:** The [`app-config.json](https://docs.catalyst.zoho.com/en/serverless/help/appsail/catalyst-managed-runtimes/key-concepts/#the-app-configjson-file)` file will not be created when you initialize AppSail with a container image. All the app specifications will be stored in the `catalyst.json` file. You can add certain custom configurations of your app in this file. Refer [here](https://docs.catalyst.zoho.com/en/serverless/help/appsail/appsail-configurations/) for details. You can now code your business logic in your app, then [serve the AppSail service](https://docs.catalyst.zoho.com/en/cli/v1/serve-resources/serve-all-resources/#serve-appsail-applications) through a localhost to [debug](https://docs.catalyst.zoho.com/en/serverless/help/appsail/debug-appsail/) and test it, or [deploy it](https://docs.catalyst.zoho.com/en/cli/v1/deploy-resources/deploy-appsail/) to the remote console directly.