diff --git a/Makefile b/Makefile deleted file mode 100644 index 301d02e..0000000 --- a/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -build: - npm --version - node --version - npm ci - npm run lint - npm run build diff --git a/POLICY.md b/POLICY.md index 28d3eb0..cb33735 100644 --- a/POLICY.md +++ b/POLICY.md @@ -6,10 +6,8 @@ Entries are accepted if they meet the following criteria: * Entries must respect the [IPFS Community Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md) * Entries must use *IPFS* (libp2p, ipld, multiformats is not enough) +* Entries must be **open-source** and contain a link to their source code. * Entries must be immediately usable (eg. nothing that is paywall-only, even a free trial would be ok) * Entries must have a clear license and/or privacy policy where applicable -This policy is evaluated by the site admins upon submission, per the process defined in the [contribution guide](CONTRIBUTING.md). - -This policy was developed [here](https://github.com/ipfs/awesome-ipfs/issues/150) - please add questions, comments and suggestions there. - +This policy is evaluated by the site admins upon submission, per the process defined in the [contribution guide](CONTRIBUTING.md) diff --git a/README.md b/README.md index 28c5f0a..12d94bd 100644 --- a/README.md +++ b/README.md @@ -1,216 +1,70 @@ # Awesome IPFS [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) - -This is a community list is for projects, tools, services, and pretty much any things related to IPFS that are _ **awesome**_. +This is a community list is for awesome projects, apps, tools, and services related to IPFS. If you have an idea for an awesome thing to do with IPFS, a good place to ask about it might be in [our IPFS Discuss Forums](https://discuss.ipfs.io). ## Table of Contents +- [Tools](#tools) - [Apps](#apps) +- [Services](#services) - [Articles](#articles) - [Datasets](#datasets) -- [Services](#services) -- [Tools](#tools) -- [Videos](#videos) - [Contribute](#contribute-to-this-list) - [License](#license) ## Apps -- [2read](https://2read.net/) - Convert article in current tab to readable form and upload it to writable node(s). [Source](https://github.com/meehow/2read) -- [3Box](https://3box.io) - Create and manage your Ethereum Profile, and your personal data. Use the 3box-js library to integrate profiles into your dapp. [Source](https://github.com/uport-project/3box) -- [a js video player](https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/play) - [Demo](https://ipfs.io/ipfs/QmVc6zuAneKJzicnJpfrqCH9gSy6bz54JhcypfJYhGUFQu/play#/ipfs/QmTKZgRNwDNZwHtJSjCp6r5FYefzpULfy37JvMt9DwvXs) -- [a markdown renderer](https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/markdown-viewer) - [Demo](https://ipfs.io/ipfs/QmSrCRJmzE4zE1nAfWPbzVfanKQNBhp7ZWmMnEdbiLvYNh/mdown#/ipfs/QmfQ75DjAxYzxMP2hdm6o4wFwZS5t7uorEZ2pX9AKXEg2u) -- [a qr-code renderer](https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/qr-render) - [Demo](https://ipfs.io/ipfs/QmccqhJg5wm5kNjAP4k4HrYxoqaXUGNuotDUqfvYBx8jrR/qr#enter%20text%20here) - [Agregore](https://github.com/AgregoreWeb/agregore-browser) - A minimal web browser for the distributed web. Supports downloading/uploading data from IPFS using the browser's `fetch()` API - [AirSecure](https://github.com/airsecure/airsecure) - Decentralized two factor authentication app built on Textile & IPFS. -- [akasha](http://akasha.world/) - A Next-Generation Social Media Network, powered by Ethereum and embedded into IPFS. -- [Alexandria](http://www.alexandria.io/) - Decentralized content publishing / monetization platform. -- [Arbore](http://arbo.re) - A friend-to-friend file-sharing app build on top of IPFS. +- [Arbore](https://github.com/MichaelMure/Arbore) - A friend-to-friend file-sharing app build on top of IPFS. +- [archiveweb.page](https://github.com/webrecorder/archiveweb.page) - A High-Fidelity Web Archiving Extension for Chrome and Chromium based browsers with support for IPFS. - [Autonomica "IPFS Social Proof"](https://github.com/IBM/ipfs-social-proof) - Autonomica is a Keybase-like Dapp for creating an identity and proving this identity via published social media and web proofs. -- [beets](https://github.com/beetbox/beets) - Beets has a plugin which allows for easy sharing of music libraries using IPFS -- [Blokaly](https://github.com/blokaly) - A badge issuing, sharing and display platform based on IPFS. -- [Boards](https://ipfs.io/ipns/boards.ydns.eu) - Distributed social platform that runs in the browser. [Source](https://github.com/fazo96/ipfs-boards) -- [brig](https://brig.readthedocs.io/en/latest) - File synchronization with git like interface and FUSE filesystem. [Source](https://github.com/sahib/brig) -- [Cohort](https://github.com/zignig/cohort) - A golang app to preset a threejs interface and get all of its assets out of IPFS. -- [CoTNetwork](http://www.cotnetwork.com) - A distributed computing network base on ipfs -- [dapple](https://github.com/nexusdev/dapple) - Dapple is a Solidity developer multitool designed to manage the growing complexity of interconnected smart contract systems. -- [DeCommerce](https://www.ivyca.com/decommerce/) - Decentralized ecommerce for Web3. Allows people to transact business without middlemen. No Middleman, no Bank, no Big Tech, no Government. -- [Diffuse](https://diffuse.sh) - Play music from your IPFS node, or any other cloud/distributed storage service you use. -- [Discussify](https://github.com/ipfs-shipyard/discussify-browser-extension) - Discussify provides a real-time, peer to peer, and permanent discussion platform for anyone to join and participate. -- [DtinyUrl](https://github.com/facert/dtinyurl) - Decentralized URL shortening service based on IPFS. -- [dtube](https://d.tube) - Distributed video sharing with steem.it integrations, using ipfs for backend storage. -- [edChain](https://www.edchain.io/) - EdChain is a global network for education and careers. It uses blockchain and distributed web technologies to deliver educational content, even to those without broadband internet. [Source](https://github.com/edchainio/edchain-client-gui) -- [enzypt.io](https://enzypt.io/) - A website to buy and sell files through Ethereum and IPFS. [Source](https://github.com/flex-dapps/enzypt) -- [Ethlance](http://ethlance.com) - First completely decentralised job market platform built on Ethereum and IPFS. [Source](https://github.com/madvas/ethlance) -- [Everforo](https://www.everforo.com) - Everforo is the next generation of online community groups build on top of IPFS. -- [git-ipfs-rehost](https://github.com/whyrusleeping/git-ipfs-rehost) - A script to rehost your git repos in ipfs. -- [Global Upload](https://globalupload.io/) - File transportation service for IPFS, upload files to the future of distributed web. -- [Gorilla REPL viewer](https://github.com/keorn/ipfs-gorilla-repl) - Gorilla is a rich REPL for Clojure in the notebook style. +- [brig](https://github.com/sahib/brig) - File synchronization with git like interface and FUSE filesystem. +- [Diffuse](https://github.com/icidasset/diffuse) - Play music from your IPFS node, or any other cloud/distributed storage service you use. - [Hardbin](https://github.com/jes/hardbin) - Hardbin is an encrypted pastebin, with the decryption key passed in the URL fragment -- [HydrusNetwork](https://github.com/hydrusnetwork/hydrus) - A booru-style media tagging application with a multitude of features, recently added basic ipfs support. -- [infura.io](https://infura.io) - An Infrastructure: use API and developer tools provide secure, reliable, and scalable access to Ethereum and IPFS to help build decentralized application easier. - [InterPlanetary Wayback](https://github.com/oduwsdl/ipwb) - Web Archive (WARC) indexing and replay using IPFS. - [Interplanetary Wiki](https://github.com/jamescarlyle/ipfs-wiki) - Wiki built on top of IPFS - [ipcoronafs](https://github.com/RTradeLtd/ipcoronafs) - A realtime service to scrape COVID-19 and SARS-CoV-2, storing on IPFS, DNSLink, and streaming over LibP2P pubsub - [IPFessay](https://gitlab.com/stavros/IPFessay) - A simple way to publish uncensorable essays on IPFS. -- [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop) - Run your IPFS node on your machine without having to bother with command line tools. Manage your node, add your files, easily change the settings... everything from just one interface. -- [IPFS Drive](https://github.com/fazo96/ipfs-drive) - In browser file manager for IPFS. -- [IPFS Event Drop](https://github.com/travisperson/ipfs-event-drops) - An app that allows for improved visualization of ipfs events. -- [IPFS ID and Public Key QR Codes Demo](https://ipfs.io/ipfs/zdj7Whr8X3zah99TSuyPjENaERcBW9C7B36EaCb1DEZ5pbbL9/) - A demo app that uses windows.ipfs to show you a QR Code of your IPNS Link and of your Public Key. [Source](https://github.com/ipfs-shipyard/demo-ipfs-id-qr-codes) -- [IPFS Image Uploader](https://ipfs.talaikis.com/) - IPFS image uploader and viewer. Minerva is a storage plugin of Apache Drill that connects IPFS's decentralized storage and Drill's flexible query engine. [Source](https://github.com/TalaikisInc/ipfs-uploader) -- [IPFS with TiddlyWiki](https://github.com/xmaysonnave/tiddlywiki-ipfs) - IPFS with TiddyWiki is a TiddlyWiki plugin who aims to help developers, editors or users to save their wikis and attachments over IPFS. +- [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop) - IPFS Desktop gives you all the power of IPFS in a convenient desktop app: a complete IPFS node, plus handy OS menubar/taskbar shortcuts and an all-in-one file manager, peer map, and content explorer. - [ipfs-chat](https://github.com/SomajitDey/ipfs-chat) - Terminal-based, encrypted chatrooms. Allows private messaging & secure in-chat file/directory sharing. Server/broker-less (no signaling/rendezvous server needed). Works over LAN/internet(w/ NAT-traversal). -- [IPFS-forum](https://github.com/ReForum-ipfs/ReForum#readme) - A web3 forum.You can get new ideas,reports,dicussions from this forum ,though you maybe are in a network-restricted area,all the contents will be updated qucikly by ipfs. [Source](https://github.com/ReForum-ipfs/ReForum) - [IPFS-FPS](https://ipfs-fps-website.on.fleek.co/) - A completely decentralized first person shooter. Built with Unity, Fleek, Unstoppable Domans and Pinata. -- [ipfs-md-wiki](https://github.com/daijiale/ipfs-md-wiki) - Build your wiki system base on ipfs and markdown. -- [ipfs-search](https://ipfs-search.com) - Searching the universe since 2016. -Sniffs the DHT gossip and indexes file and directory hashes. Metadata and search API's available. [Source](https://github.com/ipfs-search/ipfs-search) -- [ipfs-share](https://github.com/rameshvarun/ipfs-share) - Pastebin/Image host/File sharing application -- [ipfs.ink](https://github.com/kpcyrd/ipfs.ink) - Publish and render markdown essays to and from ipfs. -- [ipfs.pics](https://github.com/ipfspics/ipfspics-server) - Upload and share pics. -- [IPFSBin](https://github.com/victorbjelkholm/ipfsbin) - Pastebin clone build. +- [ipfs-search](https://ipfs-search.com) - IPFS search engine Sniffs the DHT gossip and indexes file and directory hashes. Metadata and search API's available. [Source](https://github.com/ipfs-search/ipfs-search) - [IPGit](https://github.com/meyer1994/ipgit) - Remote Git repository that mirrors your code to IPFS -- [IpJot](https://ipjot.herokuapp.com/) - Creates short notes, stories, books, poems, conversations on IPFS. -- [IPSE](https://www.ipse.io/) - A search engine for the IPFS network. -- [Kauri](https://kauri.io) - A community-based knowledge platform for web3 technologies built on top of IPFS and Ethereum. Learn, share and curate on up-to-date and high-quality technical articles and series. -- [KDE-DolphinServiceMenu-IPFS](https://github.com/amar-laksh/KDE-DolphinServiceMenu-IPFS) - Service Menu for Dolphin File Manager to upload files to IPFS The open network for transaction requests. - [killcord](https://killcord.io/) - A censorship resistant deadman's switch [Source](https://github.com/nomasters/killcord) -- [La Marque](https://marque.la/) - Generate & pin content from your phone. Validate "La Marque" assets by verifying received images from others. -- [markup.rocks](https://ipfs.io/ipfs/QmWPgJnUGLB1LPh9KMG9LEN4LVu5e17TwkEtcmTWdNn9V6/#/ipfs/QmfQ75DjAxYzxMP2hdm6o4wFwZS5t7uorEZ2pX9AKXEg2u) - Pandoc-based markup editor/previewer/converter, ported to IPFS. [Source](https://github.com/davidar/markup.rocks) -- [Minerva](https://github.com/bdchain/Minerva) - Minerva is a storage plugin of Apache Drill that connects IPFS's decentralized storage and Drill's flexible query engine. -- [Music For Programming](https://ipfs.io/ipns/mfp.jillejr.tech) - Unofficial port of musicforprogramming.net. [Source](https://github.com/jilleJr/musicforprogramming.ipfs) -- [OpenBazaar](https://github.com/OpenBazaar) - OpenBazaar was an open source project developing a protocol for e-commerce transactions in a fully decentralized marketplace. -- [Orbit](https://orbit.chat) - Distributed, peer-to-peer chat application on IPFS. [Source](https://github.com/haadcode/orbit) -- [Origin Protocol](https://demo.originprotocol.com/) - Distributed sharing economy marketplace with images, metadata, and ERC 725 data stored on IPFS. [Source](https://github.com/OriginProtocol/demo-dapp) -- [P2Pdoc](https://p2pdoc.glitch.me/) - P2Pdoc allows you to create a document and then upload it to the distributed web. [Source](https://github.com/aboutDavid/p2pdoc) -- [Partyshare](https://busterlabs.github.io/Partyshare) - A simple file sharing desktop app. [Source](https://github.com/BusterLabs/Partyshare) -- [Pathephone](https://pathephone.github.io) - Distributed music streaming app. -- [Peer Bandwidth Demo](https://ipfs.io/ipfs/QmVaVXbLdw4R5NqAiiQoTWtitxo5g7FS31PQmCLbH9p8Fu/) - An demo app that uses window.ipfs, provided by the IPFS Companion web extension to get and graph bandwidth info for your IPFS node [Source](https://github.com/tableflip/ipfs-peer-bw-example) -- [Peer Map Demo](https://ipfs.io/ipfs/QmRPGCmLKH2dQmNiPRsiuYS9EhhJL1Gmkz5F75gKY1K4Bm/) - A map of IPv4 IPFS peers that uses window.ipfs [Source](https://github.com/tableflip/ipfs-peer-map-example) - [Peer Web Site](https://peerweb.site/) - Peer to Peer Web Site hosting at your fingertips! Send full featured HTML (incl. CSS, JS) sites from your browser and attach files eg. videos, images, etc. [Source](https://github.com/Weedshaker/PeerWebSite) - [Peergos](https://peergos.org) - End-to-end encrypted, peer-to-peer file storage and sharing. [Source](https://github.com/Peergos/Peergos) -- [Playback](https://mafintosh.github.io/playback/) - IPFS playback support. This allows casting a video in IPFS to a Chromecast. -- [PubSub Chat Demo](https://ipfs.io/ipfs/QmWZ3u5S7RjFXKfW6dSZhj7CozcvpqJxm48RYMmKkWcmNQ/) - A ~76KB demo chat app that uses window.ipfs, provided by the IPFS Companion web extension [Source](https://github.com/tableflip/ipfs-pubsub-chat-example) -- [Pugdit](https://github.com/zbyte64/pugdit) - A bulletin board service that discovers and distributes over IPFS - [PushToTalk](http://timothy.hobbs.cz/push-to-talk/index.html) - Push to Talk lets you edit audio essays and publish them with IPFS. -- [qri](https://qri.io) - Dataset version control, discovery and collaboration tools (free, open-source). [Project is winding down] [Source](https://github.com/qri-io/qri) -- [QuestNetwork Messenger](https://github.com/QuestNetwork/quest-messenger-js) - Multi-Platform End-To-End Encrypted Messenger on IPFS PubSub. Emulates Servers/Community with folders that can be shared using invitation codes. It's free and open source. On track to become the most comprehensive and user-friendly messenger on IPFS. -- [Request](https://request.network/) - Decentralized network for financial transactions. [Source](https://github.com/RequestNetwork/requestNetwork) -- [SimpleAsWater Bot](https://github.com/simpleaswater/twitter-pinbot) - A twitter bot that adds, pins, unpins your tweets to public IPFS network using IPFS Cluster. - [Skiff](https://www.skiff.com) - Privacy-first, end-to-end encrypted email, file storage, and collaboration platform using IPFS storage. [Source](https://github.com/skiff-org/skiff-mail) -- [Skyhook](https://github.com/deedeecx330/skyhook) - Send and receive files securely -- [TallyLab](https://tallylab.com/) - Local-first, end-to-end encrypted data diary app for capturing, analyzing, and sharing data about any and everything. -- [Temporal](https://github.com/RTradeLtd/Temporal) - Temporal is an easy to use API and platform for integrating IPFS and other distributed/decentralized storage technologies into enterprise applications -- [Terrive](https://ipfs.io/ipns/terrive.one) - A Photo and Video Sharing Platform that uses the HIVE blockchain as a database and Immutable Image/Video Hosting. [Source](https://github.com/appukuttan66/terrive) -- [Textile Photos](https://www.textile.photos) - Textile Photos is a secure, mobile digital wallet for your photos. [Source](https://github.com/textileio/textile-mobile) -- [ToDo List Demo](https://ipfs.io/ipfs/QmSGQrmvHe6fFiWdV2H8YnhLaoX4qe5nYEmJfUFx6LdUYa/) - A ToDo List demo app that uses windows.ipfs. [Source](https://github.com/ipfs-shipyard/demo-ipfs-todo) -- [ujo](http://ujomusic.com/) - A blockchain marketplace for musicians. -- [Uniswap](https://uniswap.org/) - Decentralized Trading Protocol built on Ethereum. [Source](https://github.com/Uniswap) -- [uport](https://www.uport.me) - Uport is a mobile, self-sovereign identity and key management system, built on the Ethereum blockchain. - [Valist](https://valist.io) - A trustless universal package repository enabling you to digitally sign and distribute software in just a few steps. [Source](https://github.com/valist-io/valist) -- [Watchit](https://github.com/ZorrillosDev/watchit-desktop) - A movie platform with a decentralized network approach. -- [Wistful Books](https://wistfulbooks.com/) - Single page offline application for enjoying librivox.org audio books. [Source](https://github.com/smwa/wistfulbooks) -- [xfce-screenshooter-ipfs-support](https://github.com/amar-laksh/xfce-screenshooter-ipfs-support) - A fork of xfce-screenshooter with IPFS support! -- [youtube2ipfs](https://pypi.org/project/youtube2ipfs/) - Download videos from YouTube (and similar video platforms) and add them to IPFS. [Source](https://github.com/dokterbob/youtube2ipfs) - -## Articles - -- 2020-08-03: [How to Create a Unity Game on IPFS using Pinata](https://medium.com/pinata/how-to-create-a-unity-game-on-ipfs-using-pinata-d0af18a5bd44) -- 2019-08-14: [Managing storage in a Java application with IPFS](https://kauri.io/article/3e8494f4f56f48c4bb77f1f925c6d926) -- 2019-07-22: [10+ Resources Every IPFS Developer Should Know About](https://medium.com/@vaibhavsaini_67863/10-resources-to-get-started-with-ipfs-5f429dc8a841) -- 2019-05-12: [The Complete Beginner's Guide to Deploying Your First Static Website to IPFS](https://dev.to/agentofuser/the-complete-beginner-s-guide-to-deploying-your-first-static-website-to-ipfs-33po) -- 2019-03-10: [The Case for a Decentralized Social Network](https://medium.com/npfoss/the-case-for-a-decentralized-social-network-2683b727abf5) -- 2019-01-30: [Ultimate Guide to Filecoin Breaking Down Filecoin Whitepaper & Economics](https://medium.com/swlh/ultimate-guide-to-filecoin-breaking-down-filecoin-whitepaper-economics-9212541a5895) -- 2018-08-06: [Content Identifiers in IPFS](https://pascalprecht.github.io/posts/content-identifiers-in-ipfs/) -- 2018-07-11: [On future-proof cryptographic hashes](https://pascalprecht.github.io/posts/future-proofed-hashes-with-multihash/) -- 2017-08-21: [Understanding the IPFS White Paper part 2](https://decentralized.blog/understanding-the-ipfs-white-paper-part-2.html) -- 2017-08-10: [Understanding the IPFS White Paper part 1](https://decentralized.blog/understanding-the-ipfs-white-paper-part-1.html) -- 2017-05-05: [Decentralized indexes for public genomic data](https://github.com/luizirber/2017-recomb) -- 2017-03-31: [Using IPFS for IoT Communications](https://medium.com/@chrismatthieu/using-ipfs-for-iot-communications-b49c2139783a) -- 2016-09-12: [IPFS: The Internet Democratised](https://medium.com/@tonywillenberg/web-3-0-a-truly-democratised-internet-f4b06cb4077b) -- 2016-05-20: [Changelog Podcast](https://changelog.com/podcast/204/) -- 2015-09-18: [The InterPlanetary File System Wants to Create a Permanent Web](http://motherboard.vice.com/read/the-interplanetary-file-system-wants-to-create-a-permanent-web) -- 2015-09-13: [Introduction to IPFS](http://whatdoesthequantsay.com/2015/09/13/ipfs-introduction-by-example) -- 2015-09-08: [HTTP is obsolete. It's time for the distributed, permanent web](https://ipfs.io/ipfs/QmNhFJjGcMPqpuYfxL62VVB9528NXqDNMFXiqN5bgFYiZ1/its-time-for-the-permanent-web.html) -- [Downloading nodejs versions with nvm/n over IPFS](https://ipfs.io/ipfs/QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/example#/ipfs/QmUx363UFtgiQqkHHsPK3TSDmwoALDo2hrbMWbcxjH2vFc) - -## Datasets - -- [7-piece Syzygy tablebases](https://syzygy-tables.info/) - Solutions for all chess endgames with up to 7 pieces. [Source](https://github.com/syzygy1/tb) -- [alpine-linux 3.4 packages](https://ipfs.io/ipfs/QmRsvEpJggeu4HhoafzRFobV4sbwVVTXMrdb2p8XWv7bCS) [Source](https://github.com/ipfs/archives/issues/83) -- [arXiv](https://ipfs.io/ipfs/QmfXH9XtP7xmoTH8WAp4HNSduqWMwLTH8B8TvbTkdgzNAa) [Source](https://github.com/ipfs/archives/issues/2) -- [Brainwash Dataset](https://purl.stanford.edu/sx925dc9385) - Stewart, Russell. (2015). Brainwash dataset. -- [cdn.media.ccc.de](https://ipfs.io/ipfs/QmW84mqTYnCkRTy6VeRJebPWuuk8b27PJ4bWm2bL4nrEWb) [Source](https://github.com/ipfs/archives/issues/52) -- [cdnjs](https://ipfs.io/ipfs/QmRrnfFUgx81KZR9ibEcxDXgevoj9e5DydB5v168yembnX) [Source](https://github.com/ipfs/archives/issues/35) -- [Cooking Recipes](https://ipfs.io/ipfs/QmTXo6GforwsuGAd8behjgvKCsMMBdG1xMZJF4qa9W7CHB) - Around 50GB of formatted and unformatted cooking recipes. [Source](https://old.reddit.com/r/opendirectories/comments/dsznin/50_gb_directory_of_cooking_recipes/) -- [CrowdHuman Dataset](http://www.crowdhuman.org/) - CrowdHuman dataset. A Benchmark for Detecting Human in a Crowd [Source](http://www.crowdhuman.org/download.html) -- [Geocities by Archive Team](https://ipfs.io/ipfs/QmVCjhoEFC9vwvaa8bKyJgwAByP4MXSogcyDGoz4Lkc3ox) [Source](https://github.com/ipfs/archives/issues/182) -- [haveibeenpwnd.com passwords](https://ipfs.io/ipfs/QmSRBDMksX7c5dfheGsYDdWrLdve5hBvXDQm7Yrov7KMJv) [Source](https://github.com/ipfs/archives/issues/157) -- [IETF RFC Archive](https://ipfs.io/ipfs/QmNvTjdqEPjZVWCvRWsFJA1vK7TTw1g9JP6we1WBJTRADM) [Source](https://github.com/ipfs/archives/issues/18) -- [KinoKabaret Caen, 2018 - Shortfilms](https://ipfs.io/ipfs/QmajLDwZLH6bKTzd8jkq913ZbxaB2nFGRrkDAuygYNNv39) [Source](https://github.com/ipfs/archives/issues/172) -- [MDSConnect](https://ipfs.io/ipfs/QmcvfB6pAqUfTnuAK8zFKVxbdhopnBPveJrDcy1JAA7HX5) [Source](https://github.com/ipfs/archives/issues/152) -- [No-Intro Collection](https://ipfs.io/ipfs/QmPFj6iAxUwxVyEtDJBJHXVp4SX9dkV91Mh5mjqGxTctHy) [Source](https://github.com/ipfs/archives/issues/163) -- [Old Internet Files](https://ipfs.io/ipfs/QmbsZEvJE8EU51HCUHQg2aem9JNFmFHdva3tGVYutdCXHp) [Source](https://github.com/ipfs/archives/issues/176) -- [Presidential Daily Briefs](https://ipfs.io/ipfs/Qme6epvZDj3vzHcFKdF1nZhbixjw8Bn4imGcKnbUyBJL89) [Source](https://github.com/ipfs/archives/issues/23) -- [Project Apollo Archives](https://ipfs.io/ipfs/QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D) [Source](https://github.com/ipfs/archives/issues/143) -- [textfiles.com](https://ipfs.io/ipfs/QmNoscE3kNc83dM5rZNUC5UDXChiTdDcgf16RVtFCRWYuU) [Source](https://github.com/ipfs/archives/issues/155) -- [WistfulBooks: LibriVox Audiobook Archive](https://wistfulbooks.com) - Free public domain audiobooks from LibriVox.org packaged into a single page that lets you listen to audiobooks in your browser. [Source](https://github.com/smwa/wistfulbooks) -- [World Wide Web History Project](https://ipfs.io/ipfs/QmRTSA1UFHSx3z7taNRwUVM8AjB2EQwKvyZu3BfJg9QRtZ) [Source](https://github.com/ipfs/archives/issues/159) -- [xkcd](https://ipfs.io/ipns/xkcd.hacdias.com) [Source](https://github.com/ipfs/archives/issues/21) -- [yarchive.net](https://ipfs.io/ipfs/QmdA5WkDNALetBn4iFeSepHjdLGJdxPBwZyY47ir1bZGAK) [Source](https://github.com/ipfs/archives/issues/76) - -## Services - -- [Boom.FYI](https://www.boom.fyi) - An IPFS link shortening and access control service. -- [Crust Network](https://crust.network) - Decentralized pinning and gateway service for IPFS. -- [Eternum](https://www.eternum.io/) - Paid pinning service with an easy-to-use API. -- [Fission](https://fission.codes) - App and website hosting powered by IPFS, including DNS automation, identity, and end-to-end encryption. -- [Fleek](http://fleek.co/) - Open Web development platform for building, hosting, and storing sites and apps on IPFS, Filecoin, and the Internet Computer. [Source](https://github.com/FleekHQ) -- [IPFSBay](https://www.ipfsbay.com) - Unstoppable marketplace in the IPFS network. -- [Monaparty](https://www.monaparty.me/) - Token assets platform based on Monacoin and Counterparty. Contents bound to user assets are hosted by IPFS. -- [Peergos](https://peergos.org) - Your private, but social, space online. Store and edit documents and media. Share files or folders with friends. [Source](https://github.com/Peergos/Peergos) -- [Pinata](https://pinata.cloud) - Build and manage your dapp through Pinata’s REST API and IPFS toolkit. -- [Robonomics Network](https://robonomics.network/) - Ethereum network infrastructure for cyber-physical systems' integration into Smart Cities and Industry 4.0 -- [Temporal](https://temporal.cloud) - Scalable IPFS Infrastructure with free starter package featuring turnkey APIs, toolkits and storage. -- [Unstoppable Domains](https://unstoppabledomains.com) - Domains on blockchains ## Tools -- [Almonit Browser Extension](https://almonit.com/#/extension/) - Resolves ENS domains, this let users access .eth websites while offering maximum decentralization. [Source](https://github.com/almonit/almonit-plugin) -- [Blockwatch](https://ipfs.io/ipfs/QmdikpwcyeBuGaVzWzSzPuqvBfTGD8jPAVydcCjYHsBUxo/index.html) - Monitor the current block number of the Ethereum blockchain, and set alerts (stored locally using PouchDB in your browser) for when certain block heights are passed. [Source](https://github.com/MidnightLightning/ethereum-blockwatch) -- [Bubble IPFS From URL Plugin](https://bubble.io/plugin/ipfs-add-from-uri-1616424944051x638386852081172500) - Bubble (no code platform) plugin for IPFS From URL integration -- [cachewarmer](https://github.com/BrendanBenshoof/cachewarmer) - Donate ipfs gateways to cache other people's content - [create-ipfs-app](https://github.com/alexbakers/create-ipfs-app) - Set up a decentralized web3 app by running one command. - [galacteek](https://galacteek.github.io) - A multi-platform Qt5-based browser for the distributed web [Source](https://github.com/pinnaculum/galacteek) - [gatsby-plugin-ipfs](https://github.com/moxystudio/gatsby-plugin-ipfs) - Adds support for deploying Gatsby websites to IPFS by ensuring that assets are relative. +- [git-ipfs-rehost](https://github.com/whyrusleeping/git-ipfs-rehost) - A script to rehost your git repos in ipfs. - [git-remote-ipfs](https://github.com/cryptix/git-remote-ipfs) - push/pull repositories from/to IPFS +- [Git IPFS Remote Bridge](https://github.com/ElettraSciComp/Git-IPFS-Remote-Bridge) - set of programs written in Python 3 which allow Git user to clone, push, fetch, self-host or release Git repositories over IPFS decentralized data storage system. - [go-orbit-db](https://github.com/berty/go-orbit-db) - This is a Golang port of OrbitDB that intends to be fully compatible with the original JavaScript version. OrbitDB is a serverless, distributed, peer-to-peer database. -- [go-stellar-ipfs](https://github.com/aanupam23/go-stellar-ipfs) - go-stellar-ipfs is a library that is a bridge between Stellar and IPFS. - [gomobile-ipfs](https://github.com/ipfs-shipyard/gomobile-ipfs) - IPFS and libp2p on Mobile, with Gomobile - [http2ipfs](https://github.com/jbenet/http2ipfs-web) - This is a simple webtool to add URLs to an IPFS node. -- [ipcat](https://github.com/noffle/ipcat) - :cat2: Retrieve IPFS object data and send it to stdout. - [IPDR](https://github.com/miguelmota/ipdr) - IPFS-backed Docker Registry - [IPFS Setup Action](https://github.com/marketplace/actions/ipfs-setup-action) - A GitHub Action to install and initialize go-ipfs to provision a cross-platform test environment on GitHub's CI platform. [Source](https://github.com/ibnesayeed/setup-ipfs) - [ipfs-action](https://github.com/aquiladev/ipfs-action) - GitHub Action for delivery of static websites. - [ipfs-add-from-encrypted](https://github.com/TroyWilson1/ipfs-add-from-encrypted) - Encrypt a file or directory with AES256 then add to IPFS -- [ipfs-add-from-url](https://github.com/maxlath/ipfs-add-from-url) - Add a file to IPFS from a URL instead of a file path -- [ipfs-chrome-extension](https://github.com/dylanPowers/ipfs-chrome-extension) - Chrome extension to redirect ipfs.io traffic to local gateway -- [ipfs-chrome-station](https://github.com/fbaiodias/ipfs-chrome-station) - Chrome extension to redirect ipfs.io traffic to local gateway -- [ipfs-common](https://github.com/arsyun) - Some common tools, 1.CID to human readable cid, 2.cid and block name convert, 3. read the leveldb tools. [Source](https://github.com/arsyun/ipfs-common) - [ipfs-companion](https://github.com/ipfs/ipfs-companion) - Browser extension that simplifies access to IPFS resources. - [ipfs-deploy](https://github.com/agentofuser/ipfs-deploy) - Zero-config CLI to deploy static websites: cd my-static-website && npx @agentofuser/ipfs-deploy - [ipfs-encrypted-share](https://github.com/whs/ipfs-encrypted-share) - Easy to use encrypted file uploader. - [ipfs-gui](https://github.com/marcin212/ipfs-gui) - Windows UI integration and IPFS installer -- [ipfs-linux-service](https://github.com/dylanPowers/ipfs-linux-service) - IPFS Linux Init Daemon - [ipfs-mount](https://github.com/richardschneider/net-ipfs-mount) - Mount IPFS as a mapped drive on Windows - [ipfs-paste](https://github.com/jbenet/ipfs-paste) - Paste stdin and clipboard to IPFS - [ipfs-pinner](https://github.com/wabarc/ipfs-pinner) - A toolkit help upload files to IPFS pinning services. -- [ipfs-publish](https://ipfs-publish.uhlir.dev) - Continuous Delivery tool for delivery of static websites from Git providers to IPFS. [Source](https://github.com/AuHau/ipfs-publish) +- [ipfs-publish](https://github.com/auhau/ipfs-publish/) - Continuous Delivery tool for delivery of static websites from Git providers to IPFS. - [ipfs-screencap](https://github.com/jbenet/ipfs-screencap) - Capture screenshots, publish them to IPFS, and copy the link to the clipboard. -- [ipfs-video-gateway](https://ipfs.video) - Cloud-init your own IPFS gateway on a cloud provider and easily pin content through a simple web interface. [Source](https://github.com/bneijt/ipfs-video-gateway) -- [ipfscrape](https://github.com/victorbjelkholm/ipfscrape) - Scrape a webpage with all assets and put it in IPFS +- [ipfs-video-gateway](https://github.com/bneijt/ipfs-video-gateway) - Cloud-init your own IPFS gateway on a cloud provider and easily pin content through a simple web interface. - [ipfsecret](https://github.com/shlemph/ipfsecret) - Encrypt and decrypt IPFS files with a secret passphrase - [ipget](https://github.com/ipfs/ipget) - :satellite: wget for IPFS: retrieve files over IPFS and save them locally. - [IPLD Explorer](https://explore.ipld.io) - Explore the Merkle Forest from the comfort of your browser [Source](https://github.com/ipfs-shipyard/ipld-explorer) @@ -226,25 +80,64 @@ Sniffs the DHT gossip and indexes file and directory hashes. Metadata and search - [rivet](https://github.com/wabarc/rivet) - A toolkit makes it easier to archive webpages to IPFS. - [ShareX integration](https://github.com/ShareX/CustomUploaders/blob/master/ipfs.io.sxcu) - ShareX is a file upload and manipulation tool that has a custom integration with IPFS - [Siderus Orion](https://orion.siderus.io) - Easy to use IPFS desktop client for macOS, Windows and Linux [Source](https://github.com/Siderus/Orion) +- [SimpleAsWater Bot](https://github.com/simpleaswater/twitter-pinbot) - A twitter bot that adds, pins, unpins your tweets to public IPFS network using IPFS Cluster. - [solid-ipfs](https://github.com/Eximua/solid-ipfs) - Using Solid to store IPFS Hash privately or publicly. - [Sweet IPFS](https://github.com/RHazDev/Sweet-IPFS) - Full node for Android - [Tellit](https://gitlab.com/terceranexus6/tellit) - Encrypt files before uploading them using a keypair or a passphrase - [VIPFS](https://github.com/Ideea-inc/vipfs) - Publish your Vue apps easily to IPFS - [wbipfs](https://github.com/wabarc/wbipfs) - A command-line tool and Go package interface for wayback webpage to IPFS. +- [youtube2ipfs](https://pypi.org/project/youtube2ipfs/) - Download videos from YouTube (and similar video platforms) and add them to IPFS. [Source](https://github.com/dokterbob/youtube2ipfs) -## Videos -- [Distributed Apps with IPFS - Juan Benet at Fullstack Fest 2016](https://www.youtube.com/watch?v=jONZtXMu03w) - This talk breaks down how to build a dynamic app on top of IPFS with CRDTs, pub/sub, and slick UIs. It also delves into new models for distributed computation, and the ethical importance of distributing the web. -- [IPFS Alpha - Why we must redistribute the web](https://www.youtube.com/watch?v=skMTdSEaCtA) -- [IPFS Simply Explained](https://www.youtube.com/watch?v=5Uj6uR3fp-U) - Let's take a look at how IPFS works, how it can solve issue's like censorship and if it would really work across multiple planets! -- [Juan Benet at Stanford 2015](https://www.youtube.com/watch?v=HUVmypx9HGI) - The talk includes a broad look at The IPFS Project, and a discussion on evolving the network stack through open source protocols R & D. -- [Textile Build Series - A Free Online Workshop](https://www.youtube.com/playlist?list=PLC8CEtJ9shDznO1tpvGe--BVEWmCKY9_Z) - A full Training Program to teach devs on how to build for the Decentralized Web. The series covers a ton of content, touch multiple parts of the IPFS stack and guides devs through building a simple DApp. +## Projects + +- [Fission](https://fission.codes) - Fission builds open source protocols and managed solutions that empower developers to construct scalable and secure software applications. +- [Ceramic](https://ceramic.network/) - Ceramic combines IPFS content addressing with advanced cryptography and blockchain timestamps to guarantee security and verifiability of data. + +## Services + +- [Fleek](http://fleek.co/) - Open Web development platform for building, hosting, and storing sites and apps on IPFS, Filecoin, and the Internet Computer. [Source](https://github.com/FleekHQ) +- [Peergos](https://peergos.org) - Your private, but social, space online. Store and edit documents and media. Share files or folders with friends. [Source](https://github.com/Peergos/Peergos) +- [Pinata](https://pinata.cloud) - Build and manage your dapp through Pinata’s REST API and IPFS toolkit. +- [Infura](https://infura.io) - Scalable and distributed storage infrastructure for your application + +## Articles + +- 2020-08-03: [How to Create a Unity Game on IPFS using Pinata](https://medium.com/pinata/how-to-create-a-unity-game-on-ipfs-using-pinata-d0af18a5bd44) +- 2019-08-14: [Managing storage in a Java application with IPFS](https://kauri.io/article/3e8494f4f56f48c4bb77f1f925c6d926) +- 2017-05-05: [Decentralized indexes for public genomic data](https://github.com/luizirber/2017-recomb) +- 2017-03-31: [Using IPFS for IoT Communications](https://medium.com/@chrismatthieu/using-ipfs-for-iot-communications-b49c2139783a) +- 2016-09-12: [IPFS: The Internet Democratised](https://medium.com/@tonywillenberg/web-3-0-a-truly-democratised-internet-f4b06cb4077b) +- 2016-05-20: [Changelog Podcast](https://changelog.com/podcast/204/) +- 2015-09-18: [The InterPlanetary File System Wants to Create a Permanent Web](http://motherboard.vice.com/read/the-interplanetary-file-system-wants-to-create-a-permanent-web) + +## Datasets + +- [7-piece Syzygy tablebases](https://ipfs.io/ipfs/QmVgcSADsoW5w19MkL2RNKNPGtaz7UhGhU62XRm6pQmzct) - Solutions for all chess endgames with up to 7 pieces. [Source](https://github.com/syzygy1/tb) +- [alpine-linux 3.4 packages](https://ipfs.io/ipfs/QmRsvEpJggeu4HhoafzRFobV4sbwVVTXMrdb2p8XWv7bCS) [Source](https://github.com/ipfs/archives/issues/83) +- [arXiv](https://ipfs.io/ipfs/QmfXH9XtP7xmoTH8WAp4HNSduqWMwLTH8B8TvbTkdgzNAa) [Source](https://github.com/ipfs/archives/issues/2) +- [Brainwash Dataset](https://ipfs.io/ipfs/QmZ8BpYCtcPeA5g6uXciNXN395WeqZYNVNvz4xvBxsfxqy) Stewart, Russell. (2015). Brainwash dataset. [Source](https://purl.stanford.edu/sx925dc9385) +- [cdn.media.ccc.de](https://ipfs.io/ipfs/QmW84mqTYnCkRTy6VeRJebPWuuk8b27PJ4bWm2bL4nrEWb) [Source](https://github.com/ipfs/archives/issues/52) +- [cdnjs](https://ipfs.io/ipfs/QmRrnfFUgx81KZR9ibEcxDXgevoj9e5DydB5v168yembnX) [Source](https://github.com/ipfs/archives/issues/35) +- [Cooking Recipes](https://ipfs.io/ipfs/QmTXo6GforwsuGAd8behjgvKCsMMBdG1xMZJF4qa9W7CHB) - Around 50GB of formatted and unformatted cooking recipes. [Source](https://old.reddit.com/r/opendirectories/comments/dsznin/50_gb_directory_of_cooking_recipes/) +- [CrowdHuman Dataset](https://ipfs.io/ipfs/QmTgBpFRM1K4gGyLKSv7tJnEkZZcEQcswnGDdBYkCRu6Vw) - CrowdHuman dataset. A Benchmark for Detecting Human in a Crowd [Source](http://www.crowdhuman.org/download.html) +- [Geocities by Archive Team](https://ipfs.io/ipfs/QmVCjhoEFC9vwvaa8bKyJgwAByP4MXSogcyDGoz4Lkc3ox) [Source](https://github.com/ipfs/archives/issues/182) +- [haveibeenpwnd.com passwords](https://ipfs.io/ipfs/QmSRBDMksX7c5dfheGsYDdWrLdve5hBvXDQm7Yrov7KMJv) [Source](https://github.com/ipfs/archives/issues/157) +- [IETF RFC Archive](https://ipfs.io/ipfs/QmNvTjdqEPjZVWCvRWsFJA1vK7TTw1g9JP6we1WBJTRADM) [Source](https://github.com/ipfs/archives/issues/18) +- [KinoKabaret Caen, 2018 - Shortfilms](https://ipfs.io/ipfs/QmajLDwZLH6bKTzd8jkq913ZbxaB2nFGRrkDAuygYNNv39) [Source](https://github.com/ipfs/archives/issues/172) +- [MDSConnect](https://ipfs.io/ipfs/QmcvfB6pAqUfTnuAK8zFKVxbdhopnBPveJrDcy1JAA7HX5) [Source](https://github.com/ipfs/archives/issues/152) +- [No-Intro Collection](https://ipfs.io/ipfs/QmPFj6iAxUwxVyEtDJBJHXVp4SX9dkV91Mh5mjqGxTctHy) [Source](https://github.com/ipfs/archives/issues/163) +- [Old Internet Files](https://ipfs.io/ipfs/QmbsZEvJE8EU51HCUHQg2aem9JNFmFHdva3tGVYutdCXHp) [Source](https://github.com/ipfs/archives/issues/176) +- [Presidential Daily Briefs](https://ipfs.io/ipfs/Qme6epvZDj3vzHcFKdF1nZhbixjw8Bn4imGcKnbUyBJL89) [Source](https://github.com/ipfs/archives/issues/23) +- [Project Apollo Archives](https://ipfs.io/ipfs/QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D) [Source](https://github.com/ipfs/archives/issues/143) +- [textfiles.com](https://ipfs.io/ipfs/QmNoscE3kNc83dM5rZNUC5UDXChiTdDcgf16RVtFCRWYuU) [Source](https://github.com/ipfs/archives/issues/155) +- [WistfulBooks: LibriVox Audiobook Archive](https://ipfs.io/ipfs/QmXyNMhV8bQFp6wzoVpkz3NqDi7Fj72Deg7KphAuew3RYU) - Free public domain audiobooks from LibriVox.org packaged into a single page that lets you listen to audiobooks in your browser. [Source](https://github.com/smwa/wistfulbooks) +- [World Wide Web History Project](https://ipfs.io/ipfs/QmRTSA1UFHSx3z7taNRwUVM8AjB2EQwKvyZu3BfJg9QRtZ) [Source](https://github.com/ipfs/archives/issues/159) +- [yarchive.net](https://ipfs.io/ipfs/QmdA5WkDNALetBn4iFeSepHjdLGJdxPBwZyY47ir1bZGAK) [Source](https://github.com/ipfs/archives/issues/76) ## Contribute to this list! -Everyone is welcome to submit their new awesome-ipfs item, but it will be accepted only if it meets our [content policy](https://github.com/ipfs/awesome-ipfs/blob/master/POLICY.md). - -Readme and the website are automatically generated. In order to add an element to this list, you need to modify the files in `/data` and then run `make build` before publishing your pull request. Read [contributing guidelines](https://github.com/ipfs/awesome-ipfs/blob/master/CONTRIBUTING.md) to learn how to do so. +Everyone is welcome to submit their new awesome-ipfs item, but it will be accepted only if it meets our [content policy](./POLICY.md). ## License diff --git a/package.json b/package.json index c32ec9b..198af90 100644 --- a/package.json +++ b/package.json @@ -9,38 +9,16 @@ }, "scripts": { "start": "node ./scripts/dev.js", - "lint": "standard", - "deploy": "npm run build && ipfs add -r -Q ./public", - "build": "run-s build:*", - "build:readme": "node ./scripts/make-readme.js", - "build:fonts": "shx mkdir -p src/static/fonts && shx cp node_modules/ipfs-css/fonts/* src/static/fonts", - "build:icons": "shx cp node_modules/ipfs-css/icons/* src/layouts/partials/icons", - "build:css": "postcss --no-map --use postcss-import cssnano -o src/static/app.css src/css/*.css", - "build:js": "browserify -g uglifyify src/js/app.js -o src/static/app.js", - "build:data": "node ./scripts/make-data.js", - "build:hugo": "hugo -s src -d ../public --cleanDestinationDir --minify --gc", "ci:danger": "danger ci" }, "devDependencies": { - "babel-eslint": "^10.0.2", - "browserify": "^16.3.0", "chokidar": "^3.0.2", - "cssnano": "^4.1.10", "danger": "^11.1.2", "ecstatic": "^4.1.2", "fs-extra": "^8.1.0", - "hugo-bin": "^0.43.6", "node-yaml": "^4.0.1", "npm-run-all": "^4.1.5", - "postcss-cli": "^6.1.3", - "postcss-import": "^12.0.1", - "shx": "^0.3.2", - "standard": "^13.0.2", - "uglifyify": "^5.0.1", - "watch": "^1.0.2" - }, - "standard": { - "parser": "babel-eslint" + "shx": "^0.3.2" }, "author": "Protocol Labs, Inc.", "license": "MIT", diff --git a/scripts/data.js b/scripts/data.js deleted file mode 100644 index 6965e32..0000000 --- a/scripts/data.js +++ /dev/null @@ -1,34 +0,0 @@ -const fs = require('fs') -const { join } = require('path') -const yaml = require('node-yaml') -const { sortAbc, sortInv, slugify } = require('./utils') - -const dir = join(__dirname, '../data') -const trimIfExists = (str) => str ? str.trim() : undefined - -module.exports = fs.readdirSync(dir) - .map(file => join(dir, file)) - .map(file => yaml.readSync(file)) - .map(file => { - file.slug = slugify(file.title) - file.type = 'category' - - file.content = file.content.map(({ title, description, ...meta }, i) => ({ - ...meta, - title: trimIfExists(title), - description: trimIfExists(description), - category: file.slug, - color: file.color, - index: i - })) - - let sort = (a, b) => sortAbc(a.title, b.title) - - if (file.slug === 'articles') { - sort = (a, b) => sortInv(a.date, b.date) - } - - file.content = file.content.sort(sort) - return file - }) - .sort((a, b) => sortAbc(a.title, b.title)) diff --git a/scripts/dev.js b/scripts/dev.js deleted file mode 100644 index e91c99c..0000000 --- a/scripts/dev.js +++ /dev/null @@ -1,72 +0,0 @@ -const chokidar = require('chokidar') -const path = require('path') -const runAll = require('npm-run-all') -const dataFolder = path.join(__dirname, '../data') -const srcFolder = path.join(__dirname, '../src') -const cssPath = path.join(__dirname, '../src/css') -const jsPath = path.join(__dirname, '../src/js') -const http = require('http') - -const options = { - stdout: process.stdout, - stderr: process.stderr -} - -const runHugo = () => { - return runAll(['build:hugo'], options).catch(() => {}) -} - -const handler = (path) => { - if (path.startsWith(dataFolder)) { - runAll(['build:data'], options).then(runHugo) - } else if (path.startsWith(cssPath)) { - runAll(['build:css'], options).then(runHugo) - } else if (path.startsWith(jsPath)) { - runAll(['build:js'], options).then(runHugo) - } else { - runHugo() - } -} - -async function run () { - console.log('Preparing fonts, css, js and data...') - await runAll(['build:fonts', 'build:css', 'build:js', 'build:icons', 'build:data'], { - stdout: process.stdout, - stderr: process.stderr, - parallel: true - }) - - await runHugo() - - console.log('Starting server...') - - const ecstatic = require('ecstatic')({ - root: `${__dirname}/../public`, - showDir: true, - autoIndex: true - }) - - const port = process.env.PORT || 8080 - http.createServer(ecstatic).listen(port) - - const watcher = chokidar.watch([dataFolder, srcFolder], { - ignored: (string) => string.indexOf('src/content') !== -1 || - string.indexOf('src/data') !== -1 || - string.indexOf('src/resources') !== -1 || - string.indexOf('src/layouts/partials/indexes') !== -1 || - string.indexOf('src/static/fonts') !== -1 || - string.indexOf('src/static/app.css') !== -1 || - string.indexOf('src/static/app.js') !== -1, - persistent: true, - ignoreInitial: true, - awaitWriteFinish: true - }) - - watcher - .on('ready', () => console.log('Listening on :' + port)) - .on('add', handler) - .on('change', handler) - .on('unlink', handler) -} - -run()