You need a hosting service to publish your website, but if you are already on github then Github Pages can be a convenient and free option.
You may also purchase a domain name, if you want your page to be available from a less generic url.
First you should find great web hosting. I use infinity web hosting because I can have unlimited MySQL database. After you decide, download any ftp client. I am using total comander. Than choose domain name and order hosting. Now you are ready and you can upload your files and your wob is published (you can find more info in mail from hosting).
if you are looking for free....you have an option which I personally appreciate it is a platform which provides this service and As this is your elementary project I guess so far, so you can use it and it will be surely a nice experience for you.I'm linking the address of that right here.
I think you should surely check it out. Obviously, since it is for free so no ads will be shown on the website you'll gonna host..but you can feel the effort you have made for it and then you can modify the services you want or you want to explore any other thing and effect so you can improve it right there.
To publish a website you need a Server. There are different way's to get a Server for example you can make one yourself by using an Raspberry Pi. The question is, do want a domain(domains cost mostly money)?
you can ask for a fixed IP address from your ISP and run your server as you want, you can enlist your site with the search engines you want with the description that can be found on a search. Advantage is you have as much storage space as you want for the price of your fixed IP; disadvantage, you have to have a server running non stop. Another is to pay you ISP for web space, then you register the same way
there are two types of hosting available. Paid and free hosting provided by the hosting company. Each type has both advantages and disadvantages including how much control u have over your hosted website. As a starting developer I would encourage free hosting. You host your website on the following sites.
and many others
As you have to pay rent for your apartment on your street, you'd have to pay for the location your website will occupy on the server street. Hosting companies are the landlords and hotel owners. A good one I know of is name.com
Hope this helps you!
You can use Heroku (https://www.heroku.com/) to deploy your apps at no cost it's a start to see if your application can run on deployment, but depending on how you have your application built if it requires a database then you May need to change some code . You can connect heroku to an existing git repo to test it out.