Zerops is a dev-first cloud platform and easy to use and economically viable deployment platform with free $15 credits no credit card required. You can get $50 more after adding $10 into your zerops account.

Zerops’ free allowance of $15 is enough to deploy any type of full stack project without any credit card.

Prepare an application

We will need a Gleam backend web application to deploy in this guide, so first we will make one. If you already have an application skip to the next section.

Create a new Gleam project and add the required dependencies.

gleam new my_web_app
cd my_web_app
gleam add mist gleam_http gleam_erlang

Open up src/my_web_app.gleam and replace the contents with this code that defines a micro web application.

import mist
import gleam/erlang/process
import gleam/bytes_builder
import gleam/http/response.{Response}

pub fn main() {
  let assert Ok(_) =
    web_service
    |> mist.new
    |> mist.bind("0.0.0.0")
    |> mist.port(8080)
    |> mist.start_http
  process.sleep_forever()
}

fn web_service(_request) {
  let body = bytes_builder.from_string("Hello, Zerops!")
  Response(200, [], mist.Bytes(body))
}

Now we have a web application that listens on port 8080 and can be started with gleam run.

Gleam x Zerops Quickrun

Want to test Gleam with Postgres on Zerops without installing or setting up anything? Use the Zerops Gleam recipe Zerops x Gleam using the project import yaml mentioned below or Deploy with a Single Click.

project:
  name: recipe-gleam
  tags:
    - zerops-recipe
    
services:
  - hostname: api
    type: gleam@1.5
    enableSubdomainAccess: true
    buildFromGit: https://github.com/zeropsio/recipe-gleam
    
  - hostname: db
    type: postgresql@16
    mode: NON_HA
    priority: 1

Manual Basic Project Creation

Projects and services can be added either through a Project add wizard or imported using a yaml structure:

# see https://docs.zerops.io/references/import for full reference
project:
  name: recipe-gleam
services:
  - hostname: app
    type: gleam@1.5
    enableSubdomainAccess: true

This will create a project called recipe-gleam with a Zerops Static service called app.

Add Zerops.yml

zerops:
  - setup: app
    build:
      base: gleam@1.5
      buildCommands:
        - gleam export erlang-shipment
      deployFiles: build/erlang-shipment/~
    run:
      base: gleam@1.5
      ports:
        - port: 8080
          httpSupport: true
      start: ./entrypoint.sh run

Set up the Zerops CLI

Follow the instructions here to install zCli, the command-line interface for the Zerops.io platform.

Windows

irm https://zerops.io/zcli/install.ps1 | iex

Linux/MacOS

curl -L https://zerops.io/zcli/install.sh | sh

Npm (Package Manager)

npm i -g @zerops/zcli

Once installed use the CLI to connect to your Zerops Account:


Authentication & Deploying

zcli login <token>
zcli push

This will deploy the package to Zerops service and after it successfully deploys you can test it with the subdomain url.

You can also setup git based deployments by connecting the app service with your GitHub / GitLab repository from inside the service detail.