# Publishex
[![Hex pm](]( [![Hex Docs](]( [![License](](

Publish a directory of static files to a static file hoster such as Netlify or S3. 

E.g. if you generate your `ex_doc` documentation for a private repository you can
publish this to a Netlify site. See for example []

## Installation

If [available in Hex](, the package can be installed
by adding `publishex` to your list of dependencies in `mix.exs`:

def deps do
    {:publishex, "~> 1.0.1"}

## Usage

You can publish any directory but it defaults to `doc`. To publish your `ex_doc`
documentation to Netlify or S3 you can do the following.

### Netlify
# Generate the docs
mix docs

# Publish to netlify (defaults to `doc` directory)
mix publishex.netlify --token personal_access_token --site-id

# Set custom directory
mix publishex.netlify --directory "some_dir" --token personal_access_token --site-id


The personal access token can be created in the Netlify dashboard []

### S3
# Generate the docs
mix docs

# Publish to S3 (defaults to `doc` directory)
mix publishex.s3 --bucket bucket_name --region us-west-1 --access_key_id access_key_id --secret_access_key secret_access_key --acl public_read
Setting the ACL is explicit to prevent accidental public files.

See [] on how to create a static site on S3

Documentation can be generated with [ExDoc](
and published on [HexDocs]( Once published, the docs can
be found at [](