Thursday, September 26, 2013

Re: Recommended dev environment for a Django project deployed to Linode

I have the same stack, GeoDjango + PostGIS (and all its dependencies like GDAL, Proj, GEOS, etc). My notebook runs Debian (also I have a Mac Book Pro, but I prefer to work on Linux) and I use Digital Ocean to host my projects, also running Debian boxes. Since Debian keeps an older version of PostGIS, I have created my own .deb package of PostGIS 2.1.

IMHO VirtualEnv and VirtualEnvWrapper is the best way to keep your environment updated with the same versions. I also keep a requirements.txt file into the project (I use Git and Bitbucket) with the output of pip freeze command. 

best regards,


On 25 September 2013 15:01, Jorge Arevalo <jorge.arevalo@geomati.co> wrote:
Hello,

First of all, many thanks for your response. Sorry for the delay answering this. I was in a business trip. 

So, you basically have 2 environments: your own machine, and the Linode box. You make the development and testing in your machine, and Linode is for production purposes. And you connect both environments via dvcs push/pull. Right?

I like it because it's simple and doesn't seem to be specially prone to errors. I'd just like to add a third scenario here, to end up with:

- Development environment: my own machine (Mac OS X) with all the software stack installed.
- Testing environment: my new addition. I would like to put this environment outside of my machine
- Production environment: the Linode box.

I can do the communication via push/pull, if there's no other way to "deploy" software to production with Python/Django (it's simple, I like it). And maybe I can have 2 urls (testing and production) in the Linode box. Testing just accessible to developers and testers, and production open to normal users. Does it make sense?

Thanks again

On Tuesday, September 17, 2013 3:50:55 PM UTC+2, Vernon D. Cole wrote:

I installed a client for my favourite distributed version control system on my Linode instance.  I have a private repository on a public IP.  (github, bitbucket, or launchpad will work, depending on your dvcs of choice -- I have used all three, and other times I have used a private dvcs host, including my Linode server itself.) I "cloned" a "checkout" of my django system to the Linode. When I am happy from testing a new version of my application:  I push it to the repository,  log in to my Linode using ssh, and do a pull.  Easy and error free.  (My django environment is almost exactly like yours with PostGIS, etc.)
--

On Monday, September 16, 2013 6:33:49 PM UTC+1, Jorge Arevalo wrote:
Hello,

I'm going to start a project based on (Geo)Django + PostgreSQL/PostGIS + OpenLayers/LeafLet + Bootstrap/Foundation. The project will be deployed to a Linode box. That box will be created with something like this: https://manager.linode.com/linodes/deploy/linode393074?StackScriptID=6482

My work box is a MacBook with Mac OS X 10.6.8. There will be 2 people working on the web app (me and another guy). I have almost total freedom to choose, so I want to choose wisely. The whole point is that these constraints should be satisfied:

- I need a reliable way to upload the application to the test/production environments. At least the production environment will be a Linode box. I just don't want to upload files via FTP, or manually copy them with rsync, or any other practice easily subject to errors. How do the professional django developers set up their environment in order to deploy the app?

- I'm not sure about which IDE/editor choose. I don't want to start an editor war, and I've used several options in the past. My main interest is: I want to focus on develop. If Eclipse/Aptana/Eric/PyCharm/any IDE can be easily "linked" to my environment, that's my choice. For example, if I can deploy my app to test/production environment with a couple of clicks or commands, thanks to a plugin or script, that's great. Like deploying to Heroku or EC2, but with Linode. Is there any IDE specially friendly with this kind of development environment?

- The other(s) developer(s) must be up&running ASAP. They can't spend half a day installing and configuring stuff to start being productive. I guess a VirtualBox machine + Vagrant would be a good choice here. But, would it make more difficult the deployment cycle? And using a virtual machine to just open the IDE and develop sounds like a resource waste to me. Is there any other solution?

I think I should use, at least, VirtualEnv, VirtualEnvWrapper and PIP, like I've read in these useful links


But I'd like to know the opinion of Djanjo experts / hard "pythonistas". Any suggestion is strongly appreciated.

Many thanks in advance, and best regards

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
For more options, visit https://groups.google.com/groups/opt_out.



--
Christiano Anderson 

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment