meetdilip Is there any method to have Flarum at domain root by default ?
You need to differentiate between the path from the outside (the public view) and the inside, the internal filesystem.
The standard installation should (internally) look like:
path_to_meetdilips_site/logs/
path_to_meetdilips_site/public/ (webroot)
path_to_meetdilips_site/public/assets/
path_to_meetdilips_site/public/index.php
path_to_meetdilips_site/public/web.config
path_to_meetdilips_site/storage/
path_to_meetdilips_site/vendor/
path_to_meetdilips_site/composer.json
path_to_meetdilips_site/composer.lock
path_to_meetdilips_site/config.php
path_to_meetdilips_site/extend.php
path_to_meetdilips_site/flarum (a file, not a directory)
path_to_meetdilips_site/LICENSE
path_to_meetdilips_site/README.md
path_to_meetdilips_site/site.php
... and from the outside:
https://your.domain/ (webroot)
https://your.domain/assets/
https://your.domain/index.php
This means, the public can only see what's inside the public folder, the folder name itself should not appear anywhere.
It's important to notice, that the public folder can have any name, it just needs to be reflected in site.php. So if your hoster insists that your webroot is named public_html, so be it, no problem. But you need access to the parent folder of your webroot, that means a place that is not accessible through your browser via your domain name.