Back in a days, when I've been wanted to develop and host some web application I used one PaaS called Openshift. They were offering free tier platform with 3 limited instances but it was OK for my purposes. But one day they decided to shut down this platform and move users to new one – not so free, way too complex (for simple applications) and enterprisey. Then I didn't tried Heroku for somewhat reason but instead moved to VPS so this problem became slightly irrelevant. But eventually I've found that there is a PaaS with free tier and https (openshift hasn't had this) and decided to use it for some projects.
--- applications: - name: myappname random-route: true instances: 1 memory: 64M
What does this all means?
web: python app.py
This describes how will your app be started.Probably related docs Related docs
This specifies version of runtime. Utility will warn if you are using obsolete or absent runtime.
Well, it's just generic pip requirements. You can produce it with
pip freeze > requirements.txt or write by hand.
You should use port passed in PORT environment variable (generally, it's 8080). There will be a test connection to this port during deploy, if connection will fail or time out deployment fails.
ibmcloud cf push in location where all this files and code located