HOWTO Step-by-step Guide to build your own condenser like Steeming.com social network.
Updated: September 15, 2018. Step-by-step Guide on how to setup your own condenser like Steeming.com website.
Please remember Steemit.com is not STEEM, you have alternative site like Steeming.com, Busy.org or other condenser social network where you can login using your steem account to access the steem blockchain.
You ALWAYS connect using SSL e.g. https://Steeming.com, this is to encrypt your session to the website that gives you access to the blockchain.
From Steemit Github “Condenser is the react.js web interface to the world’s first and best blockchain-based social media platform, steemit.com. It uses STEEM, a blockchain powered by Graphene 2.0 technology to store JSON-based content for a plethora of web applications”.
You can follow the guide here: https://github.com/steemit/condenser or follow my guide, both will end good result.
Step 01. Every time I prepare a server, I setup the correct time . This is useful checking your logs later.
sudo timedatectl set-timezone America/New_York
sudo apt-get install htop //You need to know your server CPU/Memory Utilization
sudo apt-get update
sudo apt-get upgrade
sudo apt install git curl wget
Step 02. Lets create our own condenser site.
git clone https://github.com/steemit/condenser
Step 03. In this setup, the condenser is using nvm install v8.7.0
nvm install v8.7
npm install -g yarn yarn global add babel-cli yarn install --frozen-lockfile yarn run build // wait for a couple of minutes to compile.
yarn run production // using port 8080, make sure your server allow it.
You should be to access your own blockchain site.
http://steeming:8080 //8080 is a default port. Play around with the new condenser website.
Step 04. SECURITY – SECURITY – SECURITY we need to implement security at all time.
Install, let’s encrypt.
I’m not going to re-invent the wheel, I followed this guide to install my server digital certificate so I can access with SSL protocol – https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-14-04
After you finished installing SSL on your server. You should be able to access it with SSL.
https://steeming.com // this will display the default placeholder of Apache page.
https://steeming:8080 // will be an error, cannot be display. This is correct we haven’t done anything yet.
http://steeming:8080 // you should be able to access the blockchain site (un-secure, not recommended let’s fix it.)
Run this command to forward ports from 8080 to 80. (If doesn’t work, check the alternative command in the references below).
sudo /sbin/iptables -t nat -I PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8080
PLEASE NOTE – double dash dport, and double dash to single dash port sometimes wordpress editor messed it up.
Now go to:
http://Steeming.com // this will show the steem blockchain site, not the default apache page.
Step 05. Edit your config default.json file and change the “server session key” by running this command.
node https://steeming.org > crypto.randomBytes(32).toString('base64') > .exit
This is my website default.json configuration. I put it up so you can compare with your settings.
Edit /condenser/config/default.json file. Update the following.
- database_url // update url and your password. I removed my information here for security reason.
- “google_analytics_id”: “UA-11413985-53“, // I added my own analytic for yehey.org (now steeming.com) so I can check the website traffic.
- “connectSrc”: “‘self’ steemit.com https://api.steemit.com https://api.steem.house api.blocktrades.us https://steemitimages.com”,
- “img_proxy_prefix”: “https://steemitimages.com/”, // by default it is pointing to https://steemitdevimages.com
- “connectSrc”: “‘self’ steemit.com api.steemit.com https://steemitimages.com api.blocktrades.us”, // pre-loaded.
- “server_session_secret”: “QY5K6AuN9Qm5+lbcrWZSn5IhbFOgfOdkFICkM5MM7Zo=”, “session_cookie_key”: “yehey-belgium”, “session_key”: “yehey”, “site_domain”: “yehey.org”,
- change “upload_image”: true, to “upload_image”: “https://steemitimages.com”,
- “steemd_connection_client”: “https://api.steemit.com”, “steemd_connection_server”: “https://api.steemit.com”,
Step 6. Next, Install MySQL server if you want to manage your user.
Follow this procedure and security recommendation: https://www.digitalocean.com/community/tutorials/how-to-install-the-latest-mysql-on-ubuntu-16-04
Step 7. Personalized your condenser website.
Change the header text or update logo. Edit src/app/components/modules/Header.jsx // For this example, I simply add “@Yehey [Witness]” a simple advertising of my service.
NOTE: As of June 16, 2018. You will not see the Header.jsx file anymore. It is now a directory ‘Header’ where it contain the ‘index.jsx‘ file that you need to edit. And if you want to change the ‘beta’ to something else, you need to edit the MiniHeader.jsx file.
Update the Search page using your own Google code. Edit Search page., go to /condenser/src/app/assets/static/search.html // https://yehey.org/static/search.html. For example, I changed the Title to Search – Yehey.org. You can also change the logo if you want.
Step 8. Let’s go live.
If you’re done editing files. Run
yarn run build
To run condenser in production mode, run:
yarn run production
- 20171031 Can’t upload image to the front-end website. Resolution. Add in default.json config file https://steemitimages.com to the connectSrc, and “upload_image”: “https://steemitimages.com/”.
- 20171030 Transaction Broadcast Errors – I still don’t know why this error exist. The error started showing up after I updated the default.json config file to add “registrar account”.
I hope this help you and I hope you will support me as your Witness.
Update: Dec. 5, 2017: Server Maintenance Routine:
- Run “sudo apt-get update”
- Run “sudo apt-get upgrade”
- Run “sudo apt-get dist-upgrade”
- Restart the server.
- cd condenser
- screen -S condenser
- Run “yarn run production”
- in another session, run the next command.
- Run “sudo /sbin/iptables -t nat -I PREROUTING -p tcp –dport 80 -j REDIRECT –-to-port 8080”
- or this one
sudo iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-ports 8080
PLEASE NOTE (double dash dport, and double dash to single dash port) the content management system editor is not properly displaying the codes.
Please VOTE @yehey for Witness, go to https://steemit.com/~witnesses and vote for yehey.
Follow me @Yehey. Please Vote Up and RESTEEM.
- September 15, 2018. Updated the document to use Steeming.com (instead of Yehey.org) for marketing a strong brand.
- June 16, 2018. Updated using the latest version of condenser site for Yehey.org website.
- February 25, 2018. My initial publication of this article, actually done many updates for the first year.
- https://github.com/steemit/condenser (official website)
sudo iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-ports 8080
- How To Forward Ports through a Linux Gateway with Iptables
- Install Node.js using NVM install steps 1-6. Link: https://www.godaddy.com/help/install-nodejs-ubuntu-17395 to insall Node JS
- How to install MySQL in Ubuntu – https://www.digitalocean.com/community/tutorials/how-to-install-the-latest-mysql-on-ubuntu-16-04
- How to un-install MySQL in Ubuntu – https://www.digitalocean.com/community/questions/how-do-i-uninstall-and-reinstall-mysql
- How To Secure Apache with Let’s Encrypt on Ubuntu 14.04 – https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-14-04
- How to install Supervisor – https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervisor-on-ubuntu-and-debian-vps
Captured Screen Shots:
June 16, 2018.
Updated. September 2, 2018. As recommended by @netuoso.
just a heads up to anyone running a condenser instance, if you want to upload images directly to steemit the way steemit.com does, you need to edit the condenser config to include “img_proxy_prefix”: “https://cdn.steemitimages.com/” and “upload_image”: “https://cdn.steemitimages.com” (the trailing slash being present or not is absolutely important)