v1

Most aspects of a combined service can be configured after creation - except the name and linked repository branch.

If you're on a user account you can create a free service which will have limited resources and only one replica.

  1. Choose service from the create new menu in the top right corner of the dashboard
  2. Select combined service and click create new service
  3. Enter a service name and description
  4. Choose the Git provider which contains the repository you want to build from
  5. Select the repository from the drop-down list. If you're a member of a team and your team administrator has restricted the team to a namespace, you'll need a linked account with access to that namespace.
  6. Select the branch you want the service to build from
  7. Choose your build type: Dockerfile if you have a custom Dockerfile in your registry or Buildpack to automatically build your application
  8. Dockerfile only: verify your Dockerfile. If your Dockerfile and/or build context are not root, specify the relative paths.
  9. Northflank will automatically detect and add ports exposed in your Dockerfile, or add a public port for Buildpack. Adding and editing ports will be covered in more detail later in this walkthrough.
  10. If you're not creating a free service leave the compute plan and replicas as default for now, this walkthough will cover scaling later
  11. Click create service
Creating Combined Service

You will be taken to your new service's overview after creating it, you can find your service again by clicking on the services icon in the project menu on the left.

Your combined service will immediately start to build the latest commit to your branch.

Your combined service has CI/CD enabled by default and will automatically build and deploy the latest commits to your linked repository branch.

Combined service controls

The service header displays some useful details of the service at a glance:

  • Public ports
  • Service region
  • Git repository
  • Repository branch
  • Currently deployed commit hash
  • Active containers and their status

You can manage your service using the controls found at the top of the dashboard:

  • You can toggle CI (continuous integration) to enable or disable the automatic build of the latest commit to the repository, branch, or pull request.
  • You can toggle CD (continuous delivery) to enable or disable the automatic deployment of new builds to your service. All instances will be redeployed with the new build. If you also have CI enabled, your service will automatically build and deploy the latest commits from your tracked branch.
  • You can trigger a restart to automatically replace the running containers with new instances. An old container will not be halted until its replacement is confirmed running.
  • You can scale the amount of instances up or down by entering the desired amount and saving.
  • You can pause to disable CI/CD and scale the service to 0 instances.

Service overview

The service overview contains real-time information on:

  • Recent builds by the service
  • Latest commits to the linked repository branch
  • Active containers and their status
  • Any configured public and private ports
  • Local access, which includes commands to connect to the service on your machine via the Northflank CLI

This walkthrough will take you through two commons tasks to configure a deployment: exposing a public port and increasing the resources available to your service.

Add a public port

Northflank can automatically detect and configure ports exposed in your Dockerfile, however you may sometimes need to manually add or edit ports.

Your Dockerfile should expose the port(s) configured in your application/service. For example if you have an Express.js application configured to listen for requests on port 3000, your Dockerfile should include EXPOSE 3000.

  1. Go to the ports & DNS page in your service
  2. Click edit ports and then add port
  3. The port will be toggled to public by default, leave this setting
  4. Choose a unique name for your port
  5. Select HTTP as the protocol (public ports only support HTTP and HTTPS)
  6. Enter the port that matches one exposed by your Dockerfile (this can be the same as an existing port if your port has already been added)
  7. Click update & restart to restart your deployment using the newly configured port
  8. Wait for the new containers to come online (you can monitor their status using the bar in the header, or on the containers page) and then visit your new public Northflank domain, which takes the format:

    [port-name]--[service-name]--[project-name]--[entity-dns-id].code.run

Northflank will automatically generate TLS certificates for your public ports using Let's Encrypt .

If the website or service is inaccessible, check that the correct ports exposed by your application and Dockerfile.

Increase your service's resources

The resources dedicated to your services will determine how they perform under load.

To build your code more quickly or run intensive applications you may need to increase the compute plan (CPU and memory) of your service.

If you expect or experience a high volume of traffic to your deployment, you should scale up the number of replicas. Northflank will automatically load-balance incoming traffic to your replicas to ensure maximum availability.

You can quickly scale the number of containers your deployment is running from the service header controls, but you can scale your service and increase other resources from the resources page.

  1. Go the resources page in your service
  2. Toggle free service off if you have created a free service
  3. Select a new compute plan with a combination of a higher share of a vCPU, or a dedicated CPU, and higher memory
  4. Increase the number of containers
  5. Update & restart your service to deploy that number of new containers with the selected resources

© 2021 Northflank Ltd. All rights reserved.