5 releases

0.1.4 Nov 6, 2024
0.1.3 Oct 27, 2024
0.1.2 Oct 24, 2024
0.1.1 Oct 24, 2024
0.1.0 Oct 13, 2024

#1329 in Command line utilities

Download history 118/week @ 2024-10-07 54/week @ 2024-10-14 334/week @ 2024-10-21 47/week @ 2024-10-28 117/week @ 2024-11-04

670 downloads per month

MIT/Apache

24KB
324 lines

Rilis

GitHub Actions Workflow Status GitHub License GitHub repo size

asciicast

Why?

I created this tool to streamline my workflow, allowing seamless communication with my server and automating the deployment process from my local machine to a virtual server. This tool is tailored to address my specific needs for efficient and automated deployments.

Key Features

  • Effortless VM (Virtual Machine) Deployment
  • Simply configure with a file deploy.toml or anything.toml and use docker-compose.yaml locally.

Installation

# download from crates
cargo install rilis

# download latest version from git
cargo install --git https://github.com/ak9024/rilis

Please see the examples here

Configuration

Create configuration named deploy.toml.

[ssh]
# required IPv4 address can be define here.
address = ""
# optional, by default is "root"
username = ""
# You can choose one using "password" or "private_key"
password = ""
# optional if do you want to connect via private_key
private_key = "/Users/adiatma/.ssh/id_ed25519"
# optional by default port 22, but you can customize by your self.
port = 22

[server]
# scp is optional, if do you want to copy file from local to the server, can be define here.
scp = [ "docker-compose.yaml" ]
# ssh commands if do you want to exec script or anything on the server.
commands = [
  "sudo docker compose -f docker-compose.yaml up -d",
  "sudo docker ps",
]

# optional support tunneling from server to your local
# [[port_forward]]
# remote_addr = "your.ip.public:80"
# local_addr = "127.0.0.1:3000"

# [[port_forward]]
# remote_addr = "your.ip.public:4000"
# local_addr = "127.0.0.1:4000"

You can define multiple configuration for multiple use case for automation, examples to provision VM using setup.toml, then for deployment using deploy.toml.

Docker

Prepare your docker-compose.yaml

version: "3.8"

services:
  home:
    container_name: home
    image: httpd:latest
    ports:
      - "3000:80"

Then start rilis --cfg deploy.toml

More

rilis -h

Star History

Star History Chart

License

MIT & Apache 2.0

Dependencies

~18–28MB
~428K SLoC