Concepts

Service

An application consists of one or more frontend and backend services. Every service can be built with its own technology stack.

Viewing your services

The services of an application are shown on the environment page. You can view the services in grid view or in architecture view.

shipmate_services_table.webp

shipmate_services_map.webp

Click on the name of a service to open a panel with all its details.

shipmate_service_details.webp

Creating a service

To create a service, click on the button labeled Deploy environment in the top-right corner of the environment page.

shipmate_deploy_environment.webp

Next, click on one of the vertical placeholders labeled Add service in the center of the page.

shipmate_create_service.webp

Fill out the form that appears.

  • For the name, specify a name in snake-case notation that is unique within your application. For example, backend, frontend, web_client, etc. Note that the name of a service cannot be changed later on.

shipmate_create_service_form.webp

After submitting the form, your service should appear in the services table. At this moment, the creation is pending and can still be canceled. To persist the creation, click the button labeled Deploy in the top-right corner of the page.

shipmate_create_service_deployment.webp

Deleting a service

To delete a service, click on the button labeled Deploy environment in the top-right corner of the environment page.

shipmate_deploy_environment.webp

Next, hover the service's name to reveal an ellipsis. Click the ellipsis, and in the menu that appears, click the button labeled Delete service.

shipmate_delete_service.webp

Fill out the form that appears.

shipmate_delete_service_form.webp

After submitting the form, your service should disappear from the services table. At this moment, the deleting is pending and can still be canceled. To persist the deletion, click the button labeled Deploy in the top-right corner of the page.

shipmate_delete_service_deployment.webp

Configuration as code

Shipmate stores the configuration of your application in the .shipmate/ directory in your Git repository. Note the dot in front of the name.

This means:

  • Every time you create, update, or delete a service in Shipmate, the configuration files in your Git repository are updated.
  • Every time you create, update, or delete a configuration file in your Git repository, Shipmate applies the changes to your environments.

Each file in the .shipmate/ directory defines one service of your application. The file must be written in YAML format and use the extension .yml or .yaml.

service:
  type: php:1.0
  variables:
    path_to_source_code: backend/
    php_version: 8.1
  environment:
    APP_KEY: null

The type of the service corresponds to the technology the service is built with. The version after the type is the API version within Shipmate that defines the variables that can be used to configure the service.

The variables allow you to override the service's default configuration to match your implementation. You can find a complete list of the available variables for each technology on the pages listed below.

The environment lists all the environment variables that are passed to your application at runtime.