I’ll lead with the tl;dr about free python hosting. We found a company who offers free python hosting plans with no hassle. If you need free web hosting for Python apps (free as in beer) and don’t need:
- A Custom Domain / Marketing Tools / Blog
- Technical Support
- Much bandwidth or CPU time
If you are using your site to build a business: check out Opalstack. They’re a paid Python-friendly host; for as little as $10 per month you get better technical support and many upgrades (email addresses, free SSL certificates, WordPress Blog Installers, Postgres databases, Ruby / Node.js / PHP support). These can help you build a more professional website and help scale it up into an effective business.
Free Python Hosting – Stuff I Wish I Knew Sooner
Somewhere out there, I’m sure there is a hosting company that proactively explains their limitations before you give them your credit card. There are a lot of people out there who can “host” Python applications – if you handle the dirty work of setting up an un-configured VPS. Probably not very hard if you know how – but I don’t and, quite honestly, don’t care to learn. When it comes to Python hosting, I’m looking for an option that “just works”.
By the way, if you just want to test prototyping your application, most Python web frameworks allow you to run a dev server on your laptop. You don’t need a real host until you’re ready to deploy to the outside world. This should be enough to get you through developing a good working prototype of your application. But the process of finding a good (ideally free) python host to publish your first project to the web has few quirks that this article will help you overcome.
If you have a couple of basic sites (PHP, WordPress, etc), you’ll probably have an existing relationship with a LAMP hosting outfit. These folks are literally a dime a dozen. However, what you’re going to quickly discover is Python server hosting is not a good fit for these companies. You need to understand this gap so you can spot it early and move onto the next company.
You can wall off PHP users on the same server from each other by limiting their access via a highly structured management console. Python applications need deeper access to the underlying system that a PHP script. This requires a large investment in hosting and server management. This became a roadblock: while Python is a much more powerful language than PHP, PHP / LAMP offered a cheaper and simpler deployment path for a newbie. That quickly punts you up into buying a low-end VPS, which can be $50/month with good customer service.
I also prefer to deal with a hosting firm that is explicitly committed to the Python community. This means designing their environment to support us and staffing their help desk teams with people who have exposure to the language. It makes resolving problems with a Python application much easier. Everyone profiled in this article is a solid company, active Python community participant, and has build Python-friendly application deployment processes.
What You Get and What You Don’t (The Inevitable Upsell To Paid)
If you’re using this to host a side project or a class site, skip to the next topic.
If you are using this for business or career purposes, you should probably give some though to a couple of factors that will eventually cause you to upgrade to a paid plan. Since the upgrade deal is usually offered in your hour of need (after you’ve already moved onto their platform and don’t have the time / energy to move elsewhere), the pricing is rarely very competitive. So it is worth assessing if you want to buy a paid plan from the start (and get a good rate on that).
Having lived in both worlds, here are the key points of difference between free and paid plans:
- Your own domain name – costs $10 – 20 per year, looks substantially more professional and “established” than mysite.freehost.com, allows you to build an audience and Google search traffic and take this audience with you if you leave.
- Technical Support – I make 2 – 3 calls a year and it gets answered quickly. Free hosts rarely respond unless you’re affecting others (in which case, they just boot you)
- Free SSL – It’s 2019 people, use HTTPS. One of my favorite features at Webfaction is the free automated SSL certificate provisioning from Lets Encrypt. This saves me about twenty dollars per year per website relative to most commercial hosts.
- Easier Setup: Paid hosting plans generally include things like package installers, easy database integration, ability to drop a WordPress blog into part of your website, etc. This can save you a bunch of time and frustration on non-core activities.
- Unlimited Email Addresses – (look over shoulder nervously) Not saying we’ve ever done this (to help a charity raise money, of course) but you have the ability to create unlimited email addresses if you own your own domain….
- Ads & Privacy: Depends on the program (Python Anywhere is great), but you’ve got a few free hosting folks out there with unsavory practices in this department. Plus, of course, the free host usually looks at you as a massive email list for up-sells…
- Limited Bandwidth – Not really a problem unless something you create goes viral on Hacker News or Reddit, at which point your website will quickly go dark…
I can’t blame the free hosts for this. Web hosting, bandwidth, and customer support costs money and they have to make it up somewhere. The free hosting business model basically revolves around gaslighting the free users with petty annoyances to convince people to upgrade to a paid plan (at above average pricing, since they are already on your platform). Not an issue for a fun project, but make sure you don’t actually need anything from them…
If you’re building a serious project with commercial ambitions, developer time and reliability is more precious than cash. If I have to spend more than 10 minutes a month maintaining “the box” or (worse) dealing with an outage, the free python web hosting plan isn’t worth it.
Free Python Hosting Options
[Updated January 2019] Sadly, this list has shrunk since our last revision. We’re going to walk through three options here, one of which remains a very good choice, the other two having attached significant strings to their offerings. Our fourth plan isn’t free anymore…
If anyone good connections in Washington DC and wants to stimulate the economy, please propose they fund a GARP bailout (Government Assistance for Running Python); free Python servers for everyone! Ok, back to the real options…
First up, PythonAnywhere. They have a beginner account plan that is free (as in beer) and gives you the basics required to get your first web application online and visible. The plan includes use of a subdomain (<user-name>.pythonanywhere.com) for hosting your project (another $20 saved). The configuration and setup process is managed through a nice simple console; the free plan includes easy setup for several major web frameworks (Django, web2py, flask, bottle) and supports both Python 2 (2.7) and 3 (3.3, 3.4). You’re allowed to host one low-bandwidth web application for free, additional applications require an upgrade to a paid plan. The free plan comes with access to a MySQL database; PostGres is available but requires upgrading to a paid plan.
After looking at the providers, PythonAnywhere (click here for details & signup) emerged as my recommendation as the best free python hosting option for hobby projects and first time users. The console makes it easy to get started, there is a high level of support and guidance, and you get “all the stuff” required to get going on a real project without any really annoying strings. Paid plans are reasonable – the first one starts at $5/month and expands the capabilities of your first application; the second costs $12/month (better value) and lets you to host multiple projects using that account. But best of all, free python hosting does actually indeed mean free: you can run a single app on the free plan as a fully functional (but small), continuously operating Python website for an indefinite time. Unlike the next couple of options…
[Update – Educators: PythonAnywhere has a special program for educators which simplifies managing environments for a large class of students. Details provided here.]
One potential alternative is Heroku’s free tier, which announced a pricing change. They simplified things: you can get a free dyno (virtual instance that runs a web application) with the capability of handling some worker processing as well. This is enough to demo a small project and is good preparation for people who intend to use Heroko professionally. One very nice plus: Heroku is closely integrated with Git – allowing you to deploy an application directly from your Git repository. You can scale the application by adding additional processors, which will cost you a modest amount of money.
However, they’ve gotten a bit aggressive in their strategy for upgrading people to their $7 “hobbyist” tier. Their free plans are only able to operate online for 18 out of every 24 hours. In practical terms, since the web has a global audience, your project will be offline for at least part of the day. This also very impractical if you’re hoping to get your project listed in Google’s search results; they often index content on sub-domains, but are unlikely to rank a project that’s offline for 6 hours per day very highly in their results. So while Heroku is an decent option if you want to do a quick demo or show a potential employer you can use Heroku, consider using other Python hosting plans for long term personal projects.
OpenShift is another possible option; they are maintained by the original red hat board and offer a cloud service platform. They provide the ability to run three small applications on their platform within the scope of the free plan. However, their pricing scheme seems to have learned from Heroku’s example and includes an “application idling” provision within the free plan which will pause your site if there’s a significant gap in traffic (suggestion solution being to upgrade to a paid plan). It’s potentially worth checking out if you want to use their platform for larger projects.
Google App Engine was on our list (and ranked highly) but their free python hosting offering seems to have disappeared into a “give us your credit card and we’ll give you $300 of free services for 60 days” deal. Unfortunately too rich for my hobbyist blood. A pity, since their prior deal let you to host up to 10 small websites on their platform and was great place to get started. Google has historically been Python-friendly and they use it for many projects internally.
Who We Picked (Updated for 2021)
If you’re looking to build a business around your side project, you should consider upgrading to a paid plan with a developer friendly hosting company. The cost ($10 – $25 per month) is well worth the extra support. This includes everything from Free SSL certificates (via Lets Encrypt), support for a broader set of software packages and languages (WordPress, PHP), technical support, and a more robust server infrastructure. This simplifies your life when you’re trying to turn a web application into a self-supporting business.
Since my wife and I knew right out of the gate we were going to use our web hosting for commercial purposes, we wound up getting an entry level developer plan from WebFaction. (unfortunately no longer in operation; GoDaddy bought them and shut them down last year). Between two consulting businesses and a digital publishing side project, we knew we would be eventually forced to move to a paid program. For us, the best python hosting service would be one which saved us time and frustration.
The good news is a bunch of WebFaction employees left after the GoDaddy acquisition and recreated the WebFaction experience at a new hosting company: OpalStack.. So we’re going to talk about them instead.
OpalStack offers a shared hosting environment for Python. This runs behind an nginx server (nearly bulletproof) with the ability to serve static content directly from nginx (very fast). In addition to Python, they provide installers for many PHP packages (including WordPress). You’ve got shell access to the server and can set up your own scripts and tools. Tech support is very Python friendly; many of their support team have significant Python experience.
Why we decided to go with OpalStack (and favorite features):
- Ability to use own own domain name (lets us build and retain an audience)
- Python literate customer support (saves a ton of time)
- Free SSL certificates from Let’s Encrypt (saves time, money, helps Google Rankings)
- Generous system for shared resources (many basics don’t count against your quota)
- Easy Integration with non-Python blogging and content management tools (time saver); lots of fast installers that co-exist with custom python web applications
- Ability to run advertising and generate revenue without interference
- Easy upgrades to dedicated virtual and physical servers (we’ve got two beefy VPS’s today)
So while it costs about $10 per month more, it is worth it from a time and money perspective. If you are using it for business, this is likely a better fit with your goals.
We use them to manage the 30+ websites (with lots of traffic) we’ve built over the past eight years and are very happy with their service. They offer a free trial for new developers – sign up for a free trial using this link. (affiliate link)
Updated: February 2021