npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@gumlet/ghos3

v1.0.1

Published

S3 Storage adapter for Ghost.

Readme

GhoS3

An AWS S3 storage adapter tested on Ghost 6.x.

This is a modernized version based on https://github.com/laosb/ghos3. Major changes are:

  • Adopted async/await
  • Rewritten in TypeScript
  • Use latest Version 3 of AWS SDK

This port pretty much targets only Ghost 6.x and up, as the build toolchain is set to target Node 24.x. With some modifications this should work for older version of Ghost (PRs welcomed).

Installation

# Install ghos3 package
npm install @gumlet/ghos3

# Create directory to storage adapter
mkdir -p ./content/adapters/storage

# Copy package files to s3 storage folder
cp -r ./node_modules/@gumlet/ghos3/* ./content/adapters/storage/s3

# Remove unnecessary files generated from ghos3 installation
rm -Rf node_modules package-lock.json package.json

# Move to s3 storage folder
cd ./content/adapters/storage/s3

# Resolve dependencies
npm install

Configuration

Largely the same, but note signatureVersion and serverSideEncryption are removed since in AWS SDK v3 they're implemented differently than just a simple string field (PRs welcomed, of course).

"storage": {
  "active": "s3",
  "media":{
     "adapter": "s3"
  },
  "files": {
    "adapter": "s3"
  },
  "s3": {
    "accesskey": "YOUR_ACCESS_KEY_ID",
    "secretkey": "YOUR_SECRET_ACCESS_KEY",
    "region": "YOUR_REGION_SLUG",
    "bucket": "YOUR_BUCKET_NAME",
    "assetHost": "YOUR_OPTIONAL_CDN_URL (See note 1 below)",
    "pathPrefix": "YOUR_OPTIONAL_BUCKET_SUBDIRECTORY",
    "endpoint": "YOUR_OPTIONAL_ENDPOINT_URL (only needed for 3rd party S3 providers)",
    "forcePathStyle": true,
    "acl": "YOUR_OPTIONAL_ACL (See note 3 below)",
  }
}

Notes

  1. Be sure to include // or the appropriate protocol within your assetHost string/variable to ensure that your site's domain is not prepended to the CDN URL.
  2. If your S3 provider requires path style, you can enable it with forcePathStyle.
  3. If you use CloudFront the object ACL does not need to be set to public-read.

Via environment variables

AWS_DEFAULT_REGION
STORAGE__S3__ACCESSKEY // optional
STORAGE__S3__SECRETKEY // optional
GHOST_STORAGE_ADAPTER_S3_PATH_BUCKET
GHOST_STORAGE_ADAPTER_S3_ASSET_HOST  // optional
GHOST_STORAGE_ADAPTER_S3_PATH_PREFIX // optional
GHOST_STORAGE_ADAPTER_S3_ENDPOINT // optional
GHOST_STORAGE_ADAPTER_S3_FORCE_PATH_STYLE // optional
GHOST_STORAGE_ADAPTER_S3_ACL // optional

For configuration on the AWS side, colinmeinke's original README has a detailed tutorial to set your up.

License

ISC