{"id":184,"date":"2025-06-14T23:26:22","date_gmt":"2025-06-14T21:26:22","guid":{"rendered":"https:\/\/netcloud24.com\/pl\/blog\/?p=184"},"modified":"2025-06-14T23:26:32","modified_gmt":"2025-06-14T21:26:32","slug":"jak-zainstalowac-django-na-ubuntu-22-04-jammy-jellyfish","status":"publish","type":"post","link":"https:\/\/netcloud24.com\/pl\/blog\/jak-zainstalowac-django-na-ubuntu-22-04-jammy-jellyfish\/","title":{"rendered":"Jak zainstalowa\u0107 Django na Ubuntu\u00a022.04 (Jammy Jellyfish)"},"content":{"rendered":"<p><strong>Autor:<\/strong><\/p>\n<article>\n<header>\n<p class=\"byline\"><a title=\"Us\u0142ugi DevOps \u2013 \u0141ukasz Bodziony\" href=\"https:\/\/bodziony.net.pl\/\" target=\"_blank\" rel=\"noopener\">\u0141ukasz\u00a0Bodziony<br \/>\n<\/a><\/p>\n<p><strong>Django<\/strong> to pot\u0119\u017cny framework webowy w\u00a0Pythonie, kt\u00f3ry przyspiesza budow\u0119 skalowalnych<br \/>\naplikacji. Poni\u017cej znajdziesz krok-po-kroku, jak wdro\u017cy\u0107 Django\u00a05.x na Ubuntu 22.04,<br \/>\nniezale\u017cnie od tego, czy korzystasz z<br \/>\n<a title=\"serwer vps\" href=\"https:\/\/netcloud24.com\/serwery\/vps-linux\/\">serwera\u00a0VPS<\/a>,<br \/>\n<a title=\"serwer dedykowany\" href=\"https:\/\/netcloud24.com\/serwery\/vps-linux\/\">serwera dedykowanego<\/a><br \/>\nczy elastycznego <a title=\"vps linux\" href=\"https:\/\/netcloud24.com\/serwery\/vps-linux\/\">VPS\u00a0Linux<\/a><br \/>\nod NetCloud24.<\/p>\n<\/header>\n<p><!-- 1. Wymagania --><\/p>\n<section id=\"wymagania\">\n<h2>1\u00a0\u00b7\u00a0Wymagania wst\u0119pne<\/h2>\n<ul>\n<li>Ubuntu\u00a022.04\u00a0LTS\u00a064-bit.<\/li>\n<li>U\u017cytkownik z uprawnieniami <code>sudo<\/code>.<\/li>\n<li>Python\u00a03.10 (domy\u015blny w Ubuntu 22.04).<\/li>\n<li>Dost\u0119p do port\u00f3w <code>80<\/code> i <code>443<\/code> (Nginx).<\/li>\n<\/ul>\n<p>Je\u015bli szukasz stabilnej infrastruktury, postaw projekt na<br \/>\n<strong>serwerze\u00a0VPS<\/strong> lub <strong>serwerze dedykowanym<\/strong><br \/>\nNetCloud24. Opcja <strong>VPS\u00a0Linux<\/strong> oferuje \u0142atwe skalowanie CPU\/RAM<br \/>\ni migawki dla bezpiecznych aktualizacji.<\/p>\n<\/section>\n<p><!-- 2. Aktualizacje i pakiety --><\/p>\n<section id=\"aktualizacje\">\n<h2>2\u00a0\u00b7\u00a0Aktualizacja systemu i instalacja pakiet\u00f3w<\/h2>\n<pre><code class=\"language-bash\">sudo apt update &amp;&amp; sudo apt upgrade -y\r\nsudo apt install -y python3-pip python3-venv nginx git<\/code><\/pre>\n<\/section>\n<p><!-- 3. \u015arodowisko wirtualne --><\/p>\n<section id=\"venv\">\n<h2>3\u00a0\u00b7\u00a0Tworzenie \u015brodowiska wirtualnego<\/h2>\n<pre><code class=\"language-bash\">mkdir ~\/myproject &amp;&amp; cd ~\/myproject\r\npython3 -m venv venv\r\nsource venv\/bin\/activate<\/code><\/pre>\n<p>Aktywne \u015brodowisko wirtualne izoluje zale\u017cno\u015bci projektu.<\/p>\n<\/section>\n<p><!-- 4. Instalacja Django --><\/p>\n<section id=\"django-install\">\n<h2>4\u00a0\u00b7\u00a0Instalacja Django<\/h2>\n<pre><code class=\"language-bash\">pip install --upgrade pip\r\npip install django gunicorn<\/code><\/pre>\n<p>Zweryfikuj wersj\u0119:<\/p>\n<pre><code class=\"language-bash\">python -m django --version<\/code><\/pre>\n<\/section>\n<p><!-- 5. Utworzenie projektu --><\/p>\n<section id=\"startproject\">\n<h2>5\u00a0\u00b7\u00a0Utworzenie projektu Django<\/h2>\n<pre><code class=\"language-bash\">django-admin startproject mysite .\r\npython manage.py migrate\r\npython manage.py createsuperuser<\/code><\/pre>\n<p>Sprawd\u017a lokalnie:<\/p>\n<pre><code class=\"language-bash\">python manage.py runserver 0.0.0.0:8000<\/code><\/pre>\n<p>Wejd\u017a na <code>http:\/\/YOUR_IP:8000<\/code> \u2013 je\u015bli widzisz stron\u0119 powitaln\u0105, wszystko dzia\u0142a.<\/p>\n<\/section>\n<p><!-- 6. Gunicorn --><\/p>\n<section id=\"gunicorn\">\n<h2>6\u00a0\u00b7\u00a0Konfiguracja Gunicorn jako us\u0142ugi systemd<\/h2>\n<pre><code class=\"language-bash\">sudo nano \/etc\/systemd\/system\/gunicorn.service<\/code><\/pre>\n<pre><code class=\"language-ini\">[Unit]\r\nDescription=gunicorn daemon\r\nAfter=network.target\r\n\r\n[Service]\r\nUser=$USER\r\nGroup=www-data\r\nWorkingDirectory=\/home\/$USER\/myproject\r\nEnvironment=\"PATH=\/home\/$USER\/myproject\/venv\/bin\"\r\nExecStart=\/home\/$USER\/myproject\/venv\/bin\/gunicorn \\\r\n  --workers 3 --bind unix:\/home\/$USER\/myproject\/gunicorn.sock mysite.wsgi:application\r\n\r\n[Install]\r\nWantedBy=multi-user.target<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo systemctl daemon-reload\r\nsudo systemctl enable --now gunicorn\r\nsudo systemctl status gunicorn<\/code><\/pre>\n<\/section>\n<p><!-- 7. Nginx --><\/p>\n<section id=\"nginx\">\n<h2>7\u00a0\u00b7\u00a0Reverse\u00a0proxy Nginx<\/h2>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/mysite<\/code><\/pre>\n<pre><code class=\"language-nginx\">server {\r\n    listen 80;\r\n    server_name ;\r\n\r\n    location = \/favicon.ico { access_log off; log_not_found off; }\r\n    location \/static\/  { root \/home\/$USER\/myproject; }\r\n\r\n    location \/ {\r\n        include proxy_params;\r\n        proxy_pass http:\/\/unix:\/home\/$USER\/myproject\/gunicorn.sock;\r\n    }\r\n}<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/mysite \/etc\/nginx\/sites-enabled\r\nsudo nginx -t &amp;&amp; sudo systemctl restart nginx<\/code><\/pre>\n<p>W tym momencie Twoja aplikacja Django jest dost\u0119pna na porcie\u00a080.<br \/>\nNa <strong>serwerze VPS<\/strong> NetCloud24 mo\u017cesz doda\u0107 certyfikat<br \/>\n<code>certbot<\/code> dla HTTPS w jednym poleceniu.<\/p>\n<\/section>\n<p><!-- 8. Podsumowanie --><\/p>\n<section id=\"podsumowanie\">\n<h2>8\u00a0\u00b7\u00a0Podsumowanie<\/h2>\n<p>Gratulacje! Framework Django dzia\u0142a na Ubuntu\u00a022.04 z\u00a0Gunicorn i\u00a0Nginx.<br \/>\nDzi\u0119ki <a title=\"vps linux\" href=\"https:\/\/netcloud24.com\/serwery\/vps-linux\/\">VPS\u00a0Linux<\/a>,<br \/>\n<a title=\"serwer vps\" href=\"https:\/\/netcloud24.com\/serwery\/vps-linux\/\">serwerowi\u00a0VPS<\/a> albo<br \/>\n<a title=\"serwer dedykowany\" href=\"https:\/\/netcloud24.com\/serwery\/vps-linux\/\">serwerowi dedykowanemu<\/a><br \/>\nNetCloud24 mo\u017cesz w\u00a0kilku klikni\u0119ciach skalowa\u0107 zasoby, klonowa\u0107 \u015brodowiska<br \/>\ni\u00a0wdra\u017ca\u0107 kolejne aplikacje Django bez przestoj\u00f3w.<\/p>\n<p>Potrzebujesz profesjonalnego wsparcia DevOps? Odwied\u017a<br \/>\n<a title=\"Us\u0142ugi DevOps \u0141ukasz Bodziony\" href=\"https:\/\/bodziony.net.pl\/\" target=\"_blank\" rel=\"noopener\"><br \/>\nbodziony.net.pl<br \/>\n<\/a><br \/>\ni dowiedz si\u0119, jak mog\u0119 pom\u00f3c w optymalizacji Twojej infrastruktury.<\/p>\n<\/section>\n<\/article>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Autor: \u0141ukasz\u00a0Bodziony Django to pot\u0119\u017cny framework webowy w\u00a0Pythonie, kt\u00f3ry przyspiesza budow\u0119 skalowalnych aplikacji. Poni\u017cej znajdziesz krok-po-kroku, jak wdro\u017cy\u0107 Django\u00a05.x na Ubuntu 22.04, niezale\u017cnie od tego,\u2026<\/p>\n","protected":false},"author":1,"featured_media":185,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-184","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/posts\/184","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/comments?post=184"}],"version-history":[{"count":1,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/posts\/184\/revisions"}],"predecessor-version":[{"id":186,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/posts\/184\/revisions\/186"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/media\/185"}],"wp:attachment":[{"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/media?parent=184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/categories?post=184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netcloud24.com\/pl\/blog\/wp-json\/wp\/v2\/tags?post=184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}