CI/CD, logs and errors
on your own server.

argon is one CLI tool that lives on your server. It deploys from workflows in your repo, collects your logs, tracks errors and watches the machine, all from the terminal. Connect it to IWS Console when you want a web UI.

curl -fsSL https://console-server.iwsconsole.com/argon/install.sh | sudo bash

Linux · amd64 and arm64 · systemd

Everything a server needs after the code lands

Workflows in your repo

Write .argon/workflow/*.yml in GitHub Actions syntax. argon reads the workflow from the commit it ships, so the pipeline is versioned with the code.

CI/CD without a webhook

argon checks your Git remote itself, every 5 minutes or as often as you set: pushes, tags, pull requests and schedules start runs. A webhook, served by argon itself, makes it check at once.

Never runs your code as root

Steps run as the project folder's owner in a clean environment. Restarts are limited to the services root allows. No port is opened unless root asks.

Logs found for you

Add a project and argon finds its logs: pm2, systemd, Docker Compose and the usual log files. Query, filter and follow them from the terminal.

Error tracking, Sentry compatible

Point any Sentry SDK at argon. Errors are grouped into issues, linked to the deploy that shipped them, with the log lines that came before.

A live view in the terminal

Type argon. Like top, it shows CPU, memory and disks, your projects, the deploy queue and live logs, refreshed every two seconds.

From install to first deploy in three steps

1

Install

One line on the server. argon checks the download's SHA-256, installs the argon CLI tool and starts its systemd service.

2

Add a project

Run sudo argon add project in the repo root. Logs start flowing at once; a workflow, if there is one, makes it deployable.

3

Deploy

Push to your branch, or run sudo argon deploy and pick the project and workflow. Follow the run live.

The syntax you already know

A subset of GitHub Actions: jobs, needs, steps, if, env, inputs, schedules and secrets. Each run: goes through bash as the project's owner. argon adds three steps of its own: restart a pm2 process or systemd unit, check a health URL, write a note to the run's log.

  • One run at a time per server; the rest queue, first come first served
  • Approval for production, from the CLI or a connected app
  • Fast-forward only: work on the server is never thrown away
  • Secrets stay on the server and are hidden in logs
Workflow reference →
.argon/workflow/production.yml
name: Production
on:
  workflow_dispatch:
  push: {branches: [main]}
environment: production
jobs:
  build:
    steps:
      - run: pnpm install --frozen-lockfile
      - run: pnpm build
  release:
    needs: build
    steps:
      - run: pnpm migrate
        env:
          DATABASE_URL: ${{ secrets.DATABASE_URL }}
      - argon/restart: pm2:my-app
      - argon/health: https://my-app.example.com/health

Everything works from the CLI

argon has no web UI of its own and needs none. Every action is a command, and plain argon opens a live view of the server. Apps such as IWS Console connect to argon over a signed protocol and become its UI, with the scopes root grants them.

CLI reference →

Put argon on your server

One line to install, one command to add a project. The guide covers the rest.