All Projects β†’ sarfraznawaz2005 β†’ floyer

sarfraznawaz2005 / floyer

Licence: MIT license
πŸš€ Floyer is simple and fast deployment tool using git/svn and (S)FTP - especially useful for shared hosting.

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to floyer

Up
Up focuses on deploying "vanilla" HTTP servers so there's nothing new to learn, just develop with your favorite existing frameworks such as Express, Koa, Django, Golang net/http or others.
Stars: ✭ 8,439 (+14705.26%)
Mutual labels:  deployment, deploy-tool
Vinyl Ftp
Blazing fast vinyl adapter for FTP
Stars: ✭ 385 (+575.44%)
Mutual labels:  deployment, ftp
Accompli
An easy to use and extendable deployment tool for (PHP) projects.
Stars: ✭ 9 (-84.21%)
Mutual labels:  deployment, svn
Vs Deploy
Visual Studio Code extension that provides commands to deploy files of a workspace to a destination.
Stars: ✭ 123 (+115.79%)
Mutual labels:  deployment, ftp
Vscode Deploy Reloaded
Recoded version of Visual Studio Code extension 'vs-deploy', which provides commands to deploy files to one or more destinations.
Stars: ✭ 129 (+126.32%)
Mutual labels:  deployment, ftp
gitup
Laravel package to upload git commits to server(s) via (s)ftp.
Stars: ✭ 20 (-64.91%)
Mutual labels:  deployment, ftp
bitbucket-sync
Mirror of BitBucket Sync project hosted on BitBucket
Stars: ✭ 18 (-68.42%)
Mutual labels:  deployment, ftp
example-deployer-slim
Example project for deployment PHP project (Slim Framwork) by Deployer
Stars: ✭ 32 (-43.86%)
Mutual labels:  deployment, deploy-tool
fastai-docker-deploy
Deploy fastai models with Docker
Stars: ✭ 19 (-66.67%)
Mutual labels:  deployment
capistrano-docker-compose
Docker Compose specific tasks for Capistrano
Stars: ✭ 17 (-70.18%)
Mutual labels:  deployment
github-env-vars-action
πŸš€ GitHub Action for Environment Variables
Stars: ✭ 129 (+126.32%)
Mutual labels:  deployment
ansible-rails-deployment
deploy projects using ansible
Stars: ✭ 77 (+35.09%)
Mutual labels:  deployment
dockerized-drupal-starter
End-to-end (CI + CD) dockerized Drupal 8 starting point.
Stars: ✭ 27 (-52.63%)
Mutual labels:  deployment
drupal-pi
Drupal on Docker on a Raspberry Pi. Pi Dramble's little brother.
Stars: ✭ 92 (+61.4%)
Mutual labels:  deployment
GitHub-Education-Portfolio
A portfolio made using React and tools from GitHub Student Developer Pack
Stars: ✭ 50 (-12.28%)
Mutual labels:  deployment
envoyer-npm-deployment
Compile assets that depend on node packages using Laravel Envoyer deployment hooks
Stars: ✭ 43 (-24.56%)
Mutual labels:  deployment
github-to-wordpress-deploy-script
Bash script to handle tagging on GitHub and deployment to WordPress SVN
Stars: ✭ 21 (-63.16%)
Mutual labels:  svn
kubernetes-examples
Kubernetes 经典瀺例
Stars: ✭ 142 (+149.12%)
Mutual labels:  deployment
tuggle
Distributed file mirroring proxy in Consul cluster
Stars: ✭ 16 (-71.93%)
Mutual labels:  deployment
docker-svn-server
A Docker image running a simple Dockerised Subversion server, using `svnserve`.
Stars: ✭ 27 (-52.63%)
Mutual labels:  svn

Floyer

DISCLAIMER

This tool is not fully tested, use it at your own risk!

Currently works for my needs but if you find any bugs or something missing, please do send PR. Thanks

Introduction

Floyer is simple and fast deployment tool using git/svn and (S)FTP - especially useful for shared hosting.

To run deployment, just type this on terminal: php floyer deploy ini_file_to_use. See below for commands.

Screenshot

Main Window

Requirements

  • PHP >= 5.6
  • git added to PATH env (If using Git driver)
  • svn added to PATH env (If using Svn driver)
  • FTP and Zip PHP extensions (both ship with PHP and usually turned on)

Command Options

  • php floyer deploy ini_file_to_use --sync : Synchronize last local revision id with remote revision file.
  • php floyer deploy ini_file_to_use --history : List files deployed in previous deployment.
  • php floyer deploy ini_file_to_use --rollback : Rollback previous deployment.

The ini_file_to_use is ini server config file that you can create copying from given sample file floyer-sample.ini. For different servers, you need to create different ini config files. For example:

  • php floyer deploy staging.ini upload to staging server
  • php floyer deploy live.ini upload to live server

Note Because these ini config file contain server connection details, make sure to gitignore them in your project.

How it works

  • It stores revision/commit hash on the server in a file when deployment is started.
  • On next deployment, it compares local revision with remote one thereby able to deploy only the files changed between these two revisions.
  • Once it knows what files to upload, it creates zip archive of these files to be deployed on the server.
  • Rather than uploading each file individually (which is very slow process), it creates and uploads zip archive file to server where there is corresponding extract zip PHP script which extracts these files very fast. This script is also created and uploaded by Floyer.
  • After deployment is finished, zip archive and extract script is deleted automatically.

Deploying by uploading and extracting archive file not only makes deployment fast but also we don't have to worry about some permission issues or creating new directories and so on because extract script runs from server itself thereby avoiding these issues.

Current Limitations

  • Works with current main git branch only
  • Not fully tested especially rollback feature

Download

The phar version is present at dist/floyer.phar. Once you download it, copy it to your project and issue this command at terminal:

php floyer.phar deploy ini_file_to_use or if you rename floyer.phar to floyer:

php floyer deploy ini_file_to_use

Tip

If you only upload to single server or don't want to type ini_file_to_use again and again, you can create a file called floyer_default_server.txt in project root directory and in that file type ini file name you want to use as default then you can skip typing ini_file_to_use in commands like:

php floyer deploy

php floyer deploy --history

However, you can still use ini_file_to_use argument if you wish to upload to differnt server.

Extending

  • You can extend it by adding more connectors. Checkout existing connectors at src/Connectors
  • You can extend it by improving existing Svn and Git drivers. Checkout existing drivers at src/Drivers

Similar Project

License

This code is published under the MIT License. This means you can do almost anything with it, as long as the copyright notice and the accompanying license file is left intact.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].