{"id":2186,"date":"2025-02-19T17:24:12","date_gmt":"2024-06-23T01:54:07","guid":{"rendered":""},"modified":"2025-02-02T00:46:18","modified_gmt":"2025-02-01T23:46:18","slug":"how-to-install-django-with-postgres-nginx-and-gunicorn-on-rocky-linux-9","status":"publish","type":"post","link":"https:\/\/netcloud24.com\/knowledgebase\/how-to-install-django-with-postgres-nginx-and-gunicorn-on-rocky-linux-9\/","title":{"rendered":"Linux VPS &#038; VPS Windows Setup Guide | NetCloud24 Django with Postgres, Nginx, and Gunicorn on Rocky Linux 9"},"content":{"rendered":"<p>\u00a0<\/p>\n<\/p>\n<header>\n<h1>\u00a0<\/h1>\n<\/header>\n<article>\n<section>\n<h2>Introduction<\/h2>\n<p>Django is a powerful web framework that allows developers to create robust web applications quickly. In this guide, you will learn how to install Django with PostgreSQL as the database, Nginx as the web server, and Gunicorn as the application server on Rocky Linux 9. This setup can be efficiently hosted on a  for optimal performance and reliability.<\/p>\n<\/section>\n<section>\n<h2>Prerequisites<\/h2>\n<ul>\n<li>A Rocky Linux 9 server with root access<\/li>\n<li>Basic knowledge of Linux commands<\/li>\n<li>An active internet connection<\/li>\n<li>A registered domain name pointed to your server&#8217;s IP address (optional but recommended)<\/li>\n<\/ul>\n<\/section>\n<section>\n<h2>Step 1: Update Your System<\/h2>\n<p>Start by updating your package index and upgrading existing packages:<\/p>\n<pre><code>sudo dnf update -y<\/code><\/pre>\n<\/section>\n<section>\n<h2>Step 2: Install Required Packages<\/h2>\n<p>Install PostgreSQL, Nginx, and other required packages:<\/p>\n<pre><code>sudo dnf install postgresql postgresql-server nginx python3-pip python3-devel gcc -y<\/code><\/pre>\n<\/section>\n<section>\n<h2>Step 3: Set Up PostgreSQL<\/h2>\n<p>Initialize the PostgreSQL database and enable the service:<\/p>\n<pre><code>sudo postgresql-setup --initdb\r\nsudo systemctl start postgresql\r\nsudo systemctl enable postgresql<\/code><\/pre>\n<p>Secure the PostgreSQL installation by setting a password for the postgres user:<\/p>\n<pre><code>sudo -u postgres psql\r\nALTER USER postgres PASSWORD 'your_password';\r\n\\q<\/code><\/pre>\n<p>Replace <code>your_password<\/code> with a strong password of your choice.<\/p>\n<\/section>\n<section>\n<h2>Step 4: Create a Database for Django<\/h2>\n<p>Log in to PostgreSQL to create a database and user for Django:<\/p>\n<pre><code>sudo -u postgres psql\r\nCREATE DATABASE django_db;\r\nCREATE USER django_user WITH PASSWORD 'your_password';\r\nGRANT ALL PRIVILEGES ON DATABASE django_db TO django_user;\r\n\\q<\/code><\/pre>\n<p>Replace <code>your_password<\/code> with a strong password for the Django user.<\/p>\n<\/section>\n<section>\n<h2>Step 5: Install Django<\/h2>\n<p>Use pip to install Django and Gunicorn:<\/p>\n<pre><code>pip3 install django gunicorn psycopg2-binary<\/code><\/pre>\n<\/section>\n<section>\n<h2>Step 6: Create a Django Project<\/h2>\n<p>Create a new Django project:<\/p>\n<pre><code>django-admin startproject myproject<\/code><\/pre>\n<p>Change into the project directory:<\/p>\n<pre><code>cd myproject<\/code><\/pre>\n<\/section>\n<section>\n<h2>Step 7: Configure Django for PostgreSQL<\/h2>\n<p>Edit the <code>settings.py<\/code> file in your Django project:<\/p>\n<pre><code>nano myproject\/settings.py<\/code><\/pre>\n<p>Find the <code>DATABASES<\/code> section and update it as follows:<\/p>\n<pre><code>DATABASES = {\r\n    'default': {\r\n        'ENGINE': 'django.db.backends.postgresql',\r\n        'NAME': 'django_db',\r\n        'USER': 'django_user',\r\n        'PASSWORD': 'your_password',\r\n        'HOST': 'localhost',\r\n        'PORT': '',\r\n    }\r\n}<\/code><\/pre>\n<p>Replace <code>your_password<\/code> with the password you set for the Django user.<\/p>\n<\/section>\n<section>\n<h2>Step 8: Migrate Database<\/h2>\n<p>Run the following commands to apply migrations and create a superuser:<\/p>\n<pre><code>python3 manage.py migrate\r\npython3 manage.py createsuperuser<\/code><\/pre>\n<p>Follow the prompts to set up the superuser account.<\/p>\n<\/section>\n<section>\n<h2>Step 9: Test Django Development Server<\/h2>\n<p>Run the Django development server to test your installation:<\/p>\n<pre><code>python3 manage.py runserver 0.0.0.0:8000<\/code><\/pre>\n<p>Open your web browser and navigate to <code>http:\/\/your_server_ip:8000<\/code> to see your Django application.<\/p>\n<\/section>\n<section>\n<h2>Step 10: Configure Gunicorn<\/h2>\n<p>Run Gunicorn to serve your Django application:<\/p>\n<pre><code>gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application<\/code><\/pre>\n<\/section>\n<section>\n<h2>Step 11: Configure Nginx for Django<\/h2>\n<p>Create a new Nginx configuration file for your Django application:<\/p>\n<pre><code>sudo nano \/etc\/nginx\/conf.d\/myproject.conf<\/code><\/pre>\n<p>Add the following configuration:<\/p>\n<pre><code>server {\r\n    listen 80;\r\n    server_name yourdomain.com;\r\n\r\n    location = \/favicon.ico { access_log off; log_not_found off; }\r\n    location \/static\/ {\r\n        root \/path\/to\/your\/myproject;  # Update with your project path\r\n    }\r\n\r\n    location \/ {\r\n        include proxy_params;\r\n        proxy_pass http:\/\/127.0.0.1:8000;\r\n    }\r\n}<\/code><\/pre>\n<p>Replace <code>yourdomain.com<\/code> with your actual domain name and update the root path accordingly.<\/p>\n<\/section>\n<section>\n<h2>Step 12: Restart Nginx<\/h2>\n<p>Restart Nginx to apply the changes:<\/p>\n<pre><code>sudo systemctl restart nginx<\/code><\/pre>\n<\/section>\n<section>\n<h2>Step 13: Enable SSL with Let&#8217;s Encrypt (Optional)<\/h2>\n<p>Install Certbot for obtaining SSL certificates:<\/p>\n<pre><code>sudo dnf install certbot python3-certbot-nginx -y<\/code><\/pre>\n<p>Run Certbot to obtain your SSL certificate:<\/p>\n<pre><code>sudo certbot --nginx -d yourdomain.com<\/code><\/pre>\n<p>Follow the prompts to complete the installation of the SSL certificate.<\/p>\n<\/section>\n<section>\n<h2>Step 14: Conclusion<\/h2>\n<p>You have successfully installed Django with PostgreSQL, Nginx, and Gunicorn on Rocky Linux 9. This robust web application setup can significantly benefit from being hosted on a . For additional options, explore various  solutions, including <a href=\"https:\/\/ie.netcloud24.com\">Windows VPSVirtual Private Server Hosting<\/a> and <a href=\"https:\/\/ie.netcloud24.com\">Windows VPS Hosting UK<\/a> for optimal performance and security.<\/p>\n<\/section>\n<\/article>\n<footer>\n<p>\u00a9 2024 Django Installation Tutorial. All rights reserved.<\/p>\n<\/footer>\n<div class=\"post-author-box\" style=\"border-top:1px solid #ddd;margin-top:20px;padding-top:15px;\">\n<p><strong>Author:<\/strong> \u0141ukasz Bodziony<\/p>\n<p><strong>Website:<\/strong> <a href=\"https:\/\/ca.netcloud24.com\" target=\"_blank\" rel=\"dofollow\">Windows VPS<\/a><\/p>\n<p><em>\u0141ukasz Bodziony is the CEO and founder of <a href=\"https:\/\/netcloud24.com\" target=\"_blank\" rel=\"dofollow\">NETCLOUD24<\/a>, a global VPS hosting brand proudly originating from Poland. With extensive experience in cloud computing, virtualization, and server management, he delivers high-performance <strong>Windows VPS<\/strong> and <strong>Remote Desktop Services (RDS)<\/strong> solutions to clients across Europe, North America, and beyond.<\/em><\/p>\n<p><em>His expertise covers a wide range of technologies, including <strong>Microsoft Azure<\/strong>, <strong>Proxmox VE<\/strong>, <strong>Amazon Web Services (AWS)<\/strong>, and numerous other virtualization and cloud platforms.<\/em><\/p>\n<p><em>Beyond running his hosting business, \u0141ukasz also provides <strong>professional paid server configuration and optimization services<\/strong> for companies and individuals. Outside of work, he is dedicated to caring for his children and building a secure future for them.<\/em><\/p>\n<p><em>If you are interested in working with him or need expert assistance with your hosting, cloud environment, or server setup, feel free to reach out via <a href=\"https:\/\/ca.netcloud24.com\" target=\"_blank\" rel=\"dofollow\">Windows VPS<\/a>.<\/em><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0 \u00a0 Introduction Django is a powerful web framework that allows developers to create robust web applications quickly. In this guide, you will learn how to install Django\u2026<\/p>\n","protected":false},"author":1,"featured_media":3421,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[],"tags":[14,12,11,23,20,21,22,17,7,8,6,10,18,19,15,24,16,5,13,9],"class_list":["post-2186","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-cheapvps","tag-cloudvps","tag-hostingvps","tag-rds","tag-rdscal","tag-remotedesktop","tag-remotedesktopvps","tag-servervps","tag-ukvps","tag-virtualserver","tag-vpshosting","tag-vpsserver","tag-vpssolutions","tag-vpswindows","tag-vpswithwindows","tag-windowsrds","tag-windowsserver","tag-windowsvps","tag-windowsvpshosting","tag-windowsvpsuk"],"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/2186","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/comments?post=2186"}],"version-history":[{"count":0,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/2186\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/media\/3421"}],"wp:attachment":[{"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/media?parent=2186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/categories?post=2186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netcloud24.com\/knowledgebase\/wp-json\/wp\/v2\/tags?post=2186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}