[Development] Steemhunt back end API dockerize
Steemhunt is a website build on top of steem blockchain that allows author to hunt for new and cool products.
Since the backend server was written in Ruby on Rails, it requires front end contributors to know a little bit knowledge about ruby on rails in order to contribute. Other pain about using ruby is installation on Windows. Therefore, I decided to dockerize the back end Ruby On Rails server in order to help out the front end developers to work on front end web without hassle on setting up the back end.
Questions being asked on Steemhunt discord regarding on installation of ruby
Pull Request made
What feature(s) did you add?
- Dockerize Steemhunt back end API server
- Added docker usage guide into README.md
- Set up the back end with just 2 lines of bash command:
docker-compose build && docker-compose up
How did you implement it/them?
From the commit history e2cfbf6d39e3271e28bd5cc0a746fff5f08de23c, I tried a few attempts for setting up both back end and front end with ruby
bundler command and use a different environment variable called
docker, but my final choices ended up back to the basic one.
Dockerfile is used to pull Ruby images from docker and move all the files.
docker-compose.yml file is used to setup PostgreSQL server and link Rails to PostgreSQL. Then, port
5432 is open for PostgreSQL and
3001 for Ruby On Rails API server.
The following on commit e8f50f3bd49549baaa43edd3de7b6c86a77313d4 was discussed with @tabris the lead developer of SteemHunt, where we decided not to create a new environment, and stick back to
dev environment, the commit was done to delete the duplicate codes.
- What is the project about?
Steemhunt is a website build on top of steem blockchain that allows author to hunt for great products.
- Ruby On Rails
How to contribute?
Steemhunt is open source on GitHub, where there are 2 seperate repository to seperate the front end and backend. I had written a tutorial on setting up the environment for back end and front end.
The back end server is build with Ruby On Rails and PostgreSQL.
The front end web is build with React.js with Redux.