A simple and non-intrusive tool to deploy and manage your containerized applications with Docker on remote servers.
Flint was designed with a core idea: simplicity and respect for your server environment. Unlike other deployment tools that take full control of your machine, Flint is designed to be as unintrusive as possible.
- ✅ No Root Access: No need for
sudoorrootpermissions to operate. The tool runs entirely in user space. - 🐋 Docker-Based: Leverages the power and isolation of Docker to deploy your applications.
- 🚀 Automated Reverse Proxy: A reverse proxy is automatically configured to expose your services, without complex manual configuration.
- 📂 No Database: No database to install or maintain. Configuration is managed through simple files.
- 💡 Lightweight and Simple: A single application to run to manage the entire lifecycle of your deployments.
Flint is an application written in Go that exposes a REST API (via the Gin framework) to manage deployments. It works by connecting to your remote server (e.g., via SSH) and using the machine's Docker API to manage containers.
- Configuration: You describe your applications in a simple configuration file (e.g.,
docker-compose.ymlor a proprietary format). - Deployment: The tool transfers the configuration to the remote server.
- Launch: It starts your Docker containers based on this configuration.
- Routing: It dynamically updates the reverse proxy's configuration (itself a Docker container) to route traffic to your new applications.
All of this without ever requiring elevated privileges on the host machine.
(Installation instructions to come)
To run the Flint server on your local machine, execute the following command:
go run main.go(Usage example to come)
# Example command (to be defined)
flint deploy --file my-app.yml --target user@my-server.comContributions are welcome! Feel free to open an issue or a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.