Skip to content

Commit ca7745d

Browse files
committed
Add instructions for parallel operations
Signed-off-by: Fadion Dashi <[email protected]>
1 parent 1f41442 commit ca7745d

1 file changed

Lines changed: 18 additions & 7 deletions

File tree

README.md

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@
22

33
A deployment tool that makes it as easy and hassle-free as it can be. No matter your skill level, it only requires a minute to setup, with no complicated configurations or special permissions.
44

5-
Steer relies on Git to keep track of what has changed in the project, relieving itself from the heavy burden of version control. Files are pushed on the server either via FTP or SFTP, supporting basically any host, from shared to dedicated or cloud. But it's not just a tool that reads the file tree and uploads. It supports multiple servers, deployment previews, versioning and quite some more.
5+
Steer relies on Git to keep track of what has changed in the project, relieving itself from the heavy burden of version control. Using the raw performance and concurrency of Go, it pushes files in parallel on either a FTP or SFTP server. But it's not just a tool that reads the file tree and uploads. It supports multiple servers, deployment previews, versioning and quite some more.
66

7-
## How it Works
8-
9-
A config file is saved in the root of the local project that holds the configuration data: server address, credentials, paths, branch, etc. Steer reads the config, connects to the server and searches for a file named `.steer-revision`. It is that remote revision file that holds the latest deployment commit. When deploying, the list of changed files are retrieved using git, so the project you're working on needs to be a git repository.
7+
While there are plenty of deployment tools that try to do a lot, not everyone needs all of their features. Teams of developers will obviously have a great setup, with jobs, hooks, commands and so on. The rest, freelancers, hobbyists or solo developers just want to get the job done and not worry about infrustructure.
108

11-
## But Why?
9+
## How it Works
1210

13-
While there are plenty of deployment tools that try to do a lot, not everyone needs all of their features. Teams of developers will obviously have a great setup, with jobs, hooks, commands and so on. The rest, freelancers, hobbyists or solo developers just want to get the job done and not worry about infrustructure. Steer doesn't try to do more than it should and with its simple approach, it lets the developer worry about code.
11+
A config file is saved in the root of the local project that holds the configuration data: server address, credentials, paths, branch, etc. Steer reads the config, connects to the server and searches for a file named `.steer-revision`. It is that remote revision file that holds the latest deployment commit. When deploying, the list of changed files are retrieved using git, uploading new or modifies files and deleting the removed ones.
1412

1513
## Installation
1614

@@ -64,6 +62,7 @@ versions = false
6462
logger = false
6563
include = file.js, folder
6664
exclude = file.css, file.html
65+
maxclients = 3
6766
6867
[staging]
6968
scheme = sftp
@@ -126,6 +125,18 @@ The `commit` and `fresh` options can be used alongside server arguments:
126125
steer deploy production -c=SOMEHASH
127126
```
128127

128+
## Parallel Operations
129+
130+
Doing a single operation synchronously would make deployment quite a slow process, especially when a lot of files are involved. Fortunately, Steer can upload and delete files in parallel on both FTP and SFTP, speeding up the process substantially. The number of concurrent operations varies from the server configuration, so you may start with a sensible number like 3 (the default) and increase it until you notice errors while deploying.
131+
132+
The `maxclients` configuration option sets the maximum number of concurrent operations. Set to 1 for no parallelism.
133+
134+
```
135+
[production]
136+
; ...
137+
maxclients = 5
138+
```
139+
129140
## Preview
130141

131142
Before running a deploy, it's generally not a bad idea to do a preview run. This command gets the revision, calculates which files have changed and only displays them, without uploading anything on the server. It's especially useful on big updates.
@@ -258,4 +269,4 @@ steer deploy -h
258269

259270
Steer was developed by Fadion Dashi, a freelance web and mobile developer from Tirana.
260271

261-
Most of the inspiration for this project comes from [PHPloy](https://github.com/banago/PHPloy), a deployment tool created by a dear friend, in which I've also been involved. I'm aiming feature parity and even added some of my own ideas.
272+
Most of the inspiration for this project comes from [PHPloy](https://github.com/banago/PHPloy), a deployment tool created by a dear friend, in which I've also been involved. I'm aiming to implement most of its features, but also have added some of my own. The main advantage of Steer right now is its performance, especially with parallel operations.

0 commit comments

Comments
 (0)