{"id":15583,"date":"2025-11-17T13:36:15","date_gmt":"2025-11-17T13:36:15","guid":{"rendered":"https:\/\/kb.cloudhostgeek.com\/docs\/framework\/python\/aritcle1\/"},"modified":"2026-02-09T22:49:09","modified_gmt":"2026-02-09T22:49:09","slug":"how-do-i-deploy-a-django-app-on-your-vps-or-shared-server","status":"publish","type":"docs","link":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-deploy-a-django-app-on-your-vps-or-shared-server\/","title":{"rendered":"How Do I Deploy a Django App on Your VPS or Shared Server?"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"15583\" class=\"elementor elementor-15583\" data-elementor-post-type=\"docs\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7f730747 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"7f730747\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1eacb36f elementor-widget elementor-widget-text-editor\" data-id=\"1eacb36f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><strong>Introduction<\/strong><\/h2><p data-start=\"214\" data-end=\"471\">Deploying a Django app does not have to be complicated. Whether you are using a shared hosting plan under <a style=\"text-decoration: none;\" href=\"https:\/\/www.bigcloudy.com\/django-hosting\"><strong data-start=\"320\" data-end=\"338\">Django Hosting<\/strong><\/a> or a <a style=\"text-decoration: none;\" href=\"https:\/\/www.bigcloudy.com\/vps-hosting\"><strong data-start=\"344\" data-end=\"359\">VPS Hosting<\/strong><\/a> environment, you can set it up easily using CloudLinux Passenger, SSH terminal, or Gunicorn and Nginx on a VPS.<\/p><p data-start=\"473\" data-end=\"619\">In shared hosting, you will typically use cPanel Setup Python App, while on a VPS you will manually configure Gunicorn and Nginx for full control.<\/p><p data-start=\"621\" data-end=\"798\">This guide explains both methods step by step, so you can deploy your Django project smoothly and confidently, even if this is your first time working with a Python application.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-113300e0 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"113300e0\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7bce70af elementor-widget elementor-widget-text-editor\" data-id=\"7bce70af\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3><b>Prerequisites<br \/><\/b><\/h3><div class=\"elementor-element elementor-element-4bbce9c8 elementor-widget elementor-widget-text-editor\" data-id=\"4bbce9c8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\"><p>Before you begin, make sure you have:<\/p><\/div><\/div><div class=\"elementor-element elementor-element-6873e126 elementor-widget elementor-widget-text-editor\" data-id=\"6873e126\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\"><ul><li aria-level=\"1\">A\u00a0<b>Django project<\/b>\u00a0ready to deploy<\/li><li aria-level=\"1\"><b>Python 3.6+<\/b>\u00a0(check supported versions in your hosting account)<\/li><li aria-level=\"1\"><b>Access to cPanel or SSH terminal<\/b><b><br \/><\/b><\/li><li aria-level=\"1\">Your\u00a0<b>requirements.txt<\/b>\u00a0file<\/li><li aria-level=\"1\">A configured\u00a0<b>database<\/b>\u00a0(SQLite, MySQL, or PostgreSQL)<\/li><li aria-level=\"1\">Basic familiarity with Django\u2019s structure (settings.py,\u00a0manage.py, etc.)<\/li><\/ul><\/div><\/div><div class=\"elementor-element elementor-element-7f527bc1 elementor-widget elementor-widget-text-editor\" data-id=\"7f527bc1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\"><p><b>Note:<\/b>\u00a0Always test your app locally before deployment. Run\u00a0python manage.py runserver\u00a0on your system to confirm everything works fine.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-65c566f e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"65c566f\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1e7ad3fc elementor-widget elementor-widget-text-editor\" data-id=\"1e7ad3fc\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Deployment on Shared Hosting (Using Passenger)<\/b><\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60743ead elementor-widget elementor-widget-text-editor\" data-id=\"60743ead\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Shared hosting is ideal if you want a simpler setup without server-level configurations.<br \/>Here\u2019s how you can deploy Django using cPanel\u2019s Python App Setup tool (powered by CloudLinux Passenger).<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b905343 elementor-widget elementor-widget-text-editor\" data-id=\"b905343\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Step 1: Log in to the cPanel Account<\/h3><div class=\"elementor-element elementor-element-231d554 elementor-widget elementor-widget-heading\" data-id=\"231d554\" data-element_type=\"widget\" data-widget_type=\"heading.default\"><div class=\"elementor-widget-container\"><ul><li aria-level=\"1\">Go to your hosting control panel and open\u00a0<b>cPanel<\/b>.<\/li><li aria-level=\"1\">Look for\u00a0<b>Setup Python App<\/b>\u00a0under the\u00a0<i>Software<\/i>\u00a0section.<\/li><\/ul><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-eed0b67 elementor-widget elementor-widget-image\" data-id=\"eed0b67\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"722\" height=\"371\" src=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/setup-python-bigcloduy.png\" class=\"attachment-large size-large wp-image-15703\" alt=\"setup python bigcloudy\" srcset=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/setup-python-bigcloduy.png 722w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/setup-python-bigcloduy-300x154.png 300w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/setup-python-bigcloduy-20x10.png 20w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/setup-python-bigcloduy-32x16.png 32w\" sizes=\"(max-width: 722px) 100vw, 722px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cffe262 elementor-widget elementor-widget-text-editor\" data-id=\"cffe262\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Step 2: Create a New Python App<\/h3><div class=\"elementor-element elementor-element-231d554 elementor-widget elementor-widget-heading\" data-id=\"231d554\" data-element_type=\"widget\" data-widget_type=\"heading.default\"><div class=\"elementor-widget-container\"><ul><li aria-level=\"1\">Click\u00a0<b>\u201cCreate Application\u201d<\/b><b><br \/><\/b><\/li><li aria-level=\"1\">Choose your\u00a0<b>Python version<\/b>\u00a0(for example, 3.9 or 3.10)<\/li><li aria-level=\"1\">Set your\u00a0<b>application root<\/b>\u00a0(e.g.,\u00a0\/home\/user\/my_django_app)<\/li><li aria-level=\"1\">Define the\u00a0<b>application URL<\/b>\u00a0(e.g.,\u00a0https:\/\/example.com)<\/li><li aria-level=\"1\">Choose your\u00a0<b>startup file<\/b>\u00a0\u2014 for Django, this is typically\u00a0passenger_wsgi.py<\/li><li aria-level=\"1\">Once done, click\u00a0<b>Create<\/b>.<\/li><\/ul><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7a55714 elementor-widget elementor-widget-image\" data-id=\"7a55714\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"167\" src=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/create-python-application-1024x167.png\" class=\"attachment-large size-large wp-image-15704\" alt=\"\" srcset=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/create-python-application-1024x167.png 1024w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/create-python-application-300x49.png 300w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/create-python-application-768x125.png 768w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/create-python-application-20x3.png 20w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/create-python-application-32x5.png 32w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/create-python-application.png 1345w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a37188c elementor-widget elementor-widget-image\" data-id=\"a37188c\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1024\" height=\"506\" src=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-application-form-Bigcloudy-1024x506.png\" class=\"attachment-large size-large wp-image-15708\" alt=\"python application form Bigcloudy\" srcset=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-application-form-Bigcloudy-1024x506.png 1024w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-application-form-Bigcloudy-300x148.png 300w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-application-form-Bigcloudy-768x379.png 768w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-application-form-Bigcloudy-20x10.png 20w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-application-form-Bigcloudy-32x16.png 32w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-application-form-Bigcloudy.png 1326w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-85210f4 elementor-widget elementor-widget-text-editor\" data-id=\"85210f4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Passenger automatically creates a virtual environment and manages your app\u2019s process, so you don\u2019t need to configure WSGI manually.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5f3f277 elementor-widget elementor-widget-text-editor\" data-id=\"5f3f277\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Step 3: Upload Your Django Project<\/h3><div class=\"elementor-element elementor-element-231d554 elementor-widget elementor-widget-heading\" data-id=\"231d554\" data-element_type=\"widget\" data-widget_type=\"heading.default\"><div class=\"elementor-widget-container\"><ul><li aria-level=\"1\">Use\u00a0<b>File Manager<\/b>\u00a0or\u00a0<b>FTP\/SFTP<\/b>\u00a0to upload your Django project files to the directory you set as your\u00a0<i>application root<\/i>.<br \/>For example:<\/li><\/ul><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-437b61c elementor-widget elementor-widget-code-highlight\" data-id=\"437b61c\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>\/home\/username\/my_django_app\/<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-91a7302 elementor-widget elementor-widget-text-editor\" data-id=\"91a7302\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-231d554 elementor-widget elementor-widget-heading\" data-id=\"231d554\" data-element_type=\"widget\" data-widget_type=\"heading.default\"><div class=\"elementor-widget-container\"><p>Make sure your app.py file and Django project folder (e.g., <strong>\/myproject\/<\/strong>) are inside this directory.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4e71c11 elementor-widget elementor-widget-text-editor\" data-id=\"4e71c11\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Step 4: Access Terminal (SSH)<\/h3><div class=\"elementor-element elementor-element-231d554 elementor-widget elementor-widget-heading\" data-id=\"231d554\" data-element_type=\"widget\" data-widget_type=\"heading.default\"><div class=\"elementor-widget-container\"><ul><li aria-level=\"1\">Terminal access is available under\u00a0<i>Advanced \u2192 Terminal<\/i>\u00a0in cPanel.<br \/>Use it to activate your virtual environment and install dependencies:<\/li><\/ul><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f28712 elementor-widget elementor-widget-code-highlight\" data-id=\"8f28712\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp># source \/home\/username\/virtualenv\/my_django_app\/3.9\/bin\/activate \n\n# pip install -r requirements.txt<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7e67b62 elementor-widget elementor-widget-image\" data-id=\"7e67b62\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"266\" src=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-dependencies-bigcloudy-1024x266.png\" class=\"attachment-large size-large wp-image-15709\" alt=\"python dependencies bigcloudy\" srcset=\"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-dependencies-bigcloudy-1024x266.png 1024w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-dependencies-bigcloudy-300x78.png 300w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-dependencies-bigcloudy-768x200.png 768w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-dependencies-bigcloudy-20x5.png 20w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-dependencies-bigcloudy-32x8.png 32w, https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2025\/11\/python-dependencies-bigcloudy.png 1374w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-30ecc71 elementor-widget elementor-widget-text-editor\" data-id=\"30ecc71\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<b>Note:<\/b> If your hosting plan doesn\u2019t include Terminal, ask support to enable SSH access temporarily.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-72df83f elementor-widget elementor-widget-text-editor\" data-id=\"72df83f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Step 5: Set Up passenger_wsgi.py<\/h3><div class=\"elementor-element elementor-element-231d554 elementor-widget elementor-widget-heading\" data-id=\"231d554\" data-element_type=\"widget\" data-widget_type=\"heading.default\"><div class=\"elementor-widget-container\"><p>In your app\u2019s root folder, make sure you have a file named\u00a0<b>passenger_wsgi.py<\/b>\u00a0containing:<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-769f323 elementor-widget elementor-widget-code-highlight\" data-id=\"769f323\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>import sys, \nos sys.path.insert(0, os.path.dirname(__file__)) \nos.environ[\u2018DJANGO_SETTINGS_MODULE\u2019] = \u2018myproject.settings\u2019 \nfrom django.core.wsgi import get_wsgi_application a\npplication=get_wsgi_application()<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0903141 elementor-widget elementor-widget-text-editor\" data-id=\"0903141\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-231d554 elementor-widget elementor-widget-heading\" data-id=\"231d554\" data-element_type=\"widget\" data-widget_type=\"heading.default\"><div class=\"elementor-widget-container\"><p>Replace\u00a0<em>myproject.settings<\/em>\u00a0with your actual project settings path.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ee262cf elementor-widget elementor-widget-text-editor\" data-id=\"ee262cf\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Step 6: Apply Migrations and Collect Static Files<\/h3><div class=\"elementor-element elementor-element-231d554 elementor-widget elementor-widget-heading\" data-id=\"231d554\" data-element_type=\"widget\" data-widget_type=\"heading.default\"><div class=\"elementor-widget-container\"><p>Run the following commands inside the terminal (after activating your virtual environment):<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f2b26b2 elementor-widget elementor-widget-code-highlight\" data-id=\"f2b26b2\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp># python manage.py migrate \n# python manage.py collectstatic<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5c9d987 elementor-widget elementor-widget-text-editor\" data-id=\"5c9d987\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-231d554 elementor-widget elementor-widget-heading\" data-id=\"231d554\" data-element_type=\"widget\" data-widget_type=\"heading.default\"><div class=\"elementor-widget-container\"><p>This ensures your database and static assets are properly configured.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7186b5e elementor-widget elementor-widget-text-editor\" data-id=\"7186b5e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3>Step 7: Restart the App<\/h3><div class=\"elementor-element elementor-element-231d554 elementor-widget elementor-widget-heading\" data-id=\"231d554\" data-element_type=\"widget\" data-widget_type=\"heading.default\"><div class=\"elementor-widget-container\"><p>Go back to cPanel \u2192\u00a0<b>Setup Python App<\/b>\u00a0\u2192 click\u00a0<b>Restart<\/b>.<br \/>Your Django application should now load on your domain.<\/p><p><b>You\u2019ve successfully deployed Django on shared hosting!<\/b><\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1a89c2a1 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"1a89c2a1\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6eaee4f6 elementor-widget elementor-widget-text-editor\" data-id=\"6eaee4f6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Deployment on VPS (Using Gunicorn and Nginx)<br \/><\/b><\/h2><div class=\"elementor-element elementor-element-5c00579c elementor-widget elementor-widget-text-editor\" data-id=\"5c00579c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\"><div class=\"elementor-widget-container\"><p>If you\u2019re using a VPS, you\u2019ll have full root access, which means you can configure Django more efficiently using\u00a0<b>Gunicorn<\/b>\u00a0as the application server and\u00a0<b>Nginx<\/b> as a reverse proxy.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-277128a elementor-widget elementor-widget-text-editor\" data-id=\"277128a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Step 6: Apply Migrations and Collect Static Files<br \/>Step 1: Update Packages<\/p><p>Step 2: Install Required Packages<\/p><p>Step 3: Clone or Upload Your Django Project<\/p><p>Step 4: Create Virtual Environment<code>\n<\/code><\/p><p>Step 5: Run Migrations<code>\n<\/code><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c4e6c2f elementor-widget elementor-widget-code-highlight\" data-id=\"c4e6c2f\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp># sudo apt update && sudo apt upgrade -y\r\n\r\n# sudo apt install python3 python3-pip python3-venv nginx -y\r\n\r\n# cd \/var\/www\/\r\n# sudo mkdir myproject && cd myproject\r\n# sudo git clone https:\/\/github.com\/yourusername\/yourproject.git.\r\n\r\n# python3 -m venv venv\r\n# source venv\/bin\/activate\r\n# pip install -r requirements.txt\r\n\r\n# python manage.py migrate\r\n# python manage.py collectstatic\r\n\r\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-631d380 elementor-widget elementor-widget-text-editor\" data-id=\"631d380\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Step 6: Configure Gunicorn<br \/>Create a Gunicorn service file:<code><\/code><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3b70c8d elementor-widget elementor-widget-code-highlight\" data-id=\"3b70c8d\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp># sudo nano \/etc\/systemd\/system\/gunicorn.service\r\n\r\nAdd the following:\r\n\r\n[Unit]\r\n\r\nDescription=gunicorn daemon for Django\r\n\r\nAfter=network.target\r\n\r\n[Service]\r\n\r\nUser=root\r\n\r\nGroup=www-data\r\n\r\nWorkingDirectory=\/var\/www\/myproject\r\n\r\nExecStart=\/var\/www\/myproject\/venv\/bin\/gunicorn \u2013workers \r\n3 \u2013bind unix:\/var\/www\/myproject\/myproject.sock myproject.wsgi:application\r\n\r\n[Install]\r\n\r\nWantedBy=multi-user.target\r\n\r\nSave and run:\r\n\r\n# sudo systemctl daemon-reload\r\n\r\n# sudo systemctl enable gunicorn\r\n\r\n# sudo systemctl start gunicorn<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0eb267c elementor-widget elementor-widget-text-editor\" data-id=\"0eb267c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Step 7: Configure Nginx<\/p><p>Edit Nginx configuration:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-45b4725 elementor-widget elementor-widget-code-highlight\" data-id=\"45b4725\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp># sudo nano \/etc\/nginx\/sites-available\/myproject \n\nAdd: \nserver { \nlisten 80; \nserver_name yourdomain.com; \nlocation = \/favicon.ico { access_log off; log_not_found off; } \nlocation \/static\/ { \nroot \/var\/www\/myproject; \n} \n\nlocation \/ \n{ include proxy_params; \nproxy_pass http:\/\/unix:\/var\/www\/myproject\/myproject.sock; \n\n } \n \n} \n\nThen enable it: \n\n# sudo ln -s \/etc\/nginx\/sites-available\/myproject \n\/etc\/nginx\/sites-enabled # sudo systemctl restart nginx<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ad958bb elementor-widget elementor-widget-text-editor\" data-id=\"ad958bb\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Your Django app should now be running on your VPS.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-14f9807f e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"14f9807f\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-362154d6 elementor-widget elementor-widget-text-editor\" data-id=\"362154d6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Setting Up a Virtual Environment<br \/><\/b><\/h2><p>Both shared and VPS setups use\u00a0<b>virtual environments<\/b>\u00a0to isolate dependencies.<br \/>This avoids conflicts with global Python packages and allows your app to run safely.<\/p><p>Use:<code><\/code><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-54b387a elementor-widget elementor-widget-code-highlight\" data-id=\"54b387a\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp># python3 -m venv venv \n\n# source venv\/bin\/activate \n\n# pip install -r requirements.txt<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3afded7 elementor-widget elementor-widget-text-editor\" data-id=\"3afded7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Always activate your virtual environment before running Django commands.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6f223e5a e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"6f223e5a\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2a6dea4 elementor-widget elementor-widget-text-editor\" data-id=\"2a6dea4\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Configuring Databases<br \/><\/b><\/h2><p>You can use SQLite, MySQL, or PostgreSQL depending on your plan.<br \/>In\u00a0settings.py, configure your preferred backend:<\/p><p><b>For MySQL:<\/b><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bf1a5ae elementor-widget elementor-widget-code-highlight\" data-id=\"bf1a5ae\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>DATABASES = {\r\n\r\n    \u2018default\u2019: {\r\n\r\n        \u2018ENGINE\u2019: \u2018django.db.backends.mysql\u2019,\r\n\r\n        \u2018NAME\u2019: \u2018dbname\u2019,\r\n\r\n        \u2018USER\u2019: \u2018dbuser\u2019,\r\n\r\n        \u2018PASSWORD\u2019: \u2018dbpass\u2019,\r\n\r\n        \u2018HOST\u2019: \u2018localhost\u2019,\r\n\r\n        \u2018PORT\u2019: \u20183306\u2019,\r\n\r\n    }\r\n\r\n}\r\n\r\nFor SQLite (default):\r\n\r\nDATABASES = {\r\n\r\n    \u2018default\u2019: {\r\n\r\n        \u2018ENGINE\u2019: \u2018django.db.backends.sqlite3\u2019,\r\n\r\n        \u2018NAME\u2019: BASE_DIR \/ \u201cdb.sqlite3\u201d,\r\n\r\n    }\r\n\r\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1e1a4108 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"1e1a4108\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-73667497 elementor-widget elementor-widget-text-editor\" data-id=\"73667497\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Collecting Static and Media Files<br \/><\/b><\/h2><p>Django requires you to collect static files before serving them:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-63fe757 elementor-widget elementor-widget-code-highlight\" data-id=\"63fe757\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp># python manage.py collectstatic \n\nThen, define where your files should live in\u00a0settings.py: \n\nSTATIC_URL = \u2018\/static\/\u2019 \n\nSTATIC_ROOT = BASE_DIR \/ \u2018static\u2019 \n\nMEDIA_URL = \u2018\/media\/\u2019 \n\nMEDIA_ROOT = BASE_DIR \/ \u2018media\u2019<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2b4686ed e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"2b4686ed\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7949cebb elementor-widget elementor-widget-text-editor\" data-id=\"7949cebb\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Common Deployment Mistakes<br \/><\/b><\/h2><ul><li aria-level=\"1\">Forgetting to run\u00a0collectstatic<\/li><li aria-level=\"1\">Not setting\u00a0DEBUG=False\u00a0in production<\/li><li aria-level=\"1\">Missing\u00a0ALLOWED_HOSTS\u00a0entries in settings<\/li><li aria-level=\"1\">Not activating the virtual environment<\/li><li aria-level=\"1\">Using the wrong Python version<\/li><li aria-level=\"1\">Not restarting Passenger or Gunicorn after updates<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-641a1e2 e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"641a1e2\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a71f2cd elementor-widget elementor-widget-text-editor\" data-id=\"a71f2cd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Troubleshooting Tips<\/b><\/h2><p>If the app shows\u00a0<b>500 Internal Server Error<\/b>, check the logs:<\/p><p><i>#\u00a0\u00a0<\/i><i>tail -n 50 passenger.log<\/i><\/p><ul><li style=\"list-style-type: none;\"><ul><li aria-level=\"1\">If static files don\u2019t load, confirm paths in\u00a0settings.pyRestart your app from cPanel or\u00a0systemctl restart gunicorn\u00a0on VPS<\/li><\/ul><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f21ba0f e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"f21ba0f\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-79e1732d elementor-widget elementor-widget-text-editor\" data-id=\"79e1732d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Conclusion<\/b><\/h2><p>Deploying Django on shared or VPS hosting is simple when you follow the right steps.<br \/>For shared hosting, Passenger handles most of the setup for you, while on VPS, Gunicorn + Nginx gives you full power and flexibility.With virtual environments, terminal access, and proper static file management, your Django app can run smoothly and securely.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f580f57 elementor-widget elementor-widget-text-editor\" data-id=\"f580f57\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>Need Help?\n<\/b><\/h2>\nIf you require assistance at any point while using this guide, our\u00a0<b>Support Team<\/b>\u00a0is here to help:\n<ul>\n \t<li aria-level=\"1\"><img decoding=\"async\" class=\"emoji\" role=\"img\" draggable=\"false\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/1f4e7.svg\" alt=\"email\" \/>\u00a0<b>Email:<\/b>\u00a0support@bigcloudy.com<\/li>\n \t<li aria-level=\"1\"><img decoding=\"async\" class=\"emoji\" role=\"img\" draggable=\"false\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/1f310.svg\" alt=\"website\" \/><a style=\"text-decoration: none; color: #a57ef5;\" href=\"https:\/\/www.bigcloudy.com\/contact-us\">\u00a0<b>Submit a support ticket<\/b><\/a><\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-59db70a e-con-full e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"59db70a\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6ab62b5e elementor-widget elementor-widget-text-editor\" data-id=\"6ab62b5e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2><b>FAQ<\/b><\/h2>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60563bc elementor-widget elementor-widget-eael-adv-accordion\" data-id=\"60563bc\" data-element_type=\"widget\" data-widget_type=\"eael-adv-accordion.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t        <div class=\"eael-adv-accordion\" id=\"eael-adv-accordion-60563bc\" data-scroll-on-click=\"no\" data-scroll-speed=\"300\" data-accordion-id=\"60563bc\" data-accordion-type=\"accordion\" data-toogle-speed=\"300\">\n    <div class=\"eael-accordion-list\">\n                <div id=\"can-i-deploy-django-using-git\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"1\" aria-controls=\"elementor-tab-content-1011\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-down\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-up\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">Can I deploy Django using Git?<\/span><\/div><div id=\"elementor-tab-content-1011\" class=\"eael-accordion-content clearfix\" data-tab=\"1\" aria-labelledby=\"can-i-deploy-django-using-git\"><p>Yes, both cPanel and VPS allow Git integration. You can pull directly from GitHub to your app directory.<\/p><\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"how-long-does-deployment-take\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"2\" aria-controls=\"elementor-tab-content-1012\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-down\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-up\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">How long does deployment take?<\/span><\/div><div id=\"elementor-tab-content-1012\" class=\"eael-accordion-content clearfix\" data-tab=\"2\" aria-labelledby=\"how-long-does-deployment-take\"><p>Usually less than 10 minutes once your files and dependencies are ready.<\/p><\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"can-i-switch-from-shared-to-vps-later\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"3\" aria-controls=\"elementor-tab-content-1013\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-down\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-up\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">Can I switch from shared to VPS later?<\/span><\/div><div id=\"elementor-tab-content-1013\" class=\"eael-accordion-content clearfix\" data-tab=\"3\" aria-labelledby=\"can-i-switch-from-shared-to-vps-later\"><p>Yes, you can migrate your Django app easily using the same structure.<\/p><\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"what-if-i-get-a-503-error\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"4\" aria-controls=\"elementor-tab-content-1014\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-down\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-up\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">What if I get a 503 error?<\/span><\/div><div id=\"elementor-tab-content-1014\" class=\"eael-accordion-content clearfix\" data-tab=\"4\" aria-labelledby=\"what-if-i-get-a-503-error\"><p>It usually means Passenger or Gunicorn isn\u2019t running. Restart your app or check your startup file.<\/p><\/div>\n                <\/div><div class=\"eael-accordion-list\">\n                <div id=\"can-i-access-the-django-admin-panel\" class=\"elementor-tab-title eael-accordion-header\" tabindex=\"0\" data-tab=\"5\" aria-controls=\"elementor-tab-content-1015\"><span class=\"eael-advanced-accordion-icon-closed\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-down\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"><\/path><\/svg><\/span><span class=\"eael-advanced-accordion-icon-opened\"><svg aria-hidden=\"true\" class=\"fa-accordion-icon e-font-icon-svg e-fas-angle-up\" viewBox=\"0 0 320 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"><\/path><\/svg><\/span><span class=\"eael-accordion-tab-title\">Can I access the Django admin panel?<\/span><\/div><div id=\"elementor-tab-content-1015\" class=\"eael-accordion-content clearfix\" data-tab=\"5\" aria-labelledby=\"can-i-access-the-django-admin-panel\"><p>Yes, once the site is live, just go to \/admin and log in with your credentials.<\/p><\/div>\n                <\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Introduction Deploying a Django app does not have to be complicated. Whether you are using a shared hosting plan under Django Hosting or a VPS Hosting environment, you can set it up easily using CloudLinux Passenger, SSH terminal, or Gunicorn and Nginx on a VPS. In shared hosting, you will typically use cPanel Setup Python App, while on a VPS you will manually configure Gunicorn and Nginx for full control. This guide explains both methods step by step, so you can deploy your Django project smoothly and confidently, even if this is your first time working with a Python application. Prerequisites Before you begin, make sure you have: A\u00a0Django project\u00a0ready to deploy Python 3.6+\u00a0(check supported versions in your hosting account) Access to cPanel or SSH terminal Your\u00a0requirements.txt\u00a0file A configured\u00a0database\u00a0(SQLite, MySQL, or PostgreSQL) Basic familiarity with Django\u2019s structure (settings.py,\u00a0manage.py, etc.) Note:\u00a0Always test your app locally before deployment. Run\u00a0python manage.py runserver\u00a0on your system to confirm everything works fine. Deployment on Shared Hosting (Using Passenger) Shared hosting is ideal if you want a simpler setup without server-level configurations.Here\u2019s how you can deploy Django using cPanel\u2019s Python App Setup tool (powered by CloudLinux Passenger). Step 1: Log in to the cPanel Account Go to your hosting control panel and open\u00a0cPanel. Look for\u00a0Setup Python App\u00a0under the\u00a0Software\u00a0section. Step 2: Create a New Python App Click\u00a0\u201cCreate Application\u201d Choose your\u00a0Python version\u00a0(for example, 3.9 or 3.10) Set your\u00a0application root\u00a0(e.g.,\u00a0\/home\/user\/my_django_app) Define the\u00a0application URL\u00a0(e.g.,\u00a0https:\/\/example.com) Choose your\u00a0startup file\u00a0\u2014 for Django, this is typically\u00a0passenger_wsgi.py Once done, click\u00a0Create. Passenger automatically creates a virtual environment and manages your app\u2019s process, so you don\u2019t need to configure WSGI manually. Step 3: Upload Your Django Project Use\u00a0File Manager\u00a0or\u00a0FTP\/SFTP\u00a0to upload your Django project files to the directory you set as your\u00a0application root.For example: \/home\/username\/my_django_app\/ Make sure your app.py file and Django project folder (e.g., \/myproject\/) are inside this directory. Step 4: Access Terminal (SSH) Terminal access is available under\u00a0Advanced \u2192 Terminal\u00a0in cPanel.Use it to activate your virtual environment and install dependencies: # source \/home\/username\/virtualenv\/my_django_app\/3.9\/bin\/activate # pip install -r requirements.txt Note: If your hosting plan doesn\u2019t include Terminal, ask support to enable SSH access temporarily. Step 5: Set Up passenger_wsgi.py In your app\u2019s root folder, make sure you have a file named\u00a0passenger_wsgi.py\u00a0containing: import sys, os sys.path.insert(0, os.path.dirname(__file__)) os.environ[\u2018DJANGO_SETTINGS_MODULE\u2019] = \u2018myproject.settings\u2019 from django.core.wsgi import get_wsgi_application a pplication=get_wsgi_application() Replace\u00a0myproject.settings\u00a0with your actual project settings path. Step 6: Apply Migrations and Collect Static Files Run the following commands inside the terminal (after activating your virtual environment): # python manage.py migrate # python manage.py collectstatic This ensures your database and static assets are properly configured. Step 7: Restart the App Go back to cPanel \u2192\u00a0Setup Python App\u00a0\u2192 click\u00a0Restart.Your Django application should now load on your domain. You\u2019ve successfully deployed Django on shared hosting! Deployment on VPS (Using Gunicorn and Nginx) If you\u2019re using a VPS, you\u2019ll have full root access, which means you can configure Django more efficiently using\u00a0Gunicorn\u00a0as the application server and\u00a0Nginx as a reverse proxy. Step 6: Apply Migrations and Collect Static FilesStep 1: Update Packages Step 2: Install Required Packages Step 3: Clone or Upload Your Django Project Step 4: Create Virtual Environment Step 5: Run Migrations # sudo apt update &#038;&#038; sudo apt upgrade -y # sudo apt install python3 python3-pip python3-venv nginx -y # cd \/var\/www\/ # sudo mkdir myproject &#038;&#038; cd myproject # sudo git clone https:\/\/github.com\/yourusername\/yourproject.git. # python3 -m venv venv # source venv\/bin\/activate # pip install -r requirements.txt # python manage.py migrate # python manage.py collectstatic Step 6: Configure GunicornCreate a Gunicorn service file: # sudo nano \/etc\/systemd\/system\/gunicorn.service Add the following: [Unit] Description=gunicorn daemon for Django After=network.target [Service] User=root Group=www-data WorkingDirectory=\/var\/www\/myproject ExecStart=\/var\/www\/myproject\/venv\/bin\/gunicorn \u2013workers 3 \u2013bind unix:\/var\/www\/myproject\/myproject.sock myproject.wsgi:application [Install] WantedBy=multi-user.target Save and run: # sudo systemctl daemon-reload # sudo systemctl enable gunicorn # sudo systemctl start gunicorn Step 7: Configure Nginx Edit Nginx configuration: # sudo nano \/etc\/nginx\/sites-available\/myproject Add: server { listen 80; server_name yourdomain.com; location = \/favicon.ico { access_log off; log_not_found off; } location \/static\/ { root \/var\/www\/myproject; } location \/ { include proxy_params; proxy_pass http:\/\/unix:\/var\/www\/myproject\/myproject.sock; } } Then enable it: # sudo ln -s \/etc\/nginx\/sites-available\/myproject \/etc\/nginx\/sites-enabled # sudo systemctl restart nginx Your Django app should now be running on your VPS. Setting Up a Virtual Environment Both shared and VPS setups use\u00a0virtual environments\u00a0to isolate dependencies.This avoids conflicts with global Python packages and allows your app to run safely. Use: # python3 -m venv venv # source venv\/bin\/activate # pip install -r requirements.txt Always activate your virtual environment before running Django commands. Configuring Databases You can use SQLite, MySQL, or PostgreSQL depending on your plan.In\u00a0settings.py, configure your preferred backend: For MySQL: DATABASES = { \u2018default\u2019: { \u2018ENGINE\u2019: \u2018django.db.backends.mysql\u2019, \u2018NAME\u2019: \u2018dbname\u2019, \u2018USER\u2019: \u2018dbuser\u2019, \u2018PASSWORD\u2019: \u2018dbpass\u2019, \u2018HOST\u2019: \u2018localhost\u2019, \u2018PORT\u2019: \u20183306\u2019, } } For SQLite (default): DATABASES = { \u2018default\u2019: { \u2018ENGINE\u2019: \u2018django.db.backends.sqlite3\u2019, \u2018NAME\u2019: BASE_DIR \/ \u201cdb.sqlite3\u201d, } } Collecting Static and Media Files Django requires you to collect static files before serving them: # python manage.py collectstatic Then, define where your files should live in\u00a0settings.py: STATIC_URL = \u2018\/static\/\u2019 STATIC_ROOT = BASE_DIR \/ \u2018static\u2019 MEDIA_URL = \u2018\/media\/\u2019 MEDIA_ROOT = BASE_DIR \/ \u2018media\u2019 Common Deployment Mistakes Forgetting to run\u00a0collectstatic Not setting\u00a0DEBUG=False\u00a0in production Missing\u00a0ALLOWED_HOSTS\u00a0entries in settings Not activating the virtual environment Using the wrong Python version Not restarting Passenger or Gunicorn after updates Troubleshooting Tips If the app shows\u00a0500 Internal Server Error, check the logs: #\u00a0\u00a0tail -n 50 passenger.log If static files don\u2019t load, confirm paths in\u00a0settings.pyRestart your app from cPanel or\u00a0systemctl restart gunicorn\u00a0on VPS Conclusion Deploying Django on shared or VPS hosting is simple when you follow the right steps.For shared hosting, Passenger handles most of the setup for you, while on VPS, Gunicorn + Nginx gives you full power and flexibility.With virtual environments, terminal access, and proper static file management, your Django app can run smoothly and securely. Need Help? If you require assistance at any point while using this guide, our\u00a0Support Team\u00a0is here to help: \u00a0Email:\u00a0support@bigcloudy.com \u00a0Submit a support ticket FAQ Can I deploy Django using Git? Yes, both cPanel and VPS allow Git integration. You can pull directly from GitHub to your app directory. How long<\/p>\n","protected":false},"author":13,"featured_media":0,"parent":15569,"menu_order":7,"comment_status":"open","ping_status":"closed","template":"","doc_tag":[],"class_list":["post-15583","docs","type-docs","status-publish","hentry","no-post-thumbnail"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.7 (Yoast SEO v26.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Deploy Django Apps on Shared Hosting or VPS | BigCloudy<\/title>\n<meta name=\"description\" content=\"BigCloudy supports Django deployment on shared hosting and VPS. Learn Passenger setup, Gunicorn, Nginx, and SSH configuration.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-deploy-a-django-app-on-your-vps-or-shared-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Do I Deploy a Django App on Your VPS or Shared Server?\" \/>\n<meta property=\"og:description\" content=\"BigCloudy supports Django deployment on shared hosting and VPS. Learn Passenger setup, Gunicorn, Nginx, and SSH configuration.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-deploy-a-django-app-on-your-vps-or-shared-server\/\" \/>\n<meta property=\"og:site_name\" content=\"CloudHostGeek Help Center\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BigCloudyHosting\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-09T22:49:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kb.cloudhostgeek.com\/wp-content\/uploads\/2025\/11\/setup-python-bigcloduy.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@bigcloudypvtltd\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Deploy Django Apps on Shared Hosting or VPS | BigCloudy","description":"BigCloudy supports Django deployment on shared hosting and VPS. Learn Passenger setup, Gunicorn, Nginx, and SSH configuration.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-deploy-a-django-app-on-your-vps-or-shared-server\/","og_locale":"en_US","og_type":"article","og_title":"How Do I Deploy a Django App on Your VPS or Shared Server?","og_description":"BigCloudy supports Django deployment on shared hosting and VPS. Learn Passenger setup, Gunicorn, Nginx, and SSH configuration.","og_url":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-deploy-a-django-app-on-your-vps-or-shared-server\/","og_site_name":"CloudHostGeek Help Center","article_publisher":"https:\/\/www.facebook.com\/BigCloudyHosting\/","article_modified_time":"2026-02-09T22:49:09+00:00","og_image":[{"url":"https:\/\/kb.cloudhostgeek.com\/wp-content\/uploads\/2025\/11\/setup-python-bigcloduy.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_site":"@bigcloudypvtltd","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-deploy-a-django-app-on-your-vps-or-shared-server\/","url":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-deploy-a-django-app-on-your-vps-or-shared-server\/","name":"Deploy Django Apps on Shared Hosting or VPS | BigCloudy","isPartOf":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-deploy-a-django-app-on-your-vps-or-shared-server\/#primaryimage"},"image":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-deploy-a-django-app-on-your-vps-or-shared-server\/#primaryimage"},"thumbnailUrl":"https:\/\/kb.cloudhostgeek.com\/wp-content\/uploads\/2025\/11\/setup-python-bigcloduy.png","datePublished":"2025-11-17T13:36:15+00:00","dateModified":"2026-02-09T22:49:09+00:00","description":"BigCloudy supports Django deployment on shared hosting and VPS. Learn Passenger setup, Gunicorn, Nginx, and SSH configuration.","breadcrumb":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-deploy-a-django-app-on-your-vps-or-shared-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-deploy-a-django-app-on-your-vps-or-shared-server\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-deploy-a-django-app-on-your-vps-or-shared-server\/#primaryimage","url":"https:\/\/kb.cloudhostgeek.com\/wp-content\/uploads\/2025\/11\/setup-python-bigcloduy.png","contentUrl":"https:\/\/kb.cloudhostgeek.com\/wp-content\/uploads\/2025\/11\/setup-python-bigcloduy.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/how-do-i-deploy-a-django-app-on-your-vps-or-shared-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.bigcloudy.com\/knowledge-base\/"},{"@type":"ListItem","position":2,"name":"Framework","item":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/"},{"@type":"ListItem","position":3,"name":"Python","item":"https:\/\/www.bigcloudy.com\/knowledge-base\/docs\/framework\/python\/"},{"@type":"ListItem","position":4,"name":"How Do I Deploy a Django App on Your VPS or Shared Server?"}]},{"@type":"WebSite","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#website","url":"https:\/\/www.bigcloudy.com\/knowledge-base\/","name":"https:\/\/www.bigcloudy.com\/","description":"Your step-by-step guide to hosting, servers &amp; website tools.","publisher":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bigcloudy.com\/knowledge-base\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#organization","name":"BigCloudy internt services pvt ltd.","url":"https:\/\/www.bigcloudy.com\/knowledge-base\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#\/schema\/logo\/image\/","url":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2024\/09\/cropped-BGC_logo.webp","contentUrl":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-content\/uploads\/2024\/09\/cropped-BGC_logo.webp","width":368,"height":114,"caption":"BigCloudy internt services pvt ltd."},"image":{"@id":"https:\/\/www.bigcloudy.com\/knowledge-base\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/BigCloudyHosting\/","https:\/\/x.com\/bigcloudypvtltd","https:\/\/www.instagram.com\/bigcloudypvtltd\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/docs\/15583","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/comments?post=15583"}],"version-history":[{"count":0,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/docs\/15583\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/docs\/15569"}],"wp:attachment":[{"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/media?parent=15583"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.bigcloudy.com\/knowledge-base\/wp-json\/wp\/v2\/doc_tag?post=15583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}