{"title":"Checklista för driftsättning","version":"5.2","locale":"sv","docname":"howto/deployment/checklist","url":"/sv/5.2/howto/deployment/checklist/","canonical":"https://djangodocs.dev/sv/5.2/howto/deployment/checklist/","summary":"Internet är en fientlig miljö. Innan du distribuerar ditt Django-projekt bör du ta dig tid att se över dina inställningar, med tanke på säkerhet, prestanda och…","html":"<h1>Checklista för driftsättning<a class=\"heading-anchor\" href=\"#deployment-checklist\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Internet är en fientlig miljö. Innan du distribuerar ditt Django-projekt bör du ta dig tid att se över dina inställningar, med tanke på säkerhet, prestanda och drift.</p>\n<p>Django innehåller många <a class=\"reference internal\" href=\"/sv/5.2/topics/security/\"><span class=\"doc\">säkerhetsfunktioner</span></a>. Vissa är inbyggda och alltid aktiverade. Andra är valfria eftersom de inte alltid är lämpliga eller för att de är obekväma för utveckling. Att till exempel tvinga fram HTTPS kanske inte är lämpligt för alla webbplatser, och det är opraktiskt för lokal utveckling.</p>\n<p>Prestandaoptimeringar är en annan kategori av kompromisser med bekvämlighet. Cachelagring är till exempel användbart i produktion, men mindre användbart för lokal utveckling. Behoven av felrapportering skiljer sig också mycket åt.</p>\n<p>Följande checklista innehåller inställningar som:</p>\n<ul class=\"simple\">\n<li><p>måste vara korrekt inställd för att Django ska kunna tillhandahålla den förväntade säkerhetsnivån;</p></li>\n<li><p>förväntas vara olika i varje miljö;</p></li>\n<li><p>aktivera valfria säkerhetsfunktioner;</p></li>\n<li><p>möjliggöra prestandaoptimeringar;</p></li>\n<li><p>tillhandahålla felrapportering.</p></li>\n</ul>\n<p>Många av dessa inställningar är känsliga och bör behandlas konfidentiellt. Om du släpper källkoden för ditt projekt är det vanligt att du publicerar lämpliga inställningar för utveckling och använder en privat inställningsmodul för produktion.</p>\n<section id=\"run-manage-py-check-deploy\">\n<h2>Kör <code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">check</span> <span class=\"pre\">--deploy</span></code><a class=\"heading-anchor\" href=\"#run-manage-py-check-deploy\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Vissa av de kontroller som beskrivs nedan kan automatiseras med hjälp av alternativet <a class=\"reference internal\" href=\"/sv/5.2/ref/django-admin/#cmdoption-check-deploy\"><code class=\"xref std std-option docutils literal notranslate\"><span class=\"pre\">check</span> <span class=\"pre\">--deploy</span></code></a>. Var noga med att köra den mot din produktionsinställningsfil enligt beskrivningen i alternativets dokumentation.</p>\n</section>\n<section id=\"switch-away-from-manage-py-runserver\">\n<h2>Byt bort från <code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">runserver</span></code><a class=\"heading-anchor\" href=\"#switch-away-from-manage-py-runserver\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Kommandot <a class=\"reference internal\" href=\"/sv/5.2/ref/django-admin/#django-admin-runserver\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">runserver</span></code></a> är inte utformat för en produktionsmiljö. Var noga med att byta till en produktionsklar WSGI- eller ASGI-server. För några vanliga alternativ, se <a class=\"reference internal\" href=\"/sv/5.2/howto/deployment/wsgi/\"><span class=\"doc\">WSGI-servrar</span></a> eller <a class=\"reference internal\" href=\"/sv/5.2/howto/deployment/asgi/\"><span class=\"doc\">ASGI-servrar</span></a>.</p>\n</section>\n<section id=\"critical-settings\">\n<h2>Kritiska inställningar<a class=\"heading-anchor\" href=\"#critical-settings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"secret-key\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code></a><a class=\"heading-anchor\" href=\"#secret-key\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Den hemliga nyckeln måste vara ett stort slumpmässigt värde och den måste hållas hemlig</p>\n<p>Se till att den nyckel som används i produktionen inte används någon annanstans och undvik att lägga den i källkontrollen. Detta minskar antalet vektorer från vilka en angripare kan få tag på nyckeln.</p>\n<p>Istället för att hårdkoda den hemliga nyckeln i din inställningsmodul kan du ladda den från en miljövariabel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">os</span>\n\n<span class=\"n\">SECRET_KEY</span> <span class=\"o\">=</span> <span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">&quot;SECRET_KEY&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>eller från en fil:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">with</span> <span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;/etc/secret_key.txt&quot;</span><span class=\"p\">)</span> <span class=\"k\">as</span> <span class=\"n\">f</span><span class=\"p\">:</span>\n    <span class=\"n\">SECRET_KEY</span> <span class=\"o\">=</span> <span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">strip</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>Om du roterar hemliga nycklar kan du använda <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECRET_KEY_FALLBACKS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY_FALLBACKS</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">os</span>\n\n<span class=\"n\">SECRET_KEY</span> <span class=\"o\">=</span> <span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">&quot;CURRENT_SECRET_KEY&quot;</span><span class=\"p\">]</span>\n<span class=\"n\">SECRET_KEY_FALLBACKS</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">&quot;OLD_SECRET_KEY&quot;</span><span class=\"p\">],</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Se till att gamla hemliga nycklar tas bort från <code class=\"docutils literal notranslate\"><span class=\"pre\">SECRET_KEY_FALLBACKS</span></code> i god tid.</p>\n</section>\n<section id=\"debug\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a><a class=\"heading-anchor\" href=\"#debug\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a href=\"#id1\"><span class=\"problematic\" id=\"id2\">**</span></a>Du får aldrig aktivera debug i produktion</p>\n<p>Du utvecklar säkert ditt projekt med <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span> <span class=\"pre\">=</span> <span class=\"pre\">True</span></code></a>, eftersom detta möjliggör praktiska funktioner som fullständiga spårningar i din webbläsare.</p>\n<p>För en produktionsmiljö är detta dock en riktigt dålig idé, eftersom det läcker ut massor av information om ditt projekt: utdrag ur källkoden, lokala variabler, inställningar, bibliotek som används osv.</p>\n</section>\n</section>\n<section id=\"environment-specific-settings\">\n<h2>Miljöspecifika inställningar<a class=\"heading-anchor\" href=\"#environment-specific-settings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"allowed-hosts\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-ALLOWED_HOSTS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ALLOWED_HOSTS</span></code></a><a class=\"heading-anchor\" href=\"#allowed-hosts\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>När <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span> <span class=\"pre\">=</span> <span class=\"pre\">False</span></code></a>, fungerar inte Django alls utan ett lämpligt värde för <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-ALLOWED_HOSTS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ALLOWED_HOSTS</span></code></a>.</p>\n<p>Denna inställning krävs för att skydda din webbplats mot vissa CSRF-attacker. Om du använder ett jokertecken måste du utföra en egen validering av HTTP-headern <code class=\"docutils literal notranslate\"><span class=\"pre\">Host</span></code> eller på annat sätt säkerställa att du inte är sårbar för denna typ av attacker.</p>\n<p>Du bör också konfigurera webbservern som sitter framför Django för att validera värden. Den bör svara med en statisk felsida eller ignorera förfrågningar om felaktiga värdar istället för att vidarebefordra förfrågan till Django. På så sätt undviker du falska fel i dina Django-loggar (eller e-postmeddelanden om du har felrapportering konfigurerad på det sättet). På nginx kan du till exempel ställa in en standardserver för att returnera ”444 No Response” på en okänd värd:</p>\n<div class=\"code-block\" data-language=\"nginx\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Nginx</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Nginx code\"><code><span class=\"k\">server</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">    </span><span class=\"kn\">listen</span><span class=\"w\"> </span><span class=\"mi\">80</span><span class=\"w\"> </span><span class=\"s\">default_server</span><span class=\"p\">;</span>\n<span class=\"w\">    </span><span class=\"kn\">return</span><span class=\"w\"> </span><span class=\"mi\">444</span><span class=\"p\">;</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n</section>\n<section id=\"caches\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-CACHES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHES</span></code></a><a class=\"heading-anchor\" href=\"#caches\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Om du använder en cache kan anslutningsparametrarna vara olika i utveckling och i produktion. Django använder som standard <a class=\"reference internal\" href=\"/sv/5.2/topics/cache/#local-memory-caching\"><span class=\"std std-ref\">lokal minnescachning</span></a> per process, vilket kanske inte är önskvärt.</p>\n<p>Cacheservrar har ofta svag autentisering. Se till att de bara accepterar anslutningar från dina applikationsservrar.</p>\n</section>\n<section id=\"databases\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-DATABASES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATABASES</span></code></a><a class=\"heading-anchor\" href=\"#databases\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Parametrarna för databasanslutningen är förmodligen olika i utvecklings- och produktionsfasen.</p>\n<p>Databaslösenord är mycket känsliga. Du bör skydda dem på exakt samma sätt som <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code></a>.</p>\n<p>För maximal säkerhet bör du se till att databasservrarna endast accepterar anslutningar från dina applikationsservrar.</p>\n<p>Om du inte har skapat säkerhetskopior för din databas ska du göra det nu!</p>\n</section>\n<section id=\"email-backend-and-related-settings\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-EMAIL_BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_BACKEND</span></code></a> och relaterade inställningar<a class=\"heading-anchor\" href=\"#email-backend-and-related-settings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Om din webbplats skickar e-post måste dessa värden vara korrekt inställda.</p>\n<p>Som standard skickar Django e-post från <a class=\"reference external\" href=\"mailto:webmaster&#37;&#52;&#48;localhost\">webmaster<span>&#64;</span>localhost</a> och <a class=\"reference external\" href=\"mailto:root&#37;&#52;&#48;localhost\">root<span>&#64;</span>localhost</a>. Vissa e-postleverantörer avvisar dock e-post från dessa adresser. Om du vill använda andra avsändaradresser ändrar du inställningarna <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-DEFAULT_FROM_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_FROM_EMAIL</span></code></a> och <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SERVER_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SERVER_EMAIL</span></code></a>.</p>\n</section>\n<section id=\"static-root-and-static-url\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> och <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a><a class=\"heading-anchor\" href=\"#static-root-and-static-url\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Statiska filer serveras automatiskt av utvecklingsservern. I produktion måste du definiera en <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a>-katalog där <a class=\"reference internal\" href=\"/sv/5.2/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> kommer att kopiera dem.</p>\n<p>Se <a class=\"reference internal\" href=\"/sv/5.2/howto/static-files/\"><span class=\"doc\">Hur man hanterar statiska filer (t.ex. bilder, JavaScript, CSS)</span></a> för mer information.</p>\n</section>\n<section id=\"media-root-and-media-url\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_ROOT</span></code></a> och <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a><a class=\"heading-anchor\" href=\"#media-root-and-media-url\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Mediefiler laddas upp av dina användare. De är inte pålitliga! Se till att din webbserver aldrig försöker tolka dem. Om en användare t.ex. laddar upp en <code class=\"docutils literal notranslate\"><span class=\"pre\">.php</span></code>-fil ska webbservern inte köra den.</p>\n<p>Nu är det ett bra tillfälle att kontrollera din backup-strategi för dessa filer.</p>\n</section>\n</section>\n<section id=\"https\">\n<h2>HTTPS<a class=\"heading-anchor\" href=\"#https\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Alla webbplatser som tillåter användare att logga in bör tillämpa HTTPS på hela webbplatsen för att undvika att skicka access-tokens i klartext. I Django inkluderar access tokens inloggning/lösenord, sessionscookien och lösenordsåterställningstoken (du kan inte göra mycket för att skydda lösenordsåterställningstoken om du skickar dem via e-post)</p>\n<p>Att skydda känsliga områden som användarkontot eller administratören är inte tillräckligt, eftersom samma sessionskaka används för HTTP och HTTPS. Din webbserver måste omdirigera all HTTP-trafik till HTTPS och endast överföra HTTPS-förfrågningar till Django.</p>\n<p>När du har ställt in HTTPS aktiverar du följande inställningar.</p>\n<section id=\"csrf-cookie-secure\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-CSRF_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_SECURE</span></code></a><a class=\"heading-anchor\" href=\"#csrf-cookie-secure\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ställ in detta på <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> för att undvika att CSRF-cookien oavsiktligt överförs via HTTP.</p>\n</section>\n<section id=\"session-cookie-secure\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SESSION_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_SECURE</span></code></a><a class=\"heading-anchor\" href=\"#session-cookie-secure\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Ställ in detta på <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> för att undvika att sessionscookien oavsiktligt överförs via HTTP.</p>\n</section>\n</section>\n<section id=\"performance-optimizations\">\n<h2>Optimering av prestanda<a class=\"heading-anchor\" href=\"#performance-optimizations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Inställning <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span> <span class=\"pre\">=</span> <span class=\"pre\">False</span></code></a> inaktiverar flera funktioner som bara är användbara under utveckling. Dessutom kan du justera följande inställningar.</p>\n<section id=\"sessions\">\n<h3>Sessioner<a class=\"heading-anchor\" href=\"#sessions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Överväg att använda <a class=\"reference internal\" href=\"/sv/5.2/topics/http/sessions/#cached-sessions-backend\"><span class=\"std std-ref\">cachade sessioner</span></a> för att förbättra prestandan.</p>\n<p>Om du använder databaserade sessioner bör du regelbundet <a class=\"reference internal\" href=\"/sv/5.2/topics/http/sessions/#clearing-the-session-store\"><span class=\"std std-ref\">rensa gamla sessioner</span></a> för att undvika att onödiga data lagras.</p>\n</section>\n<section id=\"conn-max-age\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-CONN_MAX_AGE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CONN_MAX_AGE</span></code></a><a class=\"heading-anchor\" href=\"#conn-max-age\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Om du aktiverar <a class=\"reference internal\" href=\"/sv/5.2/ref/databases/#persistent-database-connections\"><span class=\"std std-ref\">persistent database connections</span></a> kan det resultera i en trevlig hastighetshöjning när anslutningen till databasen står för en betydande del av bearbetningstiden för begäran.</p>\n<p>Detta är till stor hjälp på virtualiserade värdar med begränsad nätverksprestanda.</p>\n</section>\n<section id=\"templates\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a><a class=\"heading-anchor\" href=\"#templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Om du aktiverar den cachade mallladdaren förbättras prestandan ofta drastiskt, eftersom du slipper kompilera varje mall varje gång den ska renderas. När <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span> <span class=\"pre\">=</span> <span class=\"pre\">False</span></code></a>, aktiveras den cachade mallladdaren automatiskt. Se <a class=\"reference internal\" href=\"/sv/5.2/ref/templates/api/#django.template.loaders.cached.Loader\" title=\"django.template.loaders.cached.Loader\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.template.loaders.cached.Loader</span></code></a> för mer information.</p>\n</section>\n</section>\n<section id=\"error-reporting\">\n<h2>Felrapportering<a class=\"heading-anchor\" href=\"#error-reporting\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>När du väl skickar din kod till produktion är den förhoppningsvis robust, men du kan inte utesluta oväntade fel. Tack och lov kan Django fånga upp fel och meddela dig om detta.</p>\n<section id=\"logging\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-LOGGING\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOGGING</span></code></a><a class=\"heading-anchor\" href=\"#logging\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Se över din loggningskonfiguration innan du sätter din webbplats i produktion och kontrollera att den fungerar som förväntat så snart du har fått lite trafik.</p>\n<p>Se <a class=\"reference internal\" href=\"/sv/5.2/topics/logging/\"><span class=\"doc\">Loggning</span></a> för mer information om loggning.</p>\n</section>\n<section id=\"admins-and-managers\">\n<h3><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-ADMINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ADMINS</span></code></a> och <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-MANAGERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MANAGERS</span></code></a><a class=\"heading-anchor\" href=\"#admins-and-managers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-ADMINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ADMINS</span></code></a> kommer att meddelas om 500 fel via e-post.</p>\n<p><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-MANAGERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MANAGERS</span></code></a> kommer att meddelas om 404-fel. <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-IGNORABLE_404_URLS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">IGNORABLE_404_URLS</span></code></a> kan hjälpa till att filtrera bort felaktiga rapporter.</p>\n<p>Se <a class=\"reference internal\" href=\"/sv/5.2/howto/error-reporting/\"><span class=\"doc\">Hur man hanterar felrapportering</span></a> för mer information om felrapportering via e-post.</p>\n<aside class=\"admonition-error-reporting-by-email-doesn-t-scale-very-well admonition\">\n<p class=\"admonition-title\">Felrapportering via e-post skalar inte särskilt bra</p>\n<p>Överväg att använda ett felövervakningssystem som <a class=\"reference external\" href=\"https://docs.sentry.io/\">Sentry</a> innan din inkorg översvämmas av rapporter. Sentry kan också samla ihop loggar.</p>\n</aside>\n</section>\n<section id=\"customize-the-default-error-views\">\n<h3>Anpassa standardvyerna för fel<a class=\"heading-anchor\" href=\"#customize-the-default-error-views\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Django innehåller standardvyer och mallar för flera HTTP-felkoder. Du kanske vill åsidosätta standardmallarna genom att skapa följande mallar i din rotmallkatalog: <code class=\"docutils literal notranslate\"><span class=\"pre\">404.html</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">500.html</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">403.html</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">400.html</span></code>. De <a class=\"reference internal\" href=\"/sv/5.2/ref/views/#error-views\"><span class=\"std std-ref\">standardfelvyer</span></a> som använder dessa mallar bör räcka för 99% of webbapplikationer, men du kan <a class=\"reference internal\" href=\"/sv/5.2/topics/http/views/#customizing-error-views\"><span class=\"std std-ref\">anpassa dem</span></a> också.</p>\n</section>\n</section>","rootId":"deployment-checklist","toc":[{"title":"Kör manage.py check --deploy","anchor":"run-manage-py-check-deploy","children":[]},{"title":"Byt bort från manage.py runserver","anchor":"switch-away-from-manage-py-runserver","children":[]},{"title":"Kritiska inställningar","anchor":"critical-settings","children":[{"title":"SECRET_KEY","anchor":"secret-key","children":[]},{"title":"DEBUG","anchor":"debug","children":[]}]},{"title":"Miljöspecifika inställningar","anchor":"environment-specific-settings","children":[{"title":"ALLOWED_HOSTS","anchor":"allowed-hosts","children":[]},{"title":"CACHES","anchor":"caches","children":[]},{"title":"DATABASES","anchor":"databases","children":[]},{"title":"EMAIL_BACKEND och relaterade inställningar","anchor":"email-backend-and-related-settings","children":[]},{"title":"STATIC_ROOT och STATIC_URL","anchor":"static-root-and-static-url","children":[]},{"title":"MEDIA_ROOT och MEDIA_URL","anchor":"media-root-and-media-url","children":[]}]},{"title":"HTTPS","anchor":"https","children":[{"title":"CSRF_COOKIE_SECURE","anchor":"csrf-cookie-secure","children":[]},{"title":"SESSION_COOKIE_SECURE","anchor":"session-cookie-secure","children":[]}]},{"title":"Optimering av prestanda","anchor":"performance-optimizations","children":[{"title":"Sessioner","anchor":"sessions","children":[]},{"title":"CONN_MAX_AGE","anchor":"conn-max-age","children":[]},{"title":"TEMPLATES","anchor":"templates","children":[]}]},{"title":"Felrapportering","anchor":"error-reporting","children":[{"title":"LOGGING","anchor":"logging","children":[]},{"title":"ADMINS och MANAGERS","anchor":"admins-and-managers","children":[]},{"title":"Anpassa standardvyerna för fel","anchor":"customize-the-default-error-views","children":[]}]}],"breadcrumbs":[{"docname":"howto/index","title":"Hur man gör-guider","url":"/sv/5.2/howto/"},{"docname":"howto/deployment/index","title":"Så här distribuerar du Django","url":"/sv/5.2/howto/deployment/"}],"prev":{"docname":"howto/deployment/asgi/uvicorn","title":"Så här använder du Django med Uvicorn","url":"/sv/5.2/howto/deployment/asgi/uvicorn/"},"next":{"docname":"howto/static-files/deployment","title":"Så här distribuerar du statiska filer","url":"/sv/5.2/howto/static-files/deployment/"},"formats":{"html":"/sv/5.2/howto/deployment/checklist/","markdown":"/sv/5.2/howto/deployment/checklist.md","json":"/sv/5.2/howto/deployment/checklist.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/howto/deployment/checklist.txt","official":"https://docs.djangoproject.com/sv/5.2/howto/deployment/checklist/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}