Preserve files and content to storage platforms¶
Preserving to IPFS, Filecoin or Textile Buckets¶
The truffle preserve
command comes preconfigured with the ability to preserve files to IPFS, Filecoin or Textile Buckets.
IPFS¶
To preserve your files to IPFS use the --ipfs
flag.
$ truffle preserve ./path --ipfs [--environment <name>]
Configuration¶
By default, the connection to IPFS is done with a local node presumed to be running at http://localhost:5001
. This is the default for an ipfs
daemon and also for ganache filecoin
. It is possible to point to a different IPFS node by configuing a different URL in a truffle-config.js
environment.
module.exports = {
/* ... rest of truffle-config */
environments: {
/* ... other environments */
production: {
ipfs: {
address: 'https://ipfs.infura.io:5001'
}
}
}
}
Filecoin¶
To preserve your files to Filecoin use the --filecoin
flag.
$ truffle preserve ./path --filecoin [--environment <name>]
Configuration¶
By default, the connection to Filecoin is done with a local node presumed to be running at http://localhost:7777/rpc/v0
. This is the default for a mainnet or localnet Lotus or Powergate node and also for ganache filecoin
. It is possible to point to a different Filecoin node by configuing a different URL in a truffle-config.js
environment. Besides the connection URL, you can also configure Filecoin storage deal options such as the duration or price.
module.exports = {
/* ... rest of truffle-config */
environments: {
/* ... other environments */
development: {
filecoin: {
address: 'http://localhost:1234/rpc/v0',
token: 'AUTH_TOKEN',
storageDealOptions: {
epochPrice: "2500",
duration: 518400, // 180 days
}
}
}
}
}
Textile Buckets¶
To preserve your files to Textile Buckets use the --buckets
flag.
$ truffle preserve ./path --buckets [--environment <name>]
Configuration¶
Textile Buckets requires some configuration in order to work with truffle preserve
. To get started, you need to install Textile's hub
tool, register and create authentication keys.
hub init
hub keys create
- account
- Require Signature Authentication (recommended): N
After generating these keys, they need to be added to an environment in your truffle-config.js
file as well as the name of the bucket that you want to preserve your files to - it's possible to use an existing bucket for this, or if it doesn't exist yet it will be created in the process.
module.exports = {
/* ... rest of truffle-config */
environments: {
/* ... other environments */
development: {
buckets: {
key: "MY_BUCKETS_KEY",
secret: "MY_BUCKETS_SECRET",
bucketName: "truffle-preserve-bucket",
}
}
}
}
Preserving with custom preserve recipes¶
While Truffle comes bundled with support for IPFS, Filecoin and Textile Buckets, additional workflows (or recipes) can be defined and used.
Plugin installation / configuration¶
-
Install the plugin from NPM.
npm install --save-dev truffle-preserve-to-my-server
-
Add a
plugins
section to your Truffle config.module.exports = { /* ... rest of truffle-config */ plugins: [ "truffle-preserve-to-my-server" ] }
-
Add any required configuration options to your Truffle config if it's required by the plugin. Refer to the plugin's documentation for this.
Plugin usage¶
After installation and configuration, the plugin's tag (e.g. --my-server
) will show up in truffle help preserve
and can be used with truffle preserve
.
truffle preserve ./path --my-server
Creating custom preserve recipes¶
Refer to the following resources to get started creating your own custom recipes: