Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/flipez/stan
Deploy your static sites easy with Stan
https://github.com/flipez/stan
deployment easy-to-use ruby sinatra static-site
Last synced: 1 day ago
JSON representation
Deploy your static sites easy with Stan
- Host: GitHub
- URL: https://github.com/flipez/stan
- Owner: Flipez
- License: mit
- Created: 2017-07-26T18:39:50.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-11-19T17:21:27.000Z (almost 6 years ago)
- Last Synced: 2024-09-17T23:25:33.000Z (16 days ago)
- Topics: deployment, easy-to-use, ruby, sinatra, static-site
- Language: Ruby
- Size: 43.9 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
* [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