Unstoppable Domains: Deploy a Decentralized Blog Using Unstoppable Domains, Akash, and IPFS

Learn how to deploy a decentralized blog using Unstoppable Domains and Filebase.

What are Unstoppable Domains?

Unstoppable Domains are NFT domains that are associated with a crypto wallet and minted on blockchain networks, just like other forms of NFTs like image or music files. Unstoppable Domains can be used with DNS CNAME records like traditional domain names, meaning you can use an Unstoppable Domain as a domain name for a personal website or blog.

What is Akash?

Akash is an open-source cloud platform that lets you quickly deploy a Docker container to any cloud provider of your choice. Akash is a compute partner to Filebase, providing developers and enterprises with the ability to create decentralized applications connected to Filebase.

Read below to learn how to deploy a decentralized blog using Unstoppable Domains, Akash, and Filebase.

This guide was created and tested using Ubuntu 20.04. Commands and workflow may vary depending on your operating system.

Prerequisites:

1. Login to the Unstoppable Domains web dashboard.

Select ‘Domains’ then ‘Domain Search’.

2. Search for your desired domain name.

Select the one you’d like to purchase.

3. Once purchased, your domain will be listed under the ‘My Domains’ tab.

Select ‘Free Mint’ to mint your domain on the Polygon network.

Minting is the process of converting a digital file into a crypto collectible or digital asset on a blockchain network. In this case, we are minting our digital asset, our domain, on the Polygon blockchain network.

4. Select ‘Continue’ to begin the minting process.

5. Choose the crypto wallet you’d like to mint your domain to.

In this tutorial, we’ll use MetaMask.

6. Accept and sign the signature request through the MetaMask plugin.

7. Choose the wallet to mint to.

8. Confirm that the wallet address is correct and that the domain name is the desired domain to be minted.

9. The minting process can take a few minutes.

Select “Track Progress” to view the status of your minting transaction.

10. Once the transaction has been completed, your domain has been minted.

11. Next, open a terminal window. Create a working directory:

mkdir .akash-ui

12. Create a Docker container using the tombeynon/akash-deploy image.

This image uses the Akash network.

docker run -v ~/.akash-ui:/root/akash -p 3000:3000 --rm -it tombeynon/akash-deploy

13. Navigate to localhost:3000.

If you want to create a new Akash wallet, enter a Keyring password. If you already have an Akash wallet you’d like to use, enter the wallet’s Recovery phrase.

14. You will be brought to a screen displaying your wallet address and its current balance.

You will need to have some AKT to use Akash. Learn more about how to buy or trade AKT here.

15. Select ‘Deployments’ from the top navigation bar. Then select ‘Create New’.

16. Input the following information for your deployment:

Special thanks to Medium User @zJ_ for this custom deployment

---
version: "2.0"
services:
  db:
    image: mysql/mysql-server:latest
    env:
      - MYSQL_ROOT_PASSWORD=ROOTPASSWORD
      - MYSQL_DATABASE=DATABASE
      - MYSQL_USER=USERNAME
      - MYSQL_PASSWORD=PASSWORD
    expose:
      - port: 3306
        to:
          - service: wordpress
  wordpress:
    depends-on:
      - db
    image: zjuuu/akash-wphns:latest
    env:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_NAME=DATABASE
      - WORDPRESS_DB_USER=USERNAME
      - WORDPRESS_DB_PASSWORD=PASSWORD
      - WORDPRESS_TABLE_PREFIX=wp_
    expose:
      - port: 80
        accept:
          - UNSTOPPABLE-DO
        to:
          - global: true
profiles:
  compute:
    wordpress:
      resources:
        cpu:
          units: 1
        memory:
          size: 2Gi
        storage:
          size: 2Gi
    db:
      resources:
        cpu:
          units: 1
        memory:
          size: 1Gi
        storage:
          size: 1Gi
  placement:
    westcoast:
      pricing:
        wordpress:
          denom: uakt
          amount: 5000
        db:
          denom: uakt
          amount: 5000
deployment:
  wordpress:
    westcoast:
      profile: wordpress
      count: 1
  db:
    westcoast:
      profile: db
      count: 1

Replace the following variables:

  • MYSQL_ROOT_PASSWORD=ROOTPASSWORD

  • MYSQL_DATABASE=DATABASE

  • MYSQL_USER=USERNAME

  • MYSQL_PASSWORD=PASSWORD

  • WORDPRESS_DB_HOST=db

  • WORDPRESS_DB_NAME=DATABASE

  • WORDPRESS_DB_USER=USERNAME

  • WORDPRESS_DB_PASSWORD=PASSWORD

  • WORDPRESS_TABLE_PREFIX=wp_

  • UNSTOPPABLE-DOMAIN

After submitting the deployment, you will need to accept the offer from a Provider, then send the deployment manifest. After that, your Wordpress blog will be available at the supplied .ingress..mainnet.akashian.io URL.

17. Now we need a Filebase IPFS bucket.

To do this, navigate to console.filebase.com. If you don’t have an account already, sign up, then log in.

18. Select ‘Buckets’ from the left side bar menu, or navigate to console.filebase.com/buckets.

Select ‘Create Bucket’ in the top right corner to create a new bucket.

19. Enter a bucket name and choose the IPFS storage network to create the bucket.

Bucket names must be unique across all Filebase users, be between 3 and 63 characters long, and can contain only lowercase characters, numbers, and dashes.

20. From your Wordpress dashboard, select your Wordpress site, then select ‘Plugins’ from the left side bar menu.

21. Search for the ‘Media Cloud’ plugin.

22. Install the Media Cloud plugin.

23. After the plugin has been installed, manage the plugin.

24. Alternatively, you can also select the plugin from the left side bar menu.

25. Once in the configuration screen, select the ‘Cloud Storage’ toggle option to toggle it on, then select ‘Settings’ to configure your Filebase account for use with Media Cloud.

26. Toggle ‘Enable Cloud Storage’, then under the ‘Storage Provider’ menu, choose ‘Other S3 Compatible Service’

27. Scroll down to ‘Provider Settings’. Configure the following information:

  • Access Key: Filebase Access Key

  • Secret: Filebase Secret Key

  • Bucket: Filebase Bucket Name

  • Region: US East (N. Virginia)

  • Custom Endpoint: s3.filebase.com

  • Path Style Endpoint: Toggle On

Save the configuration settings.

28. Verify your configuration. Under ‘Media Cloud’ on the left side bar menu, select ‘System Tests’.

Run all tests and confirm that the sample file uploads to Filebase successfully.

29. Finally, let’s add our Unstoppable Domain to our Wordpress blog.

Create a text file on your computer called index.html with the following content:

<!DOCTYPE html>
<html>
<head>
<title>HTML Meta Tag</title>
<meta http-equiv = "refresh" content = "1; url = AKASH_URL" />
</head>
<body>
<p>BLOG DESCRIPTION</p>
</body>
</html>

Replace AKASH_URL with your Akash http://*.ingress.*.mainnet.akashian.io URL, and replace BLOG DESCRIPTION with the desired description of your WordPress site.

30. Head back to the Unstoppable Domain dashboard.

Select ‘Domains’ > ‘My Domains’, then select ‘Manage’ for the domain you’re using for your blog.

31. Select ‘Website’, then select ‘Upload Website Files’.

Then upload your newly created index.html file.

Once you’ve completed this step, your blog is ready to be accessed through your Unstoppable Domain name! You’ve now created a decentralized blog powered by 3 different Web3 technologies!

Last updated