Running Flask App on Digital Ocean

October 21, 2014 2.3k views

I mapped my DO server ip address to a DNS with a domain i registered on namecheap. This is what i go on DO as my Zone File:

$TTL    1800
@       IN  SOA NS1.DIGITALOCEAN.COM.   hostmaster.noobhacker.org. (
            1413865446 ; last update: 2014-10-21 04:24:06 UTC
            3600 ; refresh
            900 ; retry
            1209600 ; expire
            1800 ; ttl
            )
             IN      NS      NS1.DIGITALOCEAN.COM.
                     NS      NS2.DIGITALOCEAN.COM.
                     NS      NS3.DIGITALOCEAN.COM.
@   IN A    107.170.56.32

Then on the DO server, i ran the following commands:

python main.py

I got the following:

Then on the browser, I ran noobhacker.org:5000 but I get Webpage not available. It should have shown the simple "Hello World!!!" output.

My source code is here: https://github.com/ueg1990/moocaggregatorrestful_api

I would really appreciate some help here. :)

2 Answers

The IP 127.0.0.1 is the localhost. On your server, if you run:

curl http://127.0.0.1:5000/

You should see the raw html outputted to the terminal. In order to make your app visible externally, you need to make it bind to the public interface not just the local one. This can be done by modifying the run method in your main.py

app.run(host='0.0.0.0')

Check out the section title "Externally Visible Server" in the Flask quickstart docs.

Generally that is useful for developing and testing remotely, but when it comes time to deploy your site for production you'll want to setup a webserver like Apache or Nginx in front of the app. For more details on how to accomplish that, check out:

by Kundan Singh
Here's our guide on deploying a flask app on an Ubuntu VPS.

Hey, thanks alot for the reply. I will definitely check it out today. I really hope this works :)

Have another answer? Share your knowledge.