candilano
Version, currently 0.12.07 versions
github.com/gem-shards/candilano
:candy: A multi-server deployment tool for Crystal apps inspired by Capistrano
6 stars
0 dependents
License: MIT
Nothing has been indexed for 0.12.0 yet. The tag is recorded, its shard.yml has not been read, so the manifest and dependency list below are empty because they are unknown rather than because they are absent.
Installation
# Add this to your shard.yml
dependencies:
candilano:
github: gem-shards/candilano
version: ~> 0.12.0Then run:
shards installshard.yml
No shard.yml has been indexed for 0.12.0. You can read it on the repository.
Dependencies
Unknown: the shard.yml for this version has not been read yet.
README
This README is the one indexed from the repository at its latest ref, not from the tag for this version.
[](https://github.com/gem-shards/candilano/releases)
# :candy: Candilano
A **multi-server deployment tool**, inspired by [Capistrano](https://capistranorb.com/), the deployment tool for Ruby.
This library is tailored to web applications and can be used to deploy your app to one or multiple servers in a consistent and configureable way. It supports all web frameworks available for Crystal. The configuration is YAML based and is inspired by [Ansible](https://github.com/ansible/ansible).
Be aware this is still under development and can break things.
## Table of Contents
- [Installation](#installation)
- [Usage](#usage)
- [Init](#init)
- [Check](#check)
- [Deploy](#deploy)
- [Rollback](#rollback)
- [Restart](#restart)
- [Configuration](#configuration)
- [Development](#development)
- [Contributing](#contributing)
- [Contributors](#contributors)
## Installation
1. Add the dependency to your `shard.yml`:
```yaml
dependencies:
candilano:
github: gem-shards/candilano
```
2. Run `shards install`
3. Add the following lines to your **targets** in shards.yml:
```yaml
targets:
can:
main: lib/candilano/src/candilano.cr
```
4. Run `shards build can` to build candilano
## Usage
### Init
Run init script in the projects root path:
```bash
./bin/can init
```
It will create a deploy directory with two yaml files for sandbox and production use. You can modify the files to your liking.
### Check
Run the `check` command to check if you can connect to your servers and see if it has all the permissions are set to start a deploy.
```bash
./bin/can check production
```
### Deploy
With the `deploy` command you will execute a deployment.
```bash
./bin/can deploy production
```
### Rollback
With the `rollback` command you will execute a deployment.
```bash
./bin/can rollback production
```
### Restart
With the `restart` command you can restart your running application.
```bash
./bin/can restart production
```
## Configuration
If you run the `init` command it will generate the following configuration:
```yaml
---
app_name: 'your-app-name'
repo_url: 'git@github:repo.git'
branch: 'master'
deploy_to: '/location/to/deploy'
keep_releases: 5
restart_command: 'service your-app-name restart'
# Optionally, set a migrate command for database migrations
# It will execute on the 'db' role only when it's present.
# migrate_command: 'db migrate'
ssh:
user: user
password: password
port: 22
key: '~/.ssh/id_rsa'
forward_agent: true
# linked_files:
# - 'config/settings.yml'
# linked_directories:
# - 'log'
# - 'tmp'
servers:
- host: 127.0.0.1
roles:
- web
- db
# - host: 127.0.0.1
# roles:
# - web
# hooks:
# before:
# - command: 'free'
# task_group: 'rollback:get_previous_version'
# target: 'remote'
# on_role: 'db'
# after:
# - command: 'free'
# task_group: 'rollback:get_previous_version'
# target: 'local'
```
## Development
This library is under development. It is already used in production by myself. I still want to implement the following features:
- Show more debug info if command fails
- Ansible like variables and checks
- Dry-run support
- Ability to write your own 'programs'
## Contributing
1. Fork it (<https://github.com/gem-shards/candilano/fork>)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
## Contributors
- [Gem shards](https://github.com/gem-shards) - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.12.0- Tagged
- Sep 29, 2025
- Commit
370f3bcb0ddd- Indexed
- not yet
Dependents
No indexed shard depends on this one yet.
Repository
github.com/gem-shards/candilano
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 14, 2026
- Synced
- Aug 14, 2026
- Versions
- 7