nyats (Not Yet Another Thumbnail Service) client-side caching IPFS thumbnailing server. Generates thumbnails for IPFS CID's, writes thumbnails to IPFS, adds them to MFS, publishes IPNS hash and returns redirect to thumbnail in MFS, allowing for efficient client-side caching.
For usage in JS/TS, there's nyats-client, the official client library.
You need a local ipfs node; see: https://docs.ipfs.io/how-to/command-line-quick-start/
- Install dependencies:
npm install
- Start local IPFS node:
ipfs daemon
npm start
Or, to use the local gateway:IPFS_GATEWAY=http://127.0.0.1:8080 npm start
- Open
http://localhost:9614/thumbnail/<protocol>/<cid>/<width>/<height>
, and behold. Example: http://localhost:9614/thumbnail/ipfs/QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF/200/200
For development, we recommend using npm run start:watch
, which will watch the code and automatically rebuild and restart the server (using nodemon and ts-node).
Example with debugging, a single process and local IPFS gateway:
$ DEBUG=nyats* NYATS_PROCESSES=1 IPFS_GATEWAY=http://127.0.0.1:8080 npm run start:watch
The main configuration options are the following, the rest can be found in src/config.ts
:
NYATS_SERVER_HOST
(default:localhost
)NYATS_SERVER_PORT
(default:9614
)IPFS_API
(default:http://localhost:5001
)PUBLIC_IPFS_GATEWAY
(default:https://dweb.link
)PRIVATE_IPFS_GATEWAY
(default:http://127.0.0.1:8080
)