Video není dostupné.
Omlouváme se.

Deploy Flask Application on Ubuntu VPS using Nginx

Sdílet
Vložit
  • čas přidán 19. 08. 2024
  • In this video, I will show you how you can deploy your Python Flask application on an Ubuntu VPS, using Gunicorn and Nginx. Since I don't have a spare VPS, I spun up a virtual machine running Ubuntu server and used that. But the steps would be the same if you were using an Ubuntu server VPS.
    😀SUBSCRIBE for more videos! / ahnafzamil
    ➤ My website: ahnafzamil.com
    ➤ My other YT: bit.ly/2RbkEBX
    ➤ My Discord Server: / discord
    ➤ My Twitter: / @ahnaf_zamil
    ➤ Support me on Patreon: / ahnafzamil
    Links
    =====
    Flask: flask.palletsp...
    Python: python.org
    Gunicorn: gunicorn.org/
    Nginx: www.nginx.com/
    Software Used
    ============
    Recording: OBS Studio
    Editing: KdenLive
    Thumbnail: GIMP
    Music in Video
    ============
    Water Wood & Stone by Audionautix | audionautix.com/
    Music promoted by www.chosic.com/
    Creative Commons Attribution 4.0 International (CC BY 4.0)
    creativecommon...
    I hope you enjoy this video, I am open to feedback. Please subscribe and like, it helps me out a lot!
    Anyways, have a good day ^-^

Komentáře • 96

  • @mustafahajhamoud2077
    @mustafahajhamoud2077 Před 4 měsíci +2

    thank you very much! I've been trying to do this for 3 days now, and your tutorial is the only one that worked for me.

  • @alper7313
    @alper7313 Před 19 dny

    Very underrated channel. I've searched many tutorials and ended up to this channel multiple times. I hope you keep going with making tutorials bro, great things are waiting for you out there! And you really help a lot of people with your work. Much appreciated! ♥💯

  • @vat1980
    @vat1980 Před 2 lety +8

    Really want to say thank you so much. Many tutorials end up in error but this one is spot on! Got my Flask app running on AWS ES2 in less than 15 mins. Great video.

  • @nicholashooper9538
    @nicholashooper9538 Před 2 lety +6

    Been banging my head against the wall from lots of other tutorials, this was the only one to work for me all the way through, and I have quite a large/complex Flask App. Thank you so much

    • @devguyahnaf
      @devguyahnaf  Před 2 lety +2

      Lmao Head banging ain't that uncommon, especially for developers
      Thanks a lot :)

  • @perilous105
    @perilous105 Před 3 lety +12

    I don't really comment on many videos, but this was a brilliant tutorial. I've been looking at so many tutorials, but there was always an error with them, if it wasn't nginx it was apache2. Thank you for the quick and clear explanation. Keep doing videos like these!

    • @devguyahnaf
      @devguyahnaf  Před 3 lety +3

      Thanks a lot for your kind words. I really appreciate them :)
      Also, one thing I would like you to know is that Apache is a threaded server, which means it is prone to DDOS and DOS attacks. But Nginx on the other hand is an asynchronous web server and reverse proxy, so it is not as vulnerable as Apache, and it is also very easy to set up.

    • @perilous105
      @perilous105 Před 3 lety

      @@devguyahnaf That's great to know, glad I made the right choice!

    • @kushagramishra4795
      @kushagramishra4795 Před 2 lety

      I'll plus one this , great video !!!

  • @cfuendev
    @cfuendev Před rokem +2

    The constant "..Need to sudo before this" is very relatable

  • @samiam.402
    @samiam.402 Před rokem

    Brooooooo!!! This is the only tutorial I could find to show how to keep the gunicorn or flask app alive after exiting the ssh connection!!!! Thanks a bunch.

  • @dev_ritchie
    @dev_ritchie Před 2 měsíci

    Excactly what i was searching for 🎉🎉

  • @FelipeCatao
    @FelipeCatao Před rokem

    friend without words, you helped me to climb my flask application that was 3 weeks trying without success, congratulations by the tutorial clear and direct

  • @ronmercier9841
    @ronmercier9841 Před rokem

    Thank you for this tutorial, it was super helpful. I was able to get my fullstack app running on my Linode server with no issue. Much appreciated and keep up the good work!

  • @AdhithyaRamesh-os2gy
    @AdhithyaRamesh-os2gy Před rokem +1

    This was awesomee, i have a big flask app with D.L models and every other tutorial used github which doesn't allow files bigger than 25MB. This was seriously f*ckin awesome.

  • @MadZorf
    @MadZorf Před rokem

    Man, as others have also mentioned. Your tutorial saved my project! Thank you so much!!!

  • @ryu8777
    @ryu8777 Před 2 lety +1

    Best of the best! Btw for me gunicorn3 can't be imstalled, but gunicorn works just great (ubuntu 20.04). Many many thanks DevGuyAhnaf!

  • @walkerlasbury9315
    @walkerlasbury9315 Před rokem +1

    So helpfull! Best video out there!

  • @kawsarlog
    @kawsarlog Před rokem

    My friend you just did an outstanding job, not only the tutorial you also explained a lot of basic stuff!

  • @phi6934
    @phi6934 Před rokem +1

    What an amazing tutorial, I learned a ton of useful stuff, thanks!

  • @marconeramos1194
    @marconeramos1194 Před rokem

    Thank you! This tutorial is simply the best I found! Saved my week!

  • @EnglishRain
    @EnglishRain Před rokem

    Wow 13:45 is a GREAT tip, thank you so much!

  • @olumorsotnas
    @olumorsotnas Před rokem

    Very good explanation my friend. This video saved me :)

  • @MyStockz
    @MyStockz Před rokem

    What a legend! Super clear! No bulls*it in between.

  • @guipe7712
    @guipe7712 Před 2 lety

    Thanks Friend, excellent video. I learn a lot. Works perfectly in hostinger vps. Thanks a lot

  • @leomeror
    @leomeror Před 2 lety

    This is very helpful! Well made! :)

  • @alaminbijoy1027
    @alaminbijoy1027 Před 2 lety

    Great concise tutorial bro
    Take love

  • @gusinthecloud
    @gusinthecloud Před rokem

    You made the best video!!! Thank you

  • @samjiman
    @samjiman Před 5 měsíci

    Good video, thank you.

  • @jerrywang3225
    @jerrywang3225 Před rokem

    This is really helpful. Thanks

  • @coldluck7366
    @coldluck7366 Před 3 měsíci

    legend

  • @niksushko9333
    @niksushko9333 Před rokem

    Thx bro, very useful for me!

  • @ero-sennin6623
    @ero-sennin6623 Před rokem

    thank you bro, u deserve more subscribers.

  • @user-yn2me7in5n
    @user-yn2me7in5n Před 2 lety

    Awesome tutorial, thanks!

  • @Yathavpriyan
    @Yathavpriyan Před 2 lety

    great one. worked well. thanks !

  • @timberlee9176
    @timberlee9176 Před 2 lety

    Many thanks for you bro; it's very helpful.

  • @julian3154
    @julian3154 Před rokem

    Great video, thank you!

  • @lambuth
    @lambuth Před rokem

    Thank you for this. So much.

  • @AntonioGargiulodragossido
    @AntonioGargiulodragossido Před 11 měsíci

    This is the only guide that has made me run Python on server so far.
    for some reason before running Gunicorn I need to reboot the server.
    if i want to add a second app?

  • @karthik-pillai
    @karthik-pillai Před 2 lety

    BEST VIDEO!

  • @biskweet816
    @biskweet816 Před rokem

    Excellent video. I would love to see a tutorial on how to setup TLS/SSL with this config.

  • @vinter_man
    @vinter_man Před rokem

    totally helpful, thx!!!

  • @GabrielPvPMelhor
    @GabrielPvPMelhor Před rokem

    PERFECT, Thanks!

  • @mohamed-hm8pn
    @mohamed-hm8pn Před 2 lety

    thank you so much ....amazing work best video on youtube for this tut

    • @mohamed-hm8pn
      @mohamed-hm8pn Před 2 lety

      it wotk perfect on google cloud platform too

    • @devguyahnaf
      @devguyahnaf  Před 2 lety

      @@mohamed-hm8pn Yes, it was intended for every VPS running Ubuntu

  • @dw4258
    @dw4258 Před rokem

    Thanks, got my app working! It's on port 8050 though which is strange... (Added later) the call to gunicorn was app:server and not app:app

  • @moshiurrahman1454
    @moshiurrahman1454 Před 2 lety

    Really greate video

  • @eliasoliveira292
    @eliasoliveira292 Před rokem

    Thanks man!!!

  • @qrythe
    @qrythe Před 3 lety

    U helped me so much

  • @castleold19
    @castleold19 Před rokem

    I can't save reverse proxy, it's showing file or directory doesn't exist.

  • @emotional_stuff
    @emotional_stuff Před rokem

    nice one

  • @ha2709
    @ha2709 Před rokem

    Thank you

  • @darecoding
    @darecoding Před 3 měsíci

    i done everythin and unicorn3 is also running on port 8000 but when i go to my main ip it is showing me nginx

  • @PPRASHAR25
    @PPRASHAR25 Před 2 lety

    helped me at last moment..

  • @AabhusanAryalOfficial

    Thanks a lot!

  • @codepunk77
    @codepunk77 Před 5 měsíci

    thanks a lot

  • @Notus29
    @Notus29 Před 10 měsíci

    what if your using a docker container

  • @andreaskweyo5582
    @andreaskweyo5582 Před rokem

    Wow, say no more

  • @AdrienZier
    @AdrienZier Před rokem

    Great tutorial! Just wondering what's the use of the 2 lines under proxy_pass? the header forwarding. what does that achieve? many thanks!!

    • @devguyahnaf
      @devguyahnaf  Před rokem +2

      Sorry for the late reply. All it does is provide the Flask app with some headers that contain the actual client information. This might be important for IP logging, or other analytical stuff in your application, since Flask doesn't directly get the client's info as it gets proxied by Nginx

  • @odepleted
    @odepleted Před rokem

    how do you get dark theme in filezilla?

  • @jakubkrajewski8249
    @jakubkrajewski8249 Před rokem

    how to add multiple urls?

  • @inferlight
    @inferlight Před 3 lety

    Sheeeeesh

  • @ironF5
    @ironF5 Před 2 lety

    it shows E: Package 'gunicorn3' has no installation candidate

    • @ryu8777
      @ryu8777 Před 2 lety

      same for me, I just installed gunicorn and it works

  • @nicoxvxv
    @nicoxvxv Před 2 lety

    So i followed the tutorial, but i have a little problem. After running "gunicorn --workers=3 app:app" the main ip of my server is showing "Bad Gateway" and i dont know what i did wrong.

    • @devguyahnaf
      @devguyahnaf  Před 2 lety

      The reverse proxy (Nginx in this case) is probably trying to find the gunicorn server on a specified port, but the server is not on that port. By default, the gunicorn server listens on port 8000, so your Nginx proxy would have to forward the requests to 127.0.0.1:8000. You would have the config sorta like this:
      location / {
      proxy_pass 127.0.0.1:8000;
      }
      This will load balance all the requests sent to your nginx server (through the main IP) and forward it to the gunicorn server so that people can access your flask application

    • @nicoxvxv
      @nicoxvxv Před 2 lety

      @@devguyahnaf fixed.

  • @prasadnijai2820
    @prasadnijai2820 Před rokem

    I'm using vultr to host my website. And everything till last worked fine.. but gunicorn --workers=3 app:app is not working for me. It is not fetching site even by local host

    • @devguyahnaf
      @devguyahnaf  Před rokem

      Why are you using localhost though? Use the VPS's IP
      Also, make sure the host is 0.0.0.0
      Bind gunicorn to 0.0.0.0 as well

    • @prasadnijai2820
      @prasadnijai2820 Před rokem

      @@devguyahnaf So What changes i have to do in sites-enabled/flask_app ? Do I have to replace proxy_pass IP ?

    • @devguyahnaf
      @devguyahnaf  Před rokem

      ​@@prasadnijai2820 Nope. Try adding a bind argument to gunicorn
      "--bind=0.0.0.0"

  • @96NewsHDofficial
    @96NewsHDofficial Před 8 měsíci

    broo what if i do 443 beside 80 for ssl will it work?

    • @devguyahnaf
      @devguyahnaf  Před 8 měsíci +1

      Only if you have proper SSL certification/configuration available for NGINX.

  • @syedmujahid9860
    @syedmujahid9860 Před 5 měsíci

    is steps same for deployment in aws ,hope for quick reply

    • @devguyahnaf
      @devguyahnaf  Před 5 měsíci +1

      On an AWS EC2, should be same. Just configure elastic IP and proper ports

  • @ironF5
    @ironF5 Před 2 lety

    now tell us how to dockerize this? as ECR and lightsail has containers... that runs dockerized images only

    • @devguyahnaf
      @devguyahnaf  Před 2 lety

      This tutorial was specifically for VPS services such as AWS EC2, DO Droplets, GCP VMs, etc.
      But for container runtimes such as AWS ECR, you can take a look at this video: czcams.com/video/grtjkDh5DmQ/video.html
      Just skip the react part and only watch Flask

    • @ironF5
      @ironF5 Před 2 lety

      @@devguyahnaf can u show how to deploy a dockerized flask app on AWS sagemaker and lightsail container that can handle 5-10 requests at once meaning use of load balancer of some sort ( i have actually completed the lightsail deployment step) ... can u also tell the difference between 3 workers of gunicorn and loadbalancer use in deployed app..

  • @KingMarques
    @KingMarques Před 2 lety

    Hey DevGuy, how are you?
    '
    Dev, i'm trying to deploy a flask api on a Ubuntu Serve, but this api must bem deployed not in a Cloud, but inside of my company Server. I can do this task with this tutorial?
    We are using ubuntu 22.04 Server, Anaconda Python 3.9.
    Thank you very much!

    • @KingMarques
      @KingMarques Před 2 lety

      Hey Dev, i'm here again, but now it is another question about "gunicorn3 --workers=3 file:app". In my situation, a have a function Main and my app flask is inside this Function Main, and when i try to call the App with gunicorn, the server return for me saying I'm trying to pass two parameters when Main requires 0. How can I refer this app flask inside the Main who is inside the file?

  • @divyar5238
    @divyar5238 Před 2 lety

    Thanks, I get a "502 Bad Gateway
    nginx/1.18.0 (Ubuntu)" error. Do you know why ?

    • @devguyahnaf
      @devguyahnaf  Před 2 lety

      Nginx is trying to proxy the request to the flask server. Are you sure that the flask app is running?

    • @divyar5238
      @divyar5238 Před 2 lety

      Yes, flask app runs fine in local host

    • @devguyahnaf
      @devguyahnaf  Před 2 lety

      @@divyar5238 You need to keep it running in the background, so that Nginx can reverse proxy it.

    • @billycherry7028
      @billycherry7028 Před 2 lety

      @@devguyahnaf Hey, I'm having the same problem. I get that same error even when the app is running

  • @DT-hb3zu
    @DT-hb3zu Před 2 lety

    Are we just gonna ignore that his filezilla is dark mode?

    • @devguyahnaf
      @devguyahnaf  Před 2 lety

      Yes.
      :)

    • @DT-hb3zu
      @DT-hb3zu Před 2 lety

      @@devguyahnaf I love the tutorial my guy, got set up and running from it.
      Now, let's get back to dark mode FZ
      😂🤣
      (Possible new tutorial?)
      **FZ has dark mode?**

    • @devguyahnaf
      @devguyahnaf  Před 2 lety

      @@DT-hb3zu You see, I had dark mode enabled on my desktop environment (Cinnamon) back when I used Linux Mint. So Filezilla for Linux basically uses the QT/GTK theme that's set by the DE, and that's how I got dark mode

    • @DT-hb3zu
      @DT-hb3zu Před 2 lety

      @@devguyahnaf gaaahh. I figured. I can get it on my Debian, but not my windows. And all "dark mode" on desktop look like poo. Thank you! You have very nice content. Straight to the point, and (maybe not intentional) show some common mistakes. Brilliant

  • @karasiq69
    @karasiq69 Před rokem

    That helps a lot, thank you