{"id":13819017,"url":"https://github.com/octopress/octopress","last_synced_at":"2026-03-11T02:37:27.813Z","repository":{"id":11909695,"uuid":"14474326","full_name":"octopress/octopress","owner":"octopress","description":"Octopress 3.0 – Jekyll's Ferrari","archived":false,"fork":false,"pushed_at":"2022-06-15T08:50:48.000Z","size":433,"stargazers_count":1753,"open_issues_count":53,"forks_count":175,"subscribers_count":74,"default_branch":"master","last_synced_at":"2025-12-18T18:24:09.677Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/octopress.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-11-17T20:35:39.000Z","updated_at":"2025-11-26T09:50:49.000Z","dependencies_parsed_at":"2022-09-18T04:40:26.498Z","dependency_job_id":null,"html_url":"https://github.com/octopress/octopress","commit_stats":null,"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"purl":"pkg:github/octopress/octopress","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octopress%2Foctopress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octopress%2Foctopress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octopress%2Foctopress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octopress%2Foctopress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/octopress","download_url":"https://codeload.github.com/octopress/octopress/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octopress%2Foctopress/sbom","scorecard":{"id":702264,"data":{"date":"2025-08-11","repo":{"name":"github.com/octopress/octopress","commit":"af048361405919605d50fc45e2e1fd0c7eb02703"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 2/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T05:26:51.705Z","repository_id":11909695,"created_at":"2025-08-22T05:26:51.705Z","updated_at":"2025-08-22T05:26:51.705Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30367815,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"online","status_checked_at":"2026-03-11T02:00:07.027Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T08:00:37.848Z","updated_at":"2026-03-11T02:37:27.740Z","avatar_url":"https://github.com/octopress.png","language":"Ruby","funding_links":[],"categories":["Happy Exploring 🤘","Ruby","Static Site Generation"],"sub_categories":[],"readme":"# Octopress\n\nOctopress is an obsessively designed toolkit for writing and deploying Jekyll blogs. Pretty sweet, huh?\n\n[![Gem Version](https://badge.fury.io/rb/octopress.svg)](http://badge.fury.io/rb/octopress)\n[![Build Status](https://travis-ci.org/octopress/octopress.svg?branch=master)](https://travis-ci.org/octopress/octopress)\n\n## Installation\n\nInstall Octopress manually:\n\n    $ gem install octopress\n\nOr if you use [Bundler](http://bundler.io), add this line to your Gemfile:\n\n    gem 'octopress', '~\u003e 3.0'\n\nAnd then run:\n\n    $ bundle\n\nNew to bundler? Run `gem install bundler` then create a file named `Gemfile` in your site's root directory with the following content:\n\n```\nsource 'https://rubygems.org'\n\ngem 'octopress', '~\u003e 3.0'\n```\n\nRun `bundle` to install the gems specified in your Gemfile.\n\n## Configuration\n\nOctopress reads its configurations from `_config.yml`. Here's what the configuration looks like by default.\n\n```yaml\n# Default extension for new posts and pages\npost_ext: markdown\npage_ext: html\n\n# Default templates for posts and pages\n# Found in _templates/\npost_layout: post\npage_layout: page\n\n# Format titles with titlecase?\ntitlecase: true\n\n# Change default template file (in _templates/)\npost_template: post\npage_template: page\ndraft_template: draft\n```\n\n## Octopress CLI Commands\n\nHere are the subcommands for Octopress.\n\n```\ninit \u003cPATH\u003e         # Adds Octopress scaffolding to your site\nnew \u003cPATH\u003e          # Like `jekyll new` + `octopress init`\nnew post \u003cTITLE\u003e    # Add a new post to your site\nnew page \u003cPATH\u003e     # Add a new page to your site\nnew draft \u003cTITLE\u003e   # Add a new draft post to your site\npublish \u003cPOST\u003e      # Publish a draft from _drafts to _posts\nunpublish \u003cPOST\u003e    # Search for a post and convert it into a draft\nisolate [POST]      # Stash all posts but the one you're working on for a faster build\nintegrate           # Restores all posts, doing the opposite of the isolate command\ndeploy              # deploy your site via S3, Rsync, or to GitHub pages.\n```\n\nRun `octopress --help` to list sub commands and `octopress \u003csubcommand\u003e --help` to learn more about any subcommand and see its options.\n\n### Init\n\n```sh\n$ octopress init \u003cPATH\u003e [options]\n```\n\nThis will copy Octopress's scaffolding into the specified directory. Use the `--force` option to overwrite existing files. The scaffolding is pretty simple:\n\n```\n_templates/\n  draft\n  post\n  page\n```\n\n### New Post\n\nThis automates the creation of a new post.\n\n```sh\n$ octopress new post \"My Title\"\n```\n\nThis will create a new file at `_posts/YYYY-MM-DD-my-title.markdown` with the following YAML front-matter already added.\n\n```\nlayout: post\ntitle: \"My Title\"\ndate: YYYY-MM-DDTHH:MM:SS-00:00\n```\n\n#### Command options\n\n| Option               | Description                             |\n|:---------------------|:----------------------------------------|\n| `--template PATH`    | Use a template from \u003cpath\u003e              |\n| `--date DATE`        | The date for the post. Should be parseable by [Time#parse](http://ruby-doc.org/stdlib-2.1.0/libdoc/time/rdoc/Time.html#method-i-parse) |\n| `--slug SLUG`        | Slug for the new post.                  |\n| `--dir DIR`          | Create post at _posts/DIR/.             |\n| `--force`            | Overwrite existing file.                |\n\n### New Page\n\nCreating a new page is easy, you can use the default file name extension (.html), pass a specific extension, or end with a `/` to create\nan index.html document.\n\n```\n$ octopress new page some-page           # ./some-page.html\n$ octopress new page about.md            # ./about.md\n$ octopress new page docs/               # ./docs/index.html\n```\n\nIf you are working with collections, you might add a page like this:\n\n```\n$ octopress new page _legal/terms        # ./_legal/terms.html\n```\n\nAfter the page is created, Octopress will tell you how to configure this new collection.\n\n\n#### Command options\n\n| Option               | Description                             |\n|:---------------------|:----------------------------------------|\n| `--template PATH`    | Use a template from \u003cpath\u003e              |\n| `--title TITLE`      | The title of the new page               |\n| `--date DATE`        | The date for the page. Should be parseable by [Time#parse](http://ruby-doc.org/stdlib-2.1.0/libdoc/time/rdoc/Time.html#method-i-parse) |\n| `--force`            | Overwrite existing file.                |\n\nNote: The default page template doesn't expect a date. If you want to add dates\nto your pages, consider adding `date: {{ date }}` to the default template\n`_templates/page`, or create a new template to use for dated pages. Otherwise,\nyou will have the `--date` option to add a date to a page.\n\n### New Draft\n\nThis will create a new post in your `_drafts` directory.\n\n```sh\n$ octopress new draft \"My Title\"\n```\n\n| Option             | Description                               |\n|:-------------------|:------------------------------------------|\n| `--template PATH`  | Use a template from \u003cpath\u003e                |\n| `--date DATE`      | The date for the draft. Should be parseable by [Time#parse](http://ruby-doc.org/stdlib-2.1.0/libdoc/time/rdoc/Time.html#method-i-parse) (defaults to Time.now) |\n| `--slug SLUG`      | The slug for the new post.                |\n| `--force`          | Overwrite existing file.                  |\n\n### Publish a draft\n\nUse the `publish` command to publish a draft to the `_posts` folder. This will also rename the file with the proper date format.\n\n```sh\n$ octopress publish _drafts/some-cool-post.md\n$ octopress publish cool\n```\nIn the first example, a draft is published using the path. The publish command can also search for a post by filename. The second command\nwould work the same as the first. If other drafts match your search, you will be prompted to select them from a menu. This is often much\nfaster than typing out the full path.\n\n| Option             | Description                               |\n|:-------------------|:------------------------------------------|\n| `--date DATE`      | The date for the post. Should be parseable by [Time#parse](http://ruby-doc.org/stdlib-2.1.0/libdoc/time/rdoc/Time.html#method-i-parse) |\n| `--slug SLUG`      | Change the slug for the new post.         |\n| `--dir DIR`        | Create post at _posts/DIR/.               |\n| `--force`          | Overwrite existing file.                  |\n\nWhen publishing a draft, the new post will use the draft's date. Pass the option `--date now` to the publish command to set the new post date from your system clock. As usual, you can pass any compatible date string as well.\n\n### Unpublish a post\n\nUse the `unpublish` command to move a post to the `_drafts` directory, renaming the file according to the drafts convention.\n\n```sh\n$ octopress unpublish _posts/2015-01-10-some-post.md\n$ octopress unpublish some post\n```\n\nJust like the publish command, you can either pass a path or a search string to match the file name. If more than one match is found, you\nwill be prompted to select from a menu of posts.\n\n#### Templates for Posts and pages\n\nOctopress post and page templates look like this.\n\n```\n---\nlayout: {{ layout }}\ntitle: {{ title }}\n---\n```\n\nDates get automatically added to a template for posts, and for pages if a --date option is set.\n\nYou can add to the YAML front matter, add content below and even use liquid tags and filters from your site's plugins. There are\na handful of local variables you can use when working with templates.\n\n| Variable           | Description                               |\n|:-------------------|:------------------------------------------|\n| `date`             | The date (if set) or Time.now.iso8601     |\n| `title`            | The title of the page (if set)            |\n| `slug`             | The title in slug form                    |\n| `ymd`              | The date string, YYYY-MM-DD format        |\n| `year`             | The date's year                           |\n| `month`            | The date's month, MM                      |\n| `day`              | The date's day, DD                        |\n\nBy default Octopress has templates for pages, posts and drafts. You can change them or create new ones for different types of content.\nTo create linkposts template, add a file at `_templates/linkpost`, such as:\n\n```\n---\ntitle: {{ title }}\nexternal-url: {{ url }}\n---\n```\n\nThen you can use it with a new post like this:\n\n```sh\n$ octopress new post \"Some title\" --template linkpost\n$ octopress new post \"Some title\" -tm _templates/linkpost\n```\n\nIn the second example, I'm passing the full template file path. This way I can use my shell's tab to auto-complete feature.\n\nWhen creating templates, file name extensions are unnecessary since the files are just plain text anyway.\n\n### Isolate\n\nThe `isolate` command will allow you to stash posts in `_posts/_exile` where they will be ignored by Jekyll during the build process.\nRun `octopress integrate` to restore all exiled posts. This can be helpful if you have a very large site and you want to quickly preview a build\nfor a single post or page.\n\n```sh\n$ octopress isolate                                # Move all posts\n$ octopress isolate _posts/2014-10-11-kittens.md   # Move post at path\n$ octopress isolate kittens                        # Move post matching search\n```\n\nIn the third example, if multiple posts match the search a prompt will ask you to select a post from a menu.\n\n### Deploying your site\n\nThe Octopress gem comes with [octopress-deploy](https://github.com/octopress/deploy) which allows you to easily deploy your site with Rsync, on S3 or Cloudfront, to GitHub pages, or other Git based deployment hosting platforms.\n\nOnce you've built your site (with `jekyll build`) you can deploy it like this:\n\n```\n$ octopress deploy\n```\n\nThis reads a `_deploy.yml` configuration and deploys your site. Read below to learn how Octopress can generate a deployment configuration file for you.\n\nNote: The `_deploy.yml` is processed through ERB, which makes it easy to load configurations from environment variables.\n\nDeploy has a few commands you should know.\n\n| Commands                                   | Description                                                        |\n|:-------------------------------------------|:-------------------------------------------------------------------|\n| `octopress deploy`                         | Deploy your site (based on the `_deploy.yml` configuration)        |\n| `octopress deploy init \u003cMETHOD\u003e [options]` | Generate a config file for the deployment method. (git, s3, rsync) |\n| `octopress deploy pull [DIR]`              | Pull down your site into a local directory.                        |\n| `octopress deploy add-bucket \u003cNAME\u003e`       | (S3 only) Add a bucket using your configured S3 credentials.       |\n\n\n#### Generate Deployment configuration\n\n**Remember to add your configuration to `.gitignore` to be sure\nyou never commit sensitive information to your repository.**\n\n\nOctopress can generate a deployment configuration file for you using the `octopress deploy init` command.\n\n```\n$ octopress deploy init s3\n$ octopress deploy init rsync\n$ octopress deploy init git git@github.com:user/project\n```\n\nThis will generate a `_deploy.yml` file in your current directory which you can edit to add any necessary configuration.\n\nIf you like, you can pass configurations as command line options. To see specific options for any method, add the `--help` flag.\nFor example to see the options for configuring S3:\n\n```\n$ octopress deploy init s3 --help\n```\n\nIf you want to publish your site to a staging server, you can create a second configuration. For example, to setup rsync for a staging site, you'd do this.\n\n```\n$ octopress deploy init rsync --config _staging.yml\n```\n\nAfter modifying the configuration file, you can deploy your site to it like this:\n\n```\n$ octopress deploy --config _staging.yml\n```\n\n#### Git Deployment Configuration\n\nOnly `git_url` is required. Other options will default as shown below.\n\n| Config        | Description                                      | Default\n|:--------------|:-------------------------------------------------|:---------------|\n| `method`      | Deployment method, in this case use 'git'        |                |\n| `site_dir`    | Path to static site files                        | _site          |\n| `git_url`     | Url for remote git repository                    |                |\n| `git_branch`  | Deployment branch for git repository             | master         |\n| `deploy_dir`  | Directory where deployment files are staged      | .deploy        |\n| `remote`      | Name of git remote                               | deploy         |\n\n#### Rsync Deployment Configuration\n\n| Config         | Description                                       | Default\n|:---------------|:--------------------------------------------------|:---------------|\n| `method`       | Deployment method, in this case use 'rsync'       |                |\n| `site_dir`     | Path to static site files                         | _site          |\n| `user`         | ssh user, e.g user@host.com                       |                |\n| `port`         | ssh port                                          | 22             |\n| `remote_path`  | Remote destination's document root                |                |\n| `exclude_from` | Path to a file containing rsync exclusions        |                |\n| `exclude`      | Inline list of rsync exclusions                   |                |\n| `include_from` | Path to a file containing rsync inclusions        |                |\n| `include`      | Inline list of inclusions to override exclusions  |                |\n| `delete`       | Delete files in destination not found in source   | false          |\n\nYou can rsync to a local directory by configuring `remote_path` and leaving off `user` and `port`.\n\n#### Amazon S3 Deployment Configuration\n\nTo deploy with Amazon S3 you will need to install the [aws-sdk-v1 gem](https://rubygems.org/gems/aws-sdk-v1).\n\nImportant: when using S3, you must add your `_deploy.yml` to your .gitignore to prevent accidentally sharing\naccount access information.\n\n| Config              | Description                                           | Default\n|:--------------------|:------------------------------------------------------|:-------------|\n| `method`            | Deployment method, in this case use 's3'              |              |\n| `site_dir`          | Path to static site files                             | _site        |\n| `bucket_name`       | S3 bucket name                                        |              |\n| `access_key_id`     | AWS access key                                        |              |\n| `secret_access_key` | AWS secret key                                        |              |\n| `distribution_id`   | [optional] AWS CloudFront distribution id             |              |\n| `remote_path`       | Directory files should be synced to.                  | /            |\n| `verbose`           | [optional] Display all file actions during deploy.    | false        |\n| `incremental`       | [optional] Incremental deploy (only updated files)    | false        |\n| `region`            | [optional] Region for your AWS bucket                 | us-east-1    |\n| `delete`            | Delete files in `remote_path` not found in `site_dir` | false        |\n| `headers`           | Set headers for matched files                         | []           |\n\nIf you choose a bucket which doesn't yet exist, Octopress Deploy will offer to create it for you, and offer to configure it as a static website.\n\nIf you configure Octopress to delete files, all files found in the `remote_path` on S3 bucket will be removed unless they match local site files.\nIf `remote_path` is a subdirectory, only files in that subdirectory will be evaluated for deletion.\n\nYou can also set up your configuration to read your AWS credentials from your environment variables using ERB like this:\n\n```\naccess_key_id: \u003c%= ENV['AWS_ACCESS_KEY'] %\u003e\nsecret_access_key: \u003c%= ENV['AWS_SECRET_KEY'] %\u003e\n```\n\n##### S3 Headers\n\nYou can create an array of header configs to set expiration, content and cache settings for any paths matching the `filename`.\n\n| Header Config       | Description                                           | Default\n|:--------------------|:------------------------------------------------------|:-------------|\n| `filename`          | A regex or a substring of the file to match           |              |\n| `site_dir`          | An http date or a number of years or days from now    |              |\n| `content_type`      | A string which is passed through to the headers       |              |\n| `content_encoding`  | A string which is passed through to the headers       |              |\n| `cache_control`     | A string which is passed through to the headers       |              |\n\nHere is how you might set expiration and cache controls for CSS and Javascript files.\n\n```yaml\nheaders:\n  - filename: '^assets.*\\.js$'\n    expires: '+3 years'\n    cache_control: 'max-age=94608000'\n    content_type: 'application/javascript'\n  - filename: '^assets.*\\.css$'\n    expires: '+3 years'\n    cache_control: 'max-age=94608000'\n    content_type: 'text/css'\n```\n\n##### AWS config via ENV\n\nIf you prefer, you can store AWS access credentials in environment variables instead of a configuration file. \n\n| Config              | ENV var                        |\n|:--------------------|:-------------------------------|\n| `access_key_id`     | AWS_ACCESS_KEY_ID              |\n| `secret_access_key` | AWS_SECRET_ACCESS_KEY          |\n\nNote: configurations in `_deploy.yml` will override environment variables so be sure to remove those if you decide to use environment variables.\n\n### Pull down your site\n\nWith the `pull` command, you can pull your site down into a local directory.\n\n```\n$ octopress deploy pull [DIR]\n```\n\nMainly you'd do this if you're troubleshooting deployment and you want to see if it's working how you expected.\n\n## Contributing\n\n1. Fork it ( https://github.com/octopress/octopress/fork )\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctopress%2Foctopress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctopress%2Foctopress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctopress%2Foctopress/lists"}