presstatic icon indicating copy to clipboard operation
presstatic copied to clipboard

Deploy static websites to Amazon S3 easily.

presstatic

by Filipe Regadas (@regadas <http://twitter.com/regadas>_)

This is a little CLI utility that helps deploying static websites to Amazon S3.

Usage

.. code-block:: shell

$> pip install presstatic

$> pstatic -h

usage: presstatic [-h] [-http HOST:PORT] [-s3 bucket] directory

positional arguments:
	directory        directory containing the static website.

optional arguments:
	-h, --help       show this help message and exit
	-http HOST:PORT  creates an HTTP Server with <directory> as root dir.
	-s3 bucket       deploy on the specified S3 bucket.
	
  • upload your website:

.. code-block:: shell

$> export AWS_ACCESS_KEY_ID=<Your Key id>

$> export AWS_SECRET_ACCESS_KEY=<Your Secret>

$> pstatic -s3 example.com ~/projects/example.com
  • preview your website while you develop it:

    Any change in files/directories will trigger the builder. Because of this and other reasons this http server is intended for development only.

.. code-block:: shell

$> pstatic -http ~/projects/example.com

Templates

We use the awesome Jinja <http://jinja.pocoo.org/>_ template engine.

Assets

We are using webassets <https://github.com/miracle2k/webassets>_ for asset bundling.

If you intend to use assets you need to add a configuration file (YAML) to your root project. Please see the webassets docs to see for more details.

Here's an example:

.. code-block:: yaml

url: /static
debug: True
bundles:
    all_css:
        filters: yui_css
        output: static/css/packed.css
        contents:
            - static/css/style.css
            - static/css/jquery.fancybox.css
    all_js:
        filters: yui_js
        output: static/js/packed.js
        contents:
            - static/js/jquery-latest.min.js
            - static/js/jquery.fancybox.pack.js
            - static/js/app.js

TODO

  • Add Template support [DRAFT]
  • Add Asset support [DRAFT]
  • Add watcher support [DRAFT]

License


presstatic is under MIT license. See the LICENSE <https://github.com/regadas/presstatic/blob/master/LICENSE>_ file for details.