Django Investigations

I have a Django site running on Webfaction, and now I'm trying to move away from Webfaction due to the GoDaddy buyout. On webfaction, the features I am familiar with and use are:
1. ssh access
2. stfp access
3. https Let's Encrypt support
4. crontab (don't use it at present, but used to)
5. Access to server logs (to diagnose errors)
6. Serving django with apache httpd and mod_wsgi
7. Serving static content with apache httpd (static application in webfaction control panel, served by shared apache httpd instance, not sure how webfaction is serving that)
8. Redirects from old domains (static application in webfaction control panel, served by shared apache httpd instance, not sure how webfaction is serving that)
9. sqlite3 for the database cause my website is small and will remain limited in scope (I know, I know, I should use postgresql or mysql, but sqlite3 gets the job done for me)
10. Using memcached for faster page loads (since the site doesn't change often)

As I search around the internet for recommended hosts, I'm mostly coming across sites that appear to be reviews but are full of affiliate links. So they're a bit suspicious as to if they ever bothered to use the hosting providers they're recommending or not. I also am searching for a hosting provider that allows me to test a site before I switch the DNS to point at the new hosts. Webfaction nicely had the username.webfactional.com address that let you see a site without your domain name.

I'll make separate posts with some findings. All my findings are from reading only, not actually signing up with anyone yet.

Comments

  • Bluehost is recommended by some sites, but they are light on details, sounds like they are selling to non-technical users. No evidence of django support, it's not in their knowledge base and the only thing I could find is a checkbox saying Python was supported. So bluehost is out.

    In Motion Hosting looks good at first, but they charge a fee just to install Django! That's with shared hosting where you don't have root, but it's still kind of ridiculous, as sites like webfaction enable installing django without root. You can install it on your own with VPS hosting but they are kind of expensive. They do support ssh, but it's not clear how they'd serve django once installed. In Motion Hosting is out.

    SiteGround has ssh, sftp, and free https with Let's Encrypt. They are reasonably priced presuming the "Special Price" lasts indefinitely. Based on this web page: https://www.siteground.com/shared-hosting-features.htm they appear to put your site on servers around the world, and they give you a Cloudfare CDN account. Depending on tier you can get nginx caching of content, or at the top tier memcached caching. All that but I only found one page mentioning Python, and it was Python 2 not 3, and I can't find any mention of Django. SiteGround needs further investigation.

    A2 Hosting has both shared hosting and VPS hosting at reasonable prices (once again presuming the special rate lasts). They let you pick one of four server locations. They offer automatic Let's Encrypt certificates with shared hosting, and they have ssh and sftp access. They use apache httpd to serve content. They have a page that specifically mentions they host django applications, but their much touted turbo features don't support django applications, and their knowledge base on django is rather sparse. The supported versions of Python are unclear. A2 Hosting looks like a possible candidate for a django site.

  • Dreamhost has been around a long time. They offer reasonable prices for shared and VPS hosting. They have a custom control panel, though I couldn't find a demo or screenshots. Dreamhost serves Python content with Passenger, which is behind the apache httpd service (i.e. replaces mod_wsgi). Their knowledge base has some articles on django. They support ssh and crontab. They seem reasonable.

    Cloud solutions:

    Heroku is a major cloud player that supports hosting websites. Since they're cloud based, they don't really support the concept of shared vs VPS hosting. They simply provide you resources (so...more like VPS). They have some knowledge base articles about django. ssh access is a given, considering how much the command line terminal shows up in their help pages. They serve Python/Django using gunicorn and to serve static files they recommend whitenoise. It appears the code behind your site needs to be stored in a git repository so the code can be checked out, built, and deployed as an application. They support various caching options, and Let's Encrypt can be enabled with a simple command line command. Heroku looks like a semi-reasonable choice if you don't mind getting deep into the technical side of things and are comfortable with advanced configurations on the command line. If you're not very technical, I'd avoid Heroku. Another note, Heroku is owned by salesforce, which makes them pretty immune to GoDaddy takeovers.

    Digital Ocean is another major cloud player. They have a one click django installer. It looks like by default they serve with gunicorn and nginx, but another article implied you could use mod_wsgi, uWSGI, or gunicorn. They support memcached, I'm not sure yet what other caching options they support. For Let's Encrypt certificates you have to install CertBot. Like Heroku it looks like you should be pretty comfortable with the command line, though they do have a number of one click installers. They have a lot of help pages and community pages for django. At the moment they appear to be the most configurable while still being reasonable to comprehend due to their number of help articles.

    I still need to look at Python Anywhere. Out of these three, it appears that they are distinct in how much you want to setup through a control panel UI vs use the command line, with Dreamhost having more UI support, Digital Ocean having some UI support, and Heroku being primarily command line.

  • One note about DreamHost crontab: the smallest interval you can schedule is 10 minutes. If you need a process to run more often than that (Moodle needs cron to run every minute, for example) you're out of luck.
  • Thanks for the heads up. Based on this site: https://hostadvice.com/hosting-services/django/ I'm leaning towards trying A2 Hosting. At this point though I'm not sure if I should get managed hosting, VPS hosting, or cloud hosting. I'm a developer and could get any of those to work, but it's just a hobby website and I'd rather spend time on the content than the backend. Get Lark also gets good reviews, though it's unclear what all they support.

  • @ndjensen

    I'd rather spend time on the content than the backend

    That's where I'm at right now. I love playing and experimenting and learning new things, but for the foreseeable future, I just need things to work so i can push some content.

  • This is getting hard. I'm spending more time researching than migrating, but I'm operating on the assumption that Webfaction won't completely fall apart for a while since I'm paid through October.

    Almost all hosting providers I've come across require a VPS account to run Python applications like Django. I want managed VPS because I don't want to deal with OS updates and security patches and stuff like that. Most sites charge a lot for VPS, and the ones that don't are usually unmanaged. The only cheap managed VPS I've seen so far is Hostwinds. Dreamhost is also fairly cheap for a managed VPS.

    I came across MochaHost which does explicitly state they support Django on shared plans. They are super cheap, which makes you wonder about quality.

    I looked into Python Anywhere and it's heavily geared towards Django, but at the same time it sounds like it is almost all control panel. You can't run memcached but you do have to set up Let's Encrypt on the command line. They apparently offer a browser-based shell and Python editor. They have lots of forum help but not much details on what exactly they're offering. One nice thing is they offer you a test address at username.pythonanywhere.com just like webfaction did.

    At present Dreamhost oddly appears to be the closest thing to Webfaction for my Django needs. They say they support Python and Django with httpd and Passenger (instead of mod_wsgi). They give you ssh access and sftp access. All on a shared plan. I don't have enough traffic to warrant a VPS plan really, unless the plan was cheap. Unfortunately, you can't run memcached and the cloudfare capability is only available if you purchase domains through them (which I do not, I like to keep my hosting separate from my domains).

    Since github now offers free private repositories, I'm looking for git support too.

  • Check the new post I made. I haven't seen anything like this anywhere at this price:
    https://forum.kjodle.net/discussion/14/closest-thing-to-webfaction

  • Apparently, NearlyFreeSpeech.net will support Django. See this blog post.

  • @kjodle said:
    Apparently, NearlyFreeSpeech.net will support Django. See this blog post.

    Thanks for the info!

  • I have used NFS for a few websites. I haven't gotten into using them a lot, because their backend is quirky (quirky good, not quirky weird) and I just haven't had the time to fully explore it. But you only pay for the resources you use, so if you're just looking to develop some apps, their pricing model is quite accommodating.

  • I just contacted A2 Hosting. They said I have to use unmanaged hosting. They said they don't support Django.

    I don't have much knowledge on backend. Do we know any hosting company with 1. managed dedicated server and 2. support Django and PostgreSQL?

  • https://www.interserver.net/dedicated/ They said it's managed, support Django and has PostgreSQL.

  • edited March 2019

    I'm in a similar boat. I have a few sites with Webfaction and most are going to be fairly easy to re-home (or are run for other organisations and what happens will be up to them). However, I have a personal project that is a Django site and I want to move as I don't want to go to GoDaddy.

    It's in a Python 3.6 venv with WF and I want to keep that arrangement. I need ssh, cron, MySQL, Apache, mod_wsgi etc but I also want to host within the EEA for data protection reasons.

    I've been talking to Rochen and although it's by no means obvious from their site it seems they can offer this with their premium web hosting. They recommend "Burst" which is an add-on that provides a dedicated 1vCPU 2GB RAM but costs an extra £9.95 a month. I'm not convinced I'll need that given the traffic the site sees to be honest. Anyone tried hosting a Django site with Rochen? https://www.rochen.com

    I've also been a Dreamhost customer for many years but, although I had my Django site running there, moved it before launch to WF because the performance I got on DH using Passenger was really poor (admittedly this was 6-7 years ago). My sites were also affected by a failure they had in Nov 2013 when they lost a load of hosts and the failover process took days and days (they were recovering from backups which meant all the hosts had high load so even if your site had been recovered it was unusable because of the server load). It took so long that I was able to open a WF account and migrate all of my sites (using my own backups) and still have the sites back up several days before Dreamhost was fully recovered. So, although I'm still a DH customer I tend to just use their services as a "playground".

    I've also been looking at: https://djangoeurope.com/

    They seem to offer the things I need and are in the EEA. Anyone tried them? They look really good and this is encouraging:
    https://www.hostingadvice.com/blog/djangoeurope-offers-functionality-to-django-developers-worldwide/

    @ndjensen They appear to support memcached: https://panel.djangoeurope.com/faq/memcache

    .... but, although they've been around for 10 years, I'm wary of companies that have fewer twitter followers than I do! ;-) However, WF was always great because they were so helpful and it felt as though you, as a customer, were personally important to them and maybe Django Europe are similar, anyone know anything about them?

  • edited March 2019

    Sorry I just edited my post to add a comment about memcached but that might be lost in the first post:

    @ndjensen They appear to support memcached: https://panel.djangoeurope.com/faq/memcache

    They also offer SQLite and Let's Encrypt: https://djangoeurope.com/features

  • @kjodle said:
    One note about DreamHost crontab: the smallest interval you can schedule is 10 minutes. If you need a process to run more often than that (Moodle needs cron to run every minute, for example) you're out of luck.

    I think the Dreamhost documentation is confusing in this regard. I think it's a 10 minute interval IF you setup/edit the cronjob via their panel. I just ssh in and edit the crontab directly and if you do that it's just like any normal crontab and the granularity is to the minute.

  • @kieren said:
    I think the Dreamhost documentation is confusing in this regard. I think it's a 10 minute interval IF you setup/edit the cronjob via their panel. I just ssh in and edit the crontab directly and if you do that it's just like any normal crontab and the granularity is to the minute.

    kieran, you're absolutely right on both accounts. Their documentation is janky (is that still a word?), but still light years ahead of GoDaddy. Editing crontab via the command line will give you a level of control you won't get via the panel.

Sign In or Register to comment.