This TiddlyWiki plugin aims to help users, editors and developers to manage their wikis over IPFS.
This plugin provides the following features:
- Store
TiddlyWiki's
and attachments on IPFS - Access
TiddlyWiki's
and attachments from IPFS - Encrypt and Unencrypt
TiddlyWiki's
and attachments - Publish and Manage IPNS Keys and Names
- Interact with Metamask Ethereum wallets
- Publish to ENS
- Share over IPFS
TiddlyWiki's
Tiddlers and attachments
According to Wikipedia:
TiddlyWiki is a personal wiki and a non-linear notebook for organising and sharing complex information. It is an open-source single page application wiki in the form of a single HTML file that includes CSS, JavaScript, and the content. It is designed to be easy to customize and re-shape depending on application. It facilitates re-use of content by dividing it into small pieces called Tiddlers.
IPFS with TiddlyWiki
enhances TiddlyWiki as a decentralized application (Đapps) who uses distributed computing systems:
- IPFS is a decentralized storage network
- Ethereum Smart Contracts are decentralized applications
IPFS with TiddlyWiki
has the following ĐApp characteristics:
- Open Source
- Decentralized
- Unstoppable
- Transparency
With a capable ENS browser:
With a non capable ENS browser
Recommended TiddlyWiki Plugins:
These instructions will get you a copy of the project up and running on your local machine.
Starting from the file system, Follow the developer instructions Running TiddlyWiki
To resolve .eth domains you need an Ethereum capable browser:
- Use Metamask as a browser extension
- Use Metamask as an Android mobile application
- Use IPFS with TiddlyWiki
To update ENS domains you need an Ethereum wallet:
To run a local IPFS node, you need:
More informations about IPFS:
Remarks:
EthDNS and EthLink are able to resolve https://bluelightav.eth.link to IPFS.
According to the ipfs-desktop
README.md, IPFS Desktop allows you to run your IPFS Node on your machine without having to bother with command line tools
.
According to the ipfs-companion
README.md, This add-on enables everyone to access IPFS resources the way they were meant: from locally running IPFS node :-)
.
The IPFS Companion
support is Temporarily Disabled and will be back in Q3 2020.
Mainnet
: Ethereum Main NetworkRopsten
: Ethereum Test Network (PoW)Rinkeby
: Ethereum Test Network (PoA)Goerli
: Ethereum Test Network (PoA)
Setup a nodejs environment to build tiddlywiki instances bundled with IPFS with TiddlyWiki
.
jsDelivr, A free CDN for Open Source: https://www.jsdelivr.com/
Node Documentation: https://nodejs.org/en/docs/
Npm Repository: https://www.npmjs.com/
SriHash: https://www.srihash.org/
On Debian Buster we don't use the default Debian repositories or the Nodesource repositories. We use nvm.
Follow the nvm installation and update tutorial:
Current installation and update script:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
As we are using zsh, here is an excerpt of our .zshrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# place this after nvm initialization!
autoload -U add-zsh-hook
load-nvmrc() {
local node_version="$(nvm version)"
local nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
if [ "$nvmrc_node_version" = "N/A" ]; then
nvm install
elif [ "$nvmrc_node_version" != "$node_version" ]; then
nvm use
fi
elif [ "$node_version" != "$(nvm version default)" ]; then
echo "Reverting to nvm default version"
nvm use default
fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc
This repository contains a .nvmrc who describes the node version to use.
v12.18.0
Install the recommended version.
nvm install v12.18.0
Check:
node -v
v12.18.0
We update npm to use the latest:
npm install -g npm@latest
npm -v
6.14.5
At this stage your environment should look like this:
npm -g ls --depth=0
/home/user/.nvm/versions/node/v12.18.0/lib
└── [email protected]
Clone this repository in a local folder:
git clone https://github.com/xmaysonnave/tiddlywiki-ipfs --depth 1
Change directory:
cd tiddlywiki-ipfs
Install dependencies, Node.js should be installed and setup:
npm install
The repository contains several scripts who build TiddWiki instances bundled with IPFS with TiddlyWiki
.
The package.json references several options:
- build-all-noclone
- build
- build-tiddlywiki
- eslint
- eslint:fix
- format
- run-build-number
- run-browserify
- run-prepare-clone
- run-prepare
- test
- snyk-protect
- prepare
Use the build
script to build IPFS with TiddlyWiki
.
The wiki
directory contains several runnable TiddlyWikis
:
and the IPFS with TiddlyWiki
plugin as a json file:
Use the test
script to run the tests.
This project is integrated with Travis CI:
Open wiki/index.html file in your favorite browser.
Please read CODE_OF_CONDUCT.md for details on our code of conduct.
- Xavier Maysonnave - Initial work - IPFS with TiddlyWiki
See also the list of contributors who participated in this project.
This project is licensed under the GPL-3.0-or-later - see the LICENSE file for details.
- Hat tip to anyone who support this project
- Inspiration