Like the Roman javelin — one throw, every target.
Move fast, deploy faster. No custom CI/CD required.
Standardize everything. One config format across all teams, all clouds.
Cloud-agnostic configs. Same service.yaml deploys to GCP, AWS, or Azure.
Just pilum deploy. Stop copy-pasting deploy scripts.
Drop a service.yaml in each service directory
Run pilum deploy from your project root
All services deployed in parallel to their targets
One throw, multiple targets. More coming soon.
Drop a service.yaml in each service directory.
Run pilum deploy. Done.
Real examples from production.
# Deploy API to Cloud Run
name: api-gateway
type: gcp-cloud-run
project: my-gcp-project
region: us-central1
build:
language: go
version: "1.23"
env_vars:
CGO_ENABLED: "0"
GOOS: linux
GOARCH: amd64
env_vars:
LOG_LEVEL: info
ENV: production
secrets:
DATABASE_URL: projects/my-gcp-project/secrets/db-url # Pilum deploys itself
name: pilum
type: homebrew
description: Multi-cloud deployment CLI
license: BSL-1.1
homebrew:
project_url: https://github.com/SID-Technologies/pilum
tap_url: https://github.com/SID-Technologies/Homebrew-Pilum
token_env: GH_TOKEN
build:
language: go
version: "1.23"
output: dist/pilum
env_vars:
CGO_ENABLED: "0"
platforms:
- os: darwin
arch: amd64
- os: darwin
arch: arm64
- os: linux
arch: amd64 Arm yourself in seconds.
brew tap sid-technologies/pilum && brew install pilum
Used in production by
Pilum is free forever. Contributions welcome.
The pilum was the iconic javelin of the Roman legions. Designed with a long iron shank and weighted tip, it was engineered for one purpose: to be thrown once and hit the target with devastating precision.
Upon impact, the soft iron shank would bend, rendering the enemy's shield useless and impossible to throw back. One weapon. One throw. Mission accomplished.
Like its namesake, Pilum is designed to hit your deployment targets precisely, every time.