What do I need to configure to host django applications on linode? - django

I am about to choose hosting provider for my Django project. I took a look on a linode
and it looks very promissing. It looks like very elastic solution but in my case this might be a disadvnatage since I'm not so experienced in servers configuration (alternative provider for me has great tools to quickly do the job, but linode has more competitive power/price ratio).
Do you have some experience in linode configuration for Django projects?
EDIT:
To be more precise: I am not so affraid about django packages installation but more about application server/database server/security/all that stuff configuration.

Whether you stick to the Django packages that your distribution provides (Ubuntu seems to be best) or use easy_install, Django is pretty easy to get going. The host that you're looking at, Linode, has Django setup guides for a variety of distributions. I recommend mod_wsgi with Ubuntu 10.04 from that list.
I've personally used Django on my Linode, and it works fine. Well, in fact. For your intents and purposes you can think of a Linode as a dedicated server, and it will behave entirely the same for Django.

Related

Django hosting on a domain

So far, the only websites I've put in a hosted domain were with PHP. But since I work with Django I wonder if there would be any "barrier" or trouble when it comes about hosting a project, since Linux and IOS have Python installed by default but Windows not. Also it would be necessary to install tools such as Django itself, pillow, mysqlclient, etc...
I just want to know any possible barrier before going ahead. Thanks!
Everything depends on the server, if you have the necessary permissions to install and configure everything, you will not have any problem. How can be gunicorn, supervisor, nginx, etc.
For example services that you will not have any problem can be Amazon EC2, digitalocean, or any similar provider.
When I started with Django about 4 years ago I didn't know anything about servers, nginx and very little about databases but I found Djangoeurope on which I put my first websites.
They have managed databases (PostgreSQL and MySQL), one-click Django installs, reasonable prices and a very helpful staff.
I've since transitioned to using Docker on GCP, but for a beginner I can't recommend them enough: you can just concentrate on your Django code and you don't have to learn everything else at the same time.

Which is the best development/production environment for Django projects?

A bit of background
I work for a little company as Django developer. The previous developer left the company and I am the only developer (that is the reason they were looking for a Django developer). The company has a simple web application that needs to be mantained and scaled. It seems that the company is getting sales and incomes are increasing. There is a possibility to hire another developer in the short or mid-term. Right now I am analizing possible improvements. This is my first professional job as Django developer, but I achieved to deploy some little personal projects in the past. As you can imagine I am not an expert at all.
The issue
We use a Ubuntu VPS for development, using Django's integrated web server. And another Ubuntu VPS for production, using Nginx+Gunicorn. We use git for version control. The only user we use (for everything) in both VPS is root. I don't work locally in my computer, but connected via ssh to the servers. These are my insights about the structure:
Use of root is unsafe. No doubt about it and we should change this.
What if another developer is hired? Could we work together in the development server?
The question
As the title says, I want to know which would be the perfect working structure for a developers team. After googling a few hours my approach would be something like this:
Production server.
Testing server (replicating as much as possible the production server).
Development environment. Every developer should work and test their code locally in their computers before testing it in the Testing server.
Use of Git for version control.
Use of non-root users for both testing and production servers.
This is just my point of view and I haven't even tried it. I would appreciate you to share your knowledge and experiences.
Thanks in advance!

Django on Digital Ocean

So I am beginner Django Developer and have been learning by developing local apps. I am looking to finally deploy something so people can use it. I have been looking around at various hosting providers and I am wondering what it's like using Digital Ocean for Django hosting. Specifically what exactly is involved/required with managing a Django app on Digital Ocean. Hostgator, which is another host I've been looking at, does not offer any "one-click" install for stuff like Nginx or anything else which I noticed Digital Ocean does have, so I would have to install that that as well as anything else I'd need myself. I guess my question is after that one click install what is involved with managing a Django app on Digital Ocean? Do I have to learn how to do a ton of other stuff regarding managing a server and dealing with Nginx (I would have to do that on HostGator) or does that One-click install for Django handle all that? Also other than Django, are there any skills that I have to learn in order to be able to do this?
Digital Ocean is more than a hosting service, it's a development platform. Digital Ocean works around the element of "droplets", where each droplet is a virtual machine typically running a UNIX system. Basically if you are looking for a service where you can both host a website and do some development, Digital Ocean may be the way to go, but it is not free. But yes, you would have to configure everything yourself with regards to setting-up Django, proxies, and other network-related tasks.
If you are looking for an easier, alternative solution, you might want to take a look at Django on Heroku.
As far as I know, there are no one-click solutions for Django. There is an official tutorial, though, which is where I would start, along with a quick read in the Django docs.
My experience hosting small Django apps on DO has generally been good. DO is very stable nowadays with no noticeable downtime (unless you must guarantee HA to your users, which I don't).
I have been using Digital Ocean/DO for my Django deployment last 6 months and have a great experience.
I use Django On Click Django 1.8.7 in Ubuntu 16.04 Image for all my website development.
Do provides extensive tutorials/documentations and very developer/tinker friendly. I was able to config my Do box Nginx to host 4 different websites on one single box and even manage to run a Ethereum node on it.
I wrote this tutorial on How to Deploy Multiple Websites on 1 single DO Droplets - Tutorial Link

Choice of server for local Django webapp?

I've put together a Django app that was intended to run on Pythonanywhere. However, I soon found out that Pythonanywhere's free plan blocks the remote sites which I intend to interact with, so I decided running the app on a local machine would be good enough for my purposes.
Now, I know that Django's development server isn't meant to be run in a production setting. So, what server daemon do I run on the aging Windows workstation the app's probably gonna be deployed to? Apache, lighttpd, Cherokee? Something else?
My first priority here is conserving system resources as much as I can; I'm probably also going to use Python's built-in sqlite3 instead of MySQL.
Personally I deploy Django with fcgi and Nginx. Nginx offers various strategies to conserve system resources; its use as reverse proxy is well documented and widely used.
The question/answer pair here might help you clear some initial questions about the various components when deploying Django.
Sorry to hear you can't use PythonAnywhere's free version :-(
I'll second the usage of nginx; it's what we use as the front-end for PA. However, we use uwsgi for the backend. It works really well for us and is very easy to configure.

Minimal production Django server on Windows

I need to deploy a small Django app to be used in a small intranet. Concurrency and speed are non issues because there will be, at most, 10 users (and I bet that there will be almost no concurrency).
There is already a MySQL server. The problem is with the Django app. What is the most lightwieght server I can install under a WinXP environment ? The Apache + mod_python approach seems a little overkill. The cherrypy server seems more suitable.
Any suggestions ? Someone with similar experiences ?
You could use IIS with PyISAPIe.
I outline my Django on Windows deployment here and also more info on PyISAPIe with Python 2.6 here.
As I'm not a big fan of IIS, I'd still use Apache + mod_wsgi. mod_wsgi is officially recommended way of deploying django apps, according to http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/
We're currently deploying a small intranet Django app to complement a closed source app on IIS to an audience of about 300-400, but low use.
We opted for cherrypy by means of django-wsgiserver, but go for the bitbucket version if you don't use the admin, there's a bug in the 0.6.10 version that's on pypi.
We have IIS as a reverse proxy in front of it, and use media from the existing app. Don't know yet if it's stable, but I like the fact that it's conceptually the same as the Apache+gunicorn setup that I use on the *nix box.
Since this question dates from 2 years, I'm very curious about your experience.
The Windows port of lighttpd also bears mention.