paasify 0.1.2

Creator: bradpython12

Last updated:

Add to Cart

Description:

paasify 0.1.2

Please :star: this project if like it of if you want to support it!


:warning: This project is currently in alpha stage, use at your own risks! :warning:


Official documentation is available on https://barbu-it.github.io/paasify/.


Deploy your docker-compose applications with ease and manage your infrastructure as code!
Paasify is a Python tool that will help you to deploy large collections of docker-compose.yml files. It's an thin overlay to the docker compose command
and it will generate the docker-compose.yml you need. It provides some ways to fetch Apps collections, to deploy them and then ensure their state
can be committed into version control.
From an high level perspective, this looks like:



This project try to overstep the missing gap between the docker-compose deployment and static code in way to achieve infrastructure as a code. If you are asking yourself on why you would use Paasify:

Manage a lot of differents docker-compose.yml
Make your docker-compose.yml based infrastructure DRY
Write large collections of docker-compose.yml apps once, deploy them many times
Integrate your apps into other services, like you can automagically add Traefik labels to your containers
Deploy apps in a sequential way
Commit your infrastructure configuration into git

:memo: Table of Content

Quickstart

Installation with pip
Installation with docker
Example project: Wordpress
Demo


Overview

Features
Documentation
Requirements
Environment Variables


Getting help

Known issues
FAQ
Support
Feedback


Develop
Project information

:fire: Quickstart
There are different ways to install Paasify:

Installation with pip: This is the recommended installation method for people who wants to try and/or develop infrastructure.
Installation with docker: Docker installation is more recommended for production environment. (WIP)
Installation with git: If you want to improve or contribute to Paasify itself.

Installation with pip
Install Paasify with pip. You may eventually install paasify in its own
Python VirtualEnv, please adapt your commands, but for most people:
pip install paasify

You can check paasify is correctly installed by running the command:
paasify --help

Example project: Wordpress
You need to have git and a running docker daemon. See requirements section for further
details.
Let's try to deploy a simple Wordpress instance with Paasify. It consists in deploying
a proxy, for managing incoming traffic (we uses Traefik here), a dashboard and
the Worpress instance. To deploy a such project:
git clone https://github.com/barbu-it/paasify-example-wordpress.git wordpress
cd wordpress
paasify src install
paasify apply

Then you can visit: http://home.localhost. Of course you can manage your own domains and manage SSL
with let's encrypt. You can virtually add and tweak other applications. To have an idea of what app
you can install, please checkout official collections:

barbu-it/paasify-collection-community: Apps provided for and by the community
barbu-it/paasify-collection-infra: Dev et devops oriented Apps

You can also find community collections in github, with the #paasify-collection tag.
:sparkles: Overview
Features

Only use the classical syntax of docker compose
Allow to use any app without effort
Transform your own applications into collection, and publish them as git repositories
Allow to centralized collections into git repositories
Provides a powerful docker-compose.<TAG>.yml assemblage
Provides a simple but powerful variable management and templating model
Provides jsonnet support for more complex transformations
Allow to track your infrastructure changes into git

Please check the documentation to know more and see the Road Map below to see what's coming.
Documentation
The main documentation website is at https://barbu-it.github.io/paasify/.
Requirements
The following system requirements are:

Linux x86 based OS (not tested yet on other platforms than Linux so far)
docker
docker compose or docker-compose
jq

For development:

git
poetry
task

Environment Variables
You may use the following environment variables to adjust paasify behavior:
PAASIFY_DEBUG=false: Show extra log levels if set to true
PAASIFY_TRACE=false: Show python traces if set to true
:question: Getting help
Known issues

Paasify is still at this alpha stage, and not recommended (yet) for production.
Paasify has only been tested on Linux, more platform may come later.
Paasify heavily use the usage of docker labels, so deploying in an existing infrastructure may lead to conflicts.

FAQ
Does paasify involve any long running services ?
Nope, Paasify build your docker-compose.yml files and do a docker compose up. It's a simple CLI program that will super-charge your docker compose commands.
Is there a web UI for deployments ?
Nope, the intended audience of this tool is people who want to do code as infrastructure. It may be the purpose of another project tho.
Is it possible to have it in Go?
Go is a pretty good language for this kind of tool, however the author does not known Go, so it's too late now. Use the docker image to get a no install setup.
Support
There is no support outside of community support at this stage of the project. The project is still considered as immature, getting into the project as the date of today may still require you to be comfortable with programming.
Feedback
If you have any feedback, please open an issue.
:pray: Develop
Here are the basic step to hack into paasify code. A more complete guide is available in the documentation.
Installation with git
Clone the project
git clone https://github.com/barbu-it/paasify

Go to the project directory
cd paasify

Install dependencies
task install

Running Tests
To run tests, run the following command
task run_tests

Run the quality suite
task run_qa

Contributing
Contributions are always welcome!
See contributing.md for ways to get started.
Please adhere to this project's code of conduct.
:earth_africa: Project information
Roadmap

Volume and secret management
Docker Swarm support

License
GNU General Public License v3.0
Authors
This project is brought to you thanks to Barbu-IT.

@mrjk

Used By
This project is used by the following companies:

Barbu-IT

Related
Here are some related projects:

Dokku

Support this project
You can :star: this project, contribute or donate to original author @mrjk:

Bitcoin: bc1qxdtn24vl9n8e04992dwcq3pdumes0l2dqardvh

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.