Package: paasify
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 onhttps://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 ofdocker-compose.ymlfiles. It's an thin overlay to thedocker composecommand
and it will generate thedocker-compose.ymlyou 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 differentsdocker-compose.ymlMake yourdocker-compose.ymlbased infrastructureDRYWrite large collections ofdocker-compose.ymlapps once, deploy them many timesIntegrate your apps into other services, like you can automagically add Traefik labels to your containersDeploy apps in a sequential wayCommit your infrastructure configuration into git:memo: Table of ContentQuickstartInstallation with pipInstallation with dockerExample project: WordpressDemoOverviewFeaturesDocumentationRequirementsEnvironment VariablesGetting helpKnown issuesFAQSupportFeedbackDevelopProject information:fire: QuickstartThere 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 pipInstall Paasify with pip. You may eventually install paasify in its own
Python VirtualEnv, please adapt your commands, but for most people:pipinstallpaasifyYou can check paasify is correctly installed by running the command:paasify --helpExample project: WordpressYou 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:gitclonehttps://github.com/barbu-it/paasify-example-wordpress.gitwordpresscdwordpress
paasifysrcinstall
paasifyapplyThen 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 communitybarbu-it/paasify-collection-infra: Dev et devops oriented AppsYou can also find community collections in github, with the#paasify-collectiontag.:sparkles: OverviewFeaturesOnly use the classical syntax of docker composeAllow to use any app without effortTransform your own applications into collection, and publish them as git repositoriesAllow to centralized collections into git repositoriesProvides a powerfuldocker-compose.<TAG>.ymlassemblageProvides a simple but powerful variable management and templating modelProvides jsonnet support for more complex transformationsAllow to track your infrastructure changes into gitPlease check the documentation to know more and see the Road Map below to see what's coming.DocumentationThe main documentation website is athttps://barbu-it.github.io/paasify/.RequirementsThe following system requirements are:Linux x86 based OS (not tested yet on other platforms than Linux so far)dockerdocker composeordocker-composejqFor development:gitpoetrytaskEnvironment VariablesYou may use the following environment variables to adjust paasify behavior:PAASIFY_DEBUG=false: Show extra log levels if set totruePAASIFY_TRACE=false: Show python traces if set totrue:question: Getting helpKnown issuesPaasify is still at this alpha stage, and not recommended (yet) for production.Paasify has only been tested on Linux, more platformmaycome later.Paasify heavily use the usage of docker labels, so deploying in an existing infrastructure may lead to conflicts.FAQDoes paasify involve any long running services ?Nope, Paasify build yourdocker-compose.ymlfiles and do adocker compose up. It's a simple CLI program that will super-charge yourdocker composecommands.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.SupportThere 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.FeedbackIf you have any feedback, please open an issue.:pray: DevelopHere are the basic step to hack into paasify code. A more complete guide is available in the documentation.Installation with gitClone the projectgitclonehttps://github.com/barbu-it/paasifyGo to the project directorycdpaasifyInstall dependenciestaskinstallRunning TestsTo run tests, run the following commandtaskrun_testsRun the quality suitetaskrun_qaContributingContributions are always welcome!Seecontributing.mdfor ways to get started.Please adhere to this project'scode of conduct.:earth_africa: Project informationRoadmapVolume and secret managementDocker Swarm supportLicenseGNU General Public License v3.0AuthorsThis project is brought to you thanks to Barbu-IT.@mrjkUsed ByThis project is used by the following companies:Barbu-ITRelatedHere are some related projects:DokkuSupport this projectYou can :star: this project, contribute or donate to original author@mrjk:Bitcoin:bc1qxdtn24vl9n8e04992dwcq3pdumes0l2dqardvh