Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ak9024/rilis
Local deployment tools built with Rust
https://github.com/ak9024/rilis
rust ssh vm
Last synced: 12 days ago
JSON representation
Local deployment tools built with Rust
- Host: GitHub
- URL: https://github.com/ak9024/rilis
- Owner: ak9024
- License: apache-2.0
- Created: 2024-10-09T08:39:29.000Z (about 1 month ago)
- Default Branch: master
- Last Pushed: 2024-10-24T14:38:31.000Z (25 days ago)
- Last Synced: 2024-10-25T06:37:41.969Z (25 days ago)
- Topics: rust, ssh, vm
- Language: Rust
- Homepage:
- Size: 99.6 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE-APACHE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Rilis
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/ak9024/rilis/ci.yml?style=for-the-badge) ![GitHub License](https://img.shields.io/github/license/ak9024/rilis?style=for-the-badge) ![GitHub repo size](https://img.shields.io/github/repo-size/ak9024/rilis?style=for-the-badge)
[![asciicast](https://asciinema.org/a/680727.svg)](https://asciinema.org/a/680727)
## 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
```shell
# download from crates
cargo install rilis# download latest version from git
cargo install --git https://github.com/ak9024/rilis
```Please see the examples [here](https://github.com/ak9024/examples-rilis)
## Configuration
Create configuration named `deploy.toml`.
```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`
```yaml
version: "3.8"services:
home:
container_name: home
image: httpd:latest
ports:
- "3000:80"
```Then start `rilis --cfg deploy.toml`
## More
```shell
rilis -h
```## Star History
## License
MIT & Apache 2.0