This guide will cover how to upload a website to ethoFS, along with setting up the DNS for the website.
Please note that currently only HTML, CSS and JS work on ethoFS web hosting. Server side languages such as PHP are not yet supported.
Preparing the Website for Upload
All data uploaded to ethoFS is immutable, as such any changes to your website after hosting will require another hosting contract to be created. It is not possible to update an existing contract.
The screenshot below shows an example folder structure. A parent folder contains HTML files and images along with a sub-folder, containing images for a specific page of the website. (In this case team pictures for the ethoLABS website.) This demonstrates that it is possible to upload a folder structure to ethoFS.
ethoLABS website file structure.
Uploading Files to Immutable ethoFS Storage
Open the browser of your choice and ensure you have unlocked your MetaMask Wallet.
You will be presented with a page which lists all of your active contracts and some ethoFS stats, scroll down to the ethoFS Hosting Contracts section:
ethoFS Hosting Contracts Section
To start a new hosting contract, click on the green button named New Hosting Contract. You will then be presented with the contract setup system:
ethoFS contract setup system
To upload your folder, click on the cloud icon. You will then need to upload the parent website folder, as shown in the screenshot below. (Do not upload the files individually, instead upload the complete folder.)
Following selection of the website folder, you will see the previously blank section of the window become populated with the contents of the website folder. (This is a good opportunity to double check that all the files are present.)
Then scroll down and enter a contract name. In this example "ETHOLABS" was used.
ethoFS Contract Name
You will now need to select the duration of the contract. On ethoFS the contract length is measured in blocks, so select the desired contract duration using the drop down menu, shown in the screenshot below. (In order to estimate the block time, you can multiply the block time by the number of blocks to determine an estimate for the duration of the hosting contract in seconds.)
ethoFS Contract Duration
Then in the bottom corner you will be able to see how much $ETHO the hosting contract costs:
ethoFS Contract Cost
Then click confirm:
A new screen should open - this is the MetaMask transaction approval screen which will look like this:
Click submit and the MetaMask pop-up will close. A new pop-up will appear, showing the status of the payment:
ethoFS transaction status
Before the file upload begins, you will need to wait until the transaction is confirmed by the network. You will see a notification from the ETHO Mask Wallet, along with the ethoFS upload status pop-up.
ETHO Mask Confirmed Transaction
ethoFS file upload status window.
Once the ethoFS upload status reached 100%, your files have been uploaded to the ethoFS network. You will be returned to the first screen listing your contracts:
Don't worry about the contract name change - I did that due to a version issue
Click on the contract, you will be greeted by another pop-up which contains the contract details this is very important, scroll down until you see this:
You need to copy the content hash to setup your TLD
Setting up Your Domain DNS for ethoFS
Step 1: Head over your domain provider and login.
Step 2: Setup your domain web address for the ethoFS hosted hash you just uploaded. In our case we want to create the subdomain: goog. We do this via a domain DNS CNAME record creation which points to: dns.ethofs.com. Make your CNAME Record the name of the subdomain you want, in the example it's goog.domainnamehere.com.
Step 3: This is where you need the content hash. You're going to need to setup a TXT record called (note: .goog matches the subdomain name you chose for your CNAME record above):
Then inside the TXT record you will need to enter this:
Once done it should look similar to this:
Step 4: Visit your website!
Please Note: Your website might not be available immediately as it can take a bit of time for DNS changes to propagate over the internet.
Congratulations! You just setup your decentralized website on ethoFS!
If you require any assistance in using ethoFS, please join our discord!
Due to the immutable (not able to be changed) nature of ethoFS, you need to upload a new version of the website every time you need to make a change, as well as update the txt DNS record. It's recommended you test all changes locally and confirm everything is 100% working and the way you want it before uploading to ethoFS