--- title: "Deploy Your Application" url: https://docs.catalyst.zoho.com/en/tutorials/photo-store-app/nodejs/deploy-app/ description: "Build a React gallery app to upload images to a bucket in Stratus, and shre these images with other registered users. Host the app on AppSail and sync with GitHub and deploy the app usiong Pipelines." last_updated: 2026-08-17T12:16:04Z service: All Services type: tutorial related_links: - name: "Catalyst Stratus" url: /en/cloud-scale/help/stratus/introduction/ - name: "Catalyst Pipelines" url: /en/pipelines/help/pipelines/introduction/ - name: "Configure Pipelines Flow" url: /en/pipelines/help/catalyst-pipelines.yaml/implementation/ - name: "CLI Deploy Resources" url: /en/cli/v1/serve-resources/introduction/ - name: "Stratus Web SDK" url: /en/sdk/web/v4/cloud-scale/stratus/overview/ - name: "Stratus REST API" url: /en/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets --- # Deploy Your Application We're going to be using the [Catalyst Pipelines](https://docs.catalyst.zoho.com/en/pipelines/help/pipelines/introduction/) service to deploy and maintain your application in both the Catalyst console and your required GitHub repository. Using the Pipelines service allows us to use a platform dependent package like [Sharp](https://www.npmjs.com/package/sharp). We require the Sharp package to convert and render the uploaded images as thumbnails in the client. Catalyst runs on a Linux machine, in order to use the sharp package and host it on Catalyst, you could install Linux based package library for sharp package and deploy the application. Alternatively, you could easily deploy the application using the Catalyst Pipelines service and all the required dependencies will be handled automatically. Using the Pipelines service allows you to seamlessly sync your application files between your GitHub repository and the Catalyst console. To deploy the application using Pipelines: 1. Click the **Pipelines icon** present in the Console's sidebar to access the *Pipelines* service. ![catalyst_tutorials_photostore_stratus_pipelines_icons](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_icons.webp) 2. Click **Create Pipelines** ![catalyst_tutorials_photostore_stratus_pipelines_create_pipeline](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_create_pipeline.webp) 3. Name your pipeline as "`PhotoStore-pipeline`" and select **GitHub** as the integration source. ![catalyst_tutorials_photostore_stratus_name_github_sel](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_name_github_sel.webp) > **Info:** We are demonstrating the Pipelines service using GitHub. You can also use the GitLab and BitBucket sources if your requirement demands it. 4. Add your GitHub account from the drop-down. If you haven't added it previously, you can click the **+Add Account** button and follow the login steps to add the GitHub account to the *Catalyst Pipelines* service. ![catalyst_tutorials_photostore_stratus_sel_github_acc](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_sel_github_acc.webp) 5. Select your required GitHub *Organization*, and the repository you had earlier created to maintain the application files. ![catalyst_tutorials_photostore_stratus_sel_github_acc_repo_sel](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_sel_github_acc_repo_sel.webp) 6. You will now be directed to the **code-view** of the `catalyst-pipelines.yaml` file. ![catalyst_tutorials_photostore_stratus_pipelines_yml_code_file_org](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_yml_code_file_org.webp) You can also click the **Builder** tab to configure the `.yaml` file using the UI. ![catalyst_tutorials_photostore_stratus_sel_github_acc_yaml_buildeR_file](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_sel_github_acc_yaml_buildeR_file.webp) 7. Copy and paste the following snippet to define the sequence of [stages](https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/stages/) and [configure your Pipeline's flow](https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/implementation/). **catalyst-pipelines.yaml** ```xml version: 1 jobs: deploy: steps: - cd photo-store-app - npm install - npm run build - cd .. - cd server - npm install - cd .. - cd scripts - npm install - cd .. - node ./scripts/filesHelper.js -c ./server/ ./build/server/ - node ./scripts/filesHelper.js -c ./photo-store-app/build/ ./build/photo-store-app/ - npm install -g zcatalyst-cli@beta - catalyst deploy stages: - name: build jobs: - deploy ``` 8. Click **Commit** to execute your Pipeline. ![catalyst_tutorials_photostore_stratus_pipelines_yml_cmpltd](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_yml_cmpltd.webp) 9. Provide a commit message and click **Commit**. ![catalyst_tutorials_photostore_stratus_pipelines_commit_msg](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_commit_msg.webp) You will be directed to the overview section, where the status of the pipeline will be displayed along with other general details. ![catalyst_tutorials_photostore_stratus_pipelines_queued](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_queued.webp) With this step, the Pipeline has been configured and it will automatically begin its execution. ### Add Global Variables We will be adding two Global Variables for this Pipeline. * `CATALYST_TOKEN`: This variable needs to be added to point your local CLI to the Pipeline. Steps to generate the required token are listed below. > **Note:** This variable should be mandatorily added if you are using the CLI for deploying using the Pipeline service. * `CI`: You will need to set the value as `False`. This will ensure that the Pipeline will not fail even if there happens to be warnings in your code. > **Info:** [Learn more about Global Variables](https://docs.catalyst.zoho.com/en/pipelines/help/catalyst-pipelines.yaml/build-the-pipeline/variables/#global-variables). #### Generate Catalyst Token We need to generate a token to allow Catalyst CLI to execute CLI commands from your local system to the Pipeline. To generate a token: 1. Execute the following command in your CLI ```sh catalyst token:generate ``` ![catalyst_tutorials_photostore_stratus_pipelines_token_gen](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_token_gen.webp) 2. Navigate to the URL displayed in your CLI, enter the verification code generated in the CLI, and click **Verify**. ![catalyst_tutorials_photostore_stratus_pipelines_token_entered](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_token_entered.webp) Once the CLI is verified, the token will be generated. ![catalyst_tutorials_photostore_stratus_pipelines_tokens_completed](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_tokens_completed.webp) > **Info:** [Learn more about generating tokens](https://docs.catalyst.zoho.com/en/cli/v1/working-with-tokens/generate-token/) Now, let's begin adding the required global variables. To add Global Variables: 1. Click **Global Variables**. ![catalyst_tutorials_photostore_stratus_pipelines_gv_hihglit](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_gv_hihglit.webp) 2. Enter `CATALYST_TOKEN` as key and the generated token as the value. Click the **+ icon** to add the next token. ![catalyst_tutorials_photostore_stratus_pipelines_tokens_gv_1](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_tokens_gv_1.webp) 3. Enter `CI` as the key and `False` as its value. Click **Save** to add the variables. ![catalyst_tutorials_photostore_stratus_pipelines_tokens_gv_2](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_tokens_gv_2.webp) The required variables have been added. You can check the status of the pipeline by clicking on the executed pipeline for more details. ![catalyst_tutorials_photostore_stratus_pipelines_running_status](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_running_status.webp) Click the **Advanced** tab for more details on the process. ![catalyst_tutorials_photostore_stratus_pipelines_adv_processes](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_adv_processes.webp) In a few moments, the pipeline will be successfully executed. ![catalyst_tutorials_photostore_stratus_pipelines_success_exec](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_success_exec.webp) The application will now be in sync in GitHub and the Catalyst console. ![catalyst_tutorials_photostore_stratus_pipelines_success_github](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_success_github.webp) You will now be able to access the deployed version of the application using the **App URL** generated in the AppSail component present in the *Catalyst Serverless* service. ![catalyst_tutorials_photostore_stratus_catalyst_appsail_service_url_first_dep](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_catalyst_appsail_service_url_first_dep.webp) You can execute this URL in the browser to access the deployed version of your application. ![catalyst_tutorials_photostore_stratus_pipelines_app_deployed_done](https://catalyst-docs-development.zohostratus.in/images/tutorials/photo-store/catalyst_tutorials_photostore_stratus_pipelines_app_deployed_done.webp)