DEV Community

Harley Hicks
Harley Hicks

Posted on

How should I package my Django app?

I have a Django application that serves media (in the vein of Plex or Kodi) that I want to make easy to distribute for others to use. It requires three services:

  1. Web server (WSGI)
  2. Database (MySQL)
  3. Task Queue (Celery)

Essentially I'm looking to make a one-click application that installs these services, and let's the user host their own version of this application on Windows, Mac and Linux.

My background is web, so I'm fairly new to the software distribution game. I've learned that you can package Django applications somewhat using cx_Freeze, or pyInstaller, but it's been quite a hassle getting this to work, and documentation is sparse and/or lacking. Also Django does some fancy magic that doesn't always package well.

So many options

I've also thought of using Docker, but I don't want to complicate installation for users that aren't as technically inclined. It would be great if I could "shadow" Docker's installation and a user could install it and my projects containers via a Windows installer.

What are some options?

Top comments (2)

Collapse
 
vergeev profile image
Pavel Vergeev

I have very little experience with this, but I suppose you could wrap a Fabric script into GUI. There are projects that have already done that, though they are aimed at developers: github.com/fabric-bolt/fabric-bolt

Collapse
 
scientronic92 profile image
scientronic92

I passed in to the same problem, I think I am gonna ship the app the way it is, and configure it for the customers, then build UI using .Net ..etc.