Tsukatsuki is an open-source command-line tool designed to simplify application deployment on self-hosted infrastructure. It generates Ansible roles from selected configurations and can also produce GitHub Actions workflows to support CI/CD pipelines. Docker is used as the deployment mechanism to ensure consistent and reproducible environments.
Tsukatsuki currently supports Node.js and Go runtimes. The project focuses on a single-Dockerfile workflow: one Dockerfile is used to generate a Docker Compose setup for deployment. If multiple services or Dockerfiles are required, each must be generated and initialized as a separate Tsukatsuki project. The Dockerfile is expected to be deployment-ready before initialization.
For a more detailed documentation, please visit here: Documentation
Tsukatsuki is available to:
- Linux
- Windows via WSL
As long as your OS can run ansible as the control node, then tsukatsuki will work fine. You can however still benefits even without it, especially to generate the configuration files needed
You can download the pre-built binary package in Releases
Or by cloning the repository and build it manually:
git clone https://github.com/aLieexe/tsukatsuki.git
cd tsukatsuki
make install
After installation, the tsukatsuki command becomes available system-wide.
To generate a deployment setup, run:
tsukatsuki init
An interactive prompt guides the configuration process. Based on the selected options, Tsukatsuki generates:
- A
tsukatsuki.yamlconfiguration file - Ansible roles required for deployment
- Supporting files needed for Docker-based deployment
All selected configurations are stored in tsukatsuki.yaml and reused for future commands.
Only one Dockerfile is supported per project. Each Dockerfile results in a single Docker Compose configuration. Multiple Dockerfiles must be initialized in separate project directories.
After initialization is complete, deployment can be started with:
tsukatsuki deploy
This command uses the generated configuration and Ansible roles to deploy the application to the target server using Docker.
For server management, currently tsukatsuki present an easy way to access it via SSH by running:
tsukatsuki ssh
A way to manage server easier is planned and will be continued to be worked on in the future