DEV Community

Harley Hicks
Harley Hicks

Posted on

1

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?

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

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.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay