ShoalStack is now

platform201
GitHub App Integration

Push to Your GitHub Branch and
Start a New Deployment

Attach a public or private repository to a container or function on the platform201 visual graph, select a branch, and build from your Dockerfile or a detected stack.

Give Each Service the Code It Should Run

A container or function on the graph holds its own source. Attach a repository, or upload your code, and choose how the build works. Each deployment then reports its status and logs.

Use Public or Private Repositories

Attach a repository to a container or function through the GitHub App. For a private repository, authorize the app for specific repositories.

my-appGatewayContaineracme/apiSourceSelect a nodeGitHubUploadAuthorized repositoriesacme/websitePublicacme/apiPrivateacme/workerPrivate

Deploy From the Branch You Select

A node listens on the branch you select. A push to that branch starts a new deployment. You can disable this and start each deployment yourself.

my-apppush to mainContainerBranchdevelopmainDeploy on pushDeployment historyVersion 1SucceededVersion 2SucceededVersion 3PendingSucceeded

Choose How the Source Builds

Provide a Dockerfile for full control, or let platform201 detect the stack. With no Dockerfile, containers accept install, build, and run commands.

Container buildDockerfileDetect the stackStackNode.jsInstallnpm ciBuildnpm run buildRunnpm start

Upload Source Without a Repository

A folder or a zip also works as a source. platform201 removes dependencies and caches, and a function can start from a template in the editor.

my-appSelect a folderUpload a zipSelected folderNo folder selectedsrc/server.jspackage.jsonnode_modules/Removed.cache/RemovedDependencies and caches removed

Keep Your Code Where It Is and Still Deploy It

Your code might sit in one repository for each service, in one monorepo for all of them, or not on GitHub at all. platform201 sets the source on each node, so the graph fits how you store code.

A Repository for Each Service

Keep the frontend, the API, and the worker in separate repositories. Each node builds from its own.

Several Apps in a Monorepo

Add one container or function for each app. On each node, set a different folder to build from.

Code Not on GitHub

Select a folder or upload a zip for a container. The files must be at the root of the zip.

From a Monorepo Folder to a Live Web App

As an example, take one web app in a subfolder of a repository, with one container and one gateway. These steps go from a new environment to the live app, and then to a later push.

1

Create an Environment

In platform201, create an environment. The graph already shows a gateway connected to a container, so the web app has the two nodes it needs.

2

Attach the Repository

Click GitHub in the source section of the container. Select the repository and the branch. Then set the folder in the repository to build from.

3

Deploy the Web App

Press Deploy. With no Dockerfile in the source, platform201 detects the stack and builds the web app. When the status shows succeeded, open the gateway URL.

4

Push a Change to the Branch

Push a change to the branch the container listens on. A new deployment starts, and its version and status appear in the deployment history.

Attach One Repository and Deploy Your Next Push

Begin with one container behind a gateway, and attach a repository or upload your code. When the app needs more services, add them to the same graph and connect them.

FAQ

Continuous deployment is a practice in which a push to a branch starts a new deployment without a manual step. Each change then uses the same build steps, and the team does not need to remember to deploy. Teams usually review or test code before they push to that branch. In platform201, a push to the branch a node listens on starts a new deployment, and you can disable this behavior.