* [Installation](#installation) * [Usage](#usage) + [Server](#server) - [Example Nginx configuration](#example-nginx-configuration) + [Client](#client) * [Development](#development) * [Contributing](#contributing) * [License](#license) Stan is a little tool that helps you to deploy static sites to a centralized host. ## Installation Install Stan with $ gem install stan In order to build the dependencies please make sure you installed the ruby headers. $ apt install ruby-dev ## Usage ``` Commands: stan compress DIRECTORY # compress given directory stan deploy DIRECTORY NAME # deploys given directory to stan server stan help [COMMAND] # Describe available commands or one specific command stan server # start the server to receive and serve pages stan version # display the stan version ``` There are a few variables you have to set: ### Server * `STAN_UPLOAD_DIR=/tmp/stan/upload` is the directory where Stan will temporarly store sites before deploying them. * `STAN_PUBLIC_DIR=/srv/stan` is the directory where the final site will be deployed. * `STAN_BIND=127.0.0.1` is the ip to bind to. * `STAN_PORT=4567` is the port to use. Please note that Stan will create a directory for each deployed site within that folder. The final site will then be deployed to `/srv/stan/my-site` for example. #### Example Nginx configuration ``` upstream pages { server localhost:4567 fail_timeout=0; } server { listen 443; listen [::]:443; # replace with server name config and ssl settings client_max_body_size 100m; location / { root /srv/stan; } location /upload { proxy_read_timeout 300; proxy_connect_timeout 300; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_pass http://pages/upload; } } ``` ### Client * `STAN_SERVER=pages.example.com` is the URL of the remote Stan server which must expose the `/upload` route. Define ports like usual. * `STAN_TEMP_DIR=/tmp/stan` is the directory where Stan will store the site after compressing it. The archive will be removed after upload. ## Development After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment. To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org). ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/Flipez/static-stan. ## License The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT). Look at the awesome logo I made at: onlinelogomaker.com