<!DOCTYPE html> <html lang="en" dir="ltr" itemscope itemtype="http://schema.org/Article" data-r-output-format="print"> <head> <meta charset="utf-8"> <meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, minimum-scale=1.0"> <meta name="generator" content="Hugo 0.140.0"> <meta name="generator" content="Relearn 7.2.1+f1701957c30daae7cd133bec5a7968480563ce9f"> <meta name="description" content="Options for specific deployment needs"> <meta name="author" content="Sören Weber"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:image" content="https://mcshelby.github.io/hugo-theme-relearn/images/hero.png"> <meta name="twitter:title" content="Deployment Scenarios :: Hugo Relearn Theme"> <meta name="twitter:description" content="Options for specific deployment needs"> <meta property="og:url" content="https://mcshelby.github.io/hugo-theme-relearn/configuration/sitemanagement/deployment/index.html"> <meta property="og:site_name" content="Hugo Relearn Theme"> <meta property="og:title" content="Deployment Scenarios :: Hugo Relearn Theme"> <meta property="og:description" content="Options for specific deployment needs"> <meta property="og:locale" content="en"> <meta property="og:type" content="website"> <meta property="og:image" content="https://mcshelby.github.io/hugo-theme-relearn/images/hero.png"> <meta itemprop="name" content="Deployment Scenarios :: Hugo Relearn Theme"> <meta itemprop="description" content="Options for specific deployment needs"> <meta itemprop="wordCount" content="307"> <meta itemprop="image" content="https://mcshelby.github.io/hugo-theme-relearn/images/hero.png"> <meta itemprop="keywords" content="Howto"> <title>Deployment Scenarios :: Hugo Relearn Theme</title> <link href="https://mcshelby.github.io/hugo-theme-relearn/configuration/sitemanagement/deployment/index.html" rel="alternate" hreflang="x-default"> <link href="https://mcshelby.github.io/hugo-theme-relearn/configuration/sitemanagement/deployment/index.html" rel="alternate" hreflang="en"> <link href="https://mcshelby.github.io/hugo-theme-relearn/pir/configuration/sitemanagement/deployment/index.html" rel="alternate" hreflang="art-x-pir"> <link href="https://mcshelby.github.io/hugo-theme-relearn/configuration/sitemanagement/deployment/index.html" rel="canonical" type="text/html" title="Deployment Scenarios :: Hugo Relearn Theme"> <link href="/hugo-theme-relearn/configuration/sitemanagement/deployment/index.xml" rel="alternate" type="application/rss+xml" title="Deployment Scenarios :: Hugo Relearn Theme"> <link href="/hugo-theme-relearn/images/logo.svg?1734647867" rel="icon" type="image/svg+xml"> <link href="/hugo-theme-relearn/css/fontawesome-all.min.css?1734647867" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/hugo-theme-relearn/css/fontawesome-all.min.css?1734647867" rel="stylesheet"></noscript> <link href="/hugo-theme-relearn/css/auto-complete.css?1734647867" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/hugo-theme-relearn/css/auto-complete.css?1734647867" rel="stylesheet"></noscript> <link href="/hugo-theme-relearn/css/perfect-scrollbar.min.css?1734647867" rel="stylesheet"> <link href="/hugo-theme-relearn/css/theme.min.css?1734647867" rel="stylesheet"> <link href="/hugo-theme-relearn/css/format-print.min.css?1734647867" rel="stylesheet" id="R-format-style"> <script> window.relearn = window.relearn || {}; window.relearn.relBasePath='..\/..\/..'; window.relearn.relBaseUri='..\/..\/..\/..'; window.relearn.absBaseUri='https:\/\/mcshelby.github.io\/hugo-theme-relearn'; window.relearn.min = `.min`; window.relearn.disableAnchorCopy=false; window.relearn.disableAnchorScrolling=false; // variant stuff window.relearn.themevariants = [ 'relearn-auto', 'relearn-light', 'relearn-dark', 'relearn-bright', 'zen-auto', 'zen-light', 'zen-dark', 'retro-auto', 'neon', 'learn', 'blue', 'green', 'red' ]; window.relearn.customvariantname = "my-custom-variant"; window.relearn.changeVariant = function(variant) { var oldVariant = document.documentElement.dataset.rThemeVariant; window.localStorage.setItem(window.relearn.absBaseUri + "/variant", variant); document.documentElement.dataset.rThemeVariant = variant; if (oldVariant != variant) { document.dispatchEvent( new CustomEvent('themeVariantLoaded', { detail: { variant, oldVariant } }) ); } } window.relearn.markVariant = function() { var variant = window.localStorage.getItem(window.relearn.absBaseUri + "/variant"); var select = document.querySelector("#R-select-variant"); if (select) { select.value = variant; } } window.relearn.initVariant = function() { var variant = window.localStorage.getItem(window.relearn.absBaseUri + "/variant") ?? ""; if( variant == window.relearn.customvariantname ){ }else if( !variant || !window.relearn.themevariants.includes(variant) ){ variant = window.relearn.themevariants[0]; window.localStorage.setItem(window.relearn.absBaseUri + "/variant", variant); } document.documentElement.dataset.rThemeVariant = variant; } window.relearn.initVariant(); window.relearn.markVariant(); // translations window.T_Copy_to_clipboard = `Copy to clipboard`; window.T_Copied_to_clipboard = `Copied to clipboard!`; window.T_Copy_link_to_clipboard = `Copy link to clipboard`; window.T_Link_copied_to_clipboard = `Copied link to clipboard!`; window.T_Reset_view = `Reset view`; window.T_View_reset = `View reset!`; window.T_No_results_found = `No results found for "{0}"`; window.T_N_results_found = `{1} results found for "{0}"`; </script> <script src="/hugo-theme-relearn/js/variant.js?1734647867"></script> <style> #R-body img.bg-white { background-color: white; } </style> </head> <body class="mobile-support print disableInlineCopyToClipboard" data-url="/hugo-theme-relearn/configuration/sitemanagement/deployment/index.html"> <div id="R-body" class="default-animation"> <div id="R-body-overlay"></div> <nav id="R-topbar"> <div class="topbar-wrapper"> <div class="topbar-sidebar-divider"></div> <div class="topbar-area topbar-area-start" data-area="start"> <div class="topbar-button topbar-button-sidebar" data-content-empty="disable" data-width-s="show" data-width-m="hide" data-width-l="hide"><button class="topbar-control" onclick="toggleNav()" type="button" title="Menu (CTRL+ALT+n)"><i class="fa-fw fas fa-bars"></i></button> </div> <div class="topbar-button topbar-button-toc" data-content-empty="hide" data-width-s="show" data-width-m="show" data-width-l="show"><button class="topbar-control" onclick="toggleTopbarFlyout(this)" type="button" title="Table of Contents (CTRL+ALT+t)"><i class="fa-fw fas fa-list-alt"></i></button> <div class="topbar-content"> <div class="topbar-content-wrapper"> <nav class="TableOfContents"> <ul> <li><a href="#offline-usage">Offline Usage</a></li> <li><a href="#server-deployment">Server Deployment</a> <ul> <li><a href="#public-web-server-from-root">Public Web Server from Root</a></li> <li><a href="#public-web-server-from-subdirectory">Public Web Server from Subdirectory</a></li> <li><a href="#private-web-server-lan">Private Web Server (LAN)</a></li> <li><a href="#file-system">File System</a></li> </ul> </li> </ul> </nav> </div> </div> </div> </div> <ol class="topbar-breadcrumbs breadcrumbs highlightable" itemscope itemtype="http://schema.org/BreadcrumbList"><li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><a itemprop="item" href="/hugo-theme-relearn/configuration/index.html"><span itemprop="name">Configuration</span></a><meta itemprop="position" content="1"> > </li><li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><a itemprop="item" href="/hugo-theme-relearn/configuration/sitemanagement/index.html"><span itemprop="name">Site Management</span></a><meta itemprop="position" content="2"> > </li><li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><span itemprop="name">Deployment Scenarios</span><meta itemprop="position" content="3"></li> </ol> <div class="topbar-area topbar-area-end" data-area="end"> <div class="topbar-button topbar-button-edit" data-content-empty="disable" data-width-s="area-more" data-width-m="show" data-width-l="show"><a class="topbar-control" href="https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/configuration/sitemanagement/deployment/_index.en.md" target="_self" title="Edit (CTRL+ALT+w)"><i class="fa-fw fas fa-pen"></i></a> </div> <div class="topbar-button topbar-button-print" data-content-empty="disable" data-width-s="area-more" data-width-m="show" data-width-l="show"><a class="topbar-control" href="/hugo-theme-relearn/configuration/sitemanagement/deployment/index.print.html" title="Print whole chapter (CTRL+ALT+p)"><i class="fa-fw fas fa-print"></i></a> </div> <div class="topbar-button topbar-button-prev" data-content-empty="disable" data-width-s="show" data-width-m="show" data-width-l="show"><a class="topbar-control" href="/hugo-theme-relearn/configuration/sitemanagement/meta/index.html" title="Meta Information (🡐)"><i class="fa-fw fas fa-chevron-left"></i></a> </div> <div class="topbar-button topbar-button-next" data-content-empty="disable" data-width-s="show" data-width-m="show" data-width-l="show"><a class="topbar-control" href="/hugo-theme-relearn/configuration/sitemanagement/outputformats/index.html" title="Available Output Formats (🡒)"><i class="fa-fw fas fa-chevron-right"></i></a> </div> <div class="topbar-button topbar-button-more" data-content-empty="hide" data-width-s="show" data-width-m="show" data-width-l="show"><button class="topbar-control" onclick="toggleTopbarFlyout(this)" type="button" title="More"><i class="fa-fw fas fa-ellipsis-v"></i></button> <div class="topbar-content"> <div class="topbar-content-wrapper"> <div class="topbar-area topbar-area-more" data-area="more"> </div> </div> </div> </div> </div> </div> </nav> <div id="R-main-overlay"></div> <main id="R-body-inner" class="highlightable configuration" tabindex="-1"> <div class="flex-block-wrapper"> <article class="default"> <header class="headline"> </header> <h1 id="deployment-scenarios">Deployment Scenarios</h1> <h2 id="offline-usage">Offline Usage</h2> <p>The theme is usable offline. No internet connection is required to load your page. This is achieved by storing all dependencies within the theme.</p> <p>No calls to 3rd party servers, no calling home, no tracking. Privacy friendly.</p> <h2 id="server-deployment">Server Deployment</h2> <p>If your server deployment has no special requirements, you can skip this section and use the <a href="https://gohugo.io/content-management/urls/" rel="external" target="_self">standard Hugo options</a>.</p> <p>For special requirements, the theme is capable of different scenarios, requiring the following mandatory settings in your <code>hugo.toml</code>. All settings not mentioned in the examples below can be set to your liking.</p> <h3 id="public-web-server-from-root">Public Web Server from Root</h3> <div class="tab-panel" data-tab-group="config-code"> <div class="tab-nav"> <div class="tab-nav-title">hugo.</div> <button data-tab-item="toml" class="tab-nav-button tab-panel-style cstyle initial active" tabindex="-1" onclick="switchTab('config-code','toml')" > <span class="tab-nav-text">toml</span> </button> <button data-tab-item="yaml" class="tab-nav-button tab-panel-style cstyle initial" onclick="switchTab('config-code','yaml')" > <span class="tab-nav-text">yaml</span> </button> <button data-tab-item="json" class="tab-nav-button tab-panel-style cstyle initial" onclick="switchTab('config-code','json')" > <span class="tab-nav-text">json</span> </button> </div> <div class="tab-content-container"> <div data-tab-item="toml" class="tab-content tab-panel-style cstyle initial active"> <div class="tab-content-text"> <div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="nx">baseURL</span> <span class="p">=</span> <span class="s1">'https://example.com/'</span></span></span></code></pre></div> </div> </div> <div data-tab-item="yaml" class="tab-content tab-panel-style cstyle initial"> <div class="tab-content-text"> <div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">baseURL</span><span class="p">:</span><span class="w"> </span><span class="l">https://example.com/</span></span></span></code></pre></div> </div> </div> <div data-tab-item="json" class="tab-content tab-panel-style cstyle initial"> <div class="tab-content-text"> <div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span> </span></span><span class="line"><span class="cl"> <span class="nt">"baseURL"</span><span class="p">:</span> <span class="s2">"https://example.com/"</span> </span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div> </div> </div> </div> </div> <h3 id="public-web-server-from-subdirectory">Public Web Server from Subdirectory</h3> <div class="tab-panel" data-tab-group="config-code"> <div class="tab-nav"> <div class="tab-nav-title">hugo.</div> <button data-tab-item="toml" class="tab-nav-button tab-panel-style cstyle initial active" tabindex="-1" onclick="switchTab('config-code','toml')" > <span class="tab-nav-text">toml</span> </button> <button data-tab-item="yaml" class="tab-nav-button tab-panel-style cstyle initial" onclick="switchTab('config-code','yaml')" > <span class="tab-nav-text">yaml</span> </button> <button data-tab-item="json" class="tab-nav-button tab-panel-style cstyle initial" onclick="switchTab('config-code','json')" > <span class="tab-nav-text">json</span> </button> </div> <div class="tab-content-container"> <div data-tab-item="toml" class="tab-content tab-panel-style cstyle initial active"> <div class="tab-content-text"> <div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="nx">baseURL</span> <span class="p">=</span> <span class="s1">'https://example.com/mysite/'</span> </span></span><span class="line"><span class="cl"><span class="nx">relativeURLs</span> <span class="p">=</span> <span class="kc">false</span></span></span></code></pre></div> </div> </div> <div data-tab-item="yaml" class="tab-content tab-panel-style cstyle initial"> <div class="tab-content-text"> <div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">baseURL</span><span class="p">:</span><span class="w"> </span><span class="l">https://example.com/mysite/</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">relativeURLs</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span></span></span></code></pre></div> </div> </div> <div data-tab-item="json" class="tab-content tab-panel-style cstyle initial"> <div class="tab-content-text"> <div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span> </span></span><span class="line"><span class="cl"> <span class="nt">"baseURL"</span><span class="p">:</span> <span class="s2">"https://example.com/mysite/"</span><span class="p">,</span> </span></span><span class="line"><span class="cl"> <span class="nt">"relativeURLs"</span><span class="p">:</span> <span class="kc">false</span> </span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div> </div> </div> </div> </div> <p>If you are still using Hugo’s <code>relref</code> shortcode (which you shouldn’t), you will need <a href="/hugo-theme-relearn/configuration/content/linking/index.html#patching-the-relref-shortcode">further configuration</a>.</p> <details open class=" box cstyle notices warning"> <summary class="box-label"> <i class="fa-fw fas fa-exclamation-triangle"></i> Warning </summary> <div class="box-content"> <p>Don’t use a <code>baseURL</code> with a subdirectory and <code>relativeURLs=true</code> together. <a href="https://github.com/gohugoio/hugo/issues/12130" rel="external" target="_self">Hugo doesn’t apply the <code>baseURL</code> correctly</a> in this case. If you need both, generate your site twice with different settings into separate directories.</p> </div> </details> <h3 id="private-web-server-lan">Private Web Server (LAN)</h3> <p>The same settings as with any of the public web server scenarios or</p> <div class="tab-panel" data-tab-group="config-code"> <div class="tab-nav"> <div class="tab-nav-title">hugo.</div> <button data-tab-item="toml" class="tab-nav-button tab-panel-style cstyle initial active" tabindex="-1" onclick="switchTab('config-code','toml')" > <span class="tab-nav-text">toml</span> </button> <button data-tab-item="yaml" class="tab-nav-button tab-panel-style cstyle initial" onclick="switchTab('config-code','yaml')" > <span class="tab-nav-text">yaml</span> </button> <button data-tab-item="json" class="tab-nav-button tab-panel-style cstyle initial" onclick="switchTab('config-code','json')" > <span class="tab-nav-text">json</span> </button> </div> <div class="tab-content-container"> <div data-tab-item="toml" class="tab-content tab-panel-style cstyle initial active"> <div class="tab-content-text"> <div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="nx">baseURL</span> <span class="p">=</span> <span class="s1">'/'</span> </span></span><span class="line"><span class="cl"><span class="nx">relativeURLs</span> <span class="p">=</span> <span class="kc">true</span></span></span></code></pre></div> </div> </div> <div data-tab-item="yaml" class="tab-content tab-panel-style cstyle initial"> <div class="tab-content-text"> <div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">baseURL</span><span class="p">:</span><span class="w"> </span><span class="l">/</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">relativeURLs</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span></span></span></code></pre></div> </div> </div> <div data-tab-item="json" class="tab-content tab-panel-style cstyle initial"> <div class="tab-content-text"> <div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span> </span></span><span class="line"><span class="cl"> <span class="nt">"baseURL"</span><span class="p">:</span> <span class="s2">"/"</span><span class="p">,</span> </span></span><span class="line"><span class="cl"> <span class="nt">"relativeURLs"</span><span class="p">:</span> <span class="kc">true</span> </span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div> </div> </div> </div> </div> <h3 id="file-system">File System</h3> <p>Your generated site can be used headless without a HTTP server.</p> <p>This can be achieved by using the <code>file://</code> protocol in your browser’s address bar or by double click on a generated <code>*.html</code> file in your file navigation tool.</p> <p>Use the following settings</p> <div class="tab-panel" data-tab-group="config-code"> <div class="tab-nav"> <div class="tab-nav-title">hugo.</div> <button data-tab-item="toml" class="tab-nav-button tab-panel-style cstyle initial active" tabindex="-1" onclick="switchTab('config-code','toml')" > <span class="tab-nav-text">toml</span> </button> <button data-tab-item="yaml" class="tab-nav-button tab-panel-style cstyle initial" onclick="switchTab('config-code','yaml')" > <span class="tab-nav-text">yaml</span> </button> <button data-tab-item="json" class="tab-nav-button tab-panel-style cstyle initial" onclick="switchTab('config-code','json')" > <span class="tab-nav-text">json</span> </button> </div> <div class="tab-content-container"> <div data-tab-item="toml" class="tab-content tab-panel-style cstyle initial active"> <div class="tab-content-text"> <div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="nx">baseURL</span> <span class="p">=</span> <span class="s1">'/'</span> </span></span><span class="line"><span class="cl"><span class="nx">relativeURLs</span> <span class="p">=</span> <span class="kc">true</span></span></span></code></pre></div> </div> </div> <div data-tab-item="yaml" class="tab-content tab-panel-style cstyle initial"> <div class="tab-content-text"> <div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">baseURL</span><span class="p">:</span><span class="w"> </span><span class="l">/</span><span class="w"> </span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">relativeURLs</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span></span></span></code></pre></div> </div> </div> <div data-tab-item="json" class="tab-content tab-panel-style cstyle initial"> <div class="tab-content-text"> <div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span> </span></span><span class="line"><span class="cl"> <span class="nt">"baseURL"</span><span class="p">:</span> <span class="s2">"/"</span><span class="p">,</span> </span></span><span class="line"><span class="cl"> <span class="nt">"relativeURLs"</span><span class="p">:</span> <span class="kc">true</span> </span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div> </div> </div> </div> </div> <details open class=" box cstyle notices note"> <summary class="box-label"> <i class="fa-fw fas fa-exclamation-circle"></i> Note </summary> <div class="box-content"> <p>Pages like <code>sitemap.xml</code> and <code>rss.xml</code>, and social media links will always use absolute URLs. They won’t work with <code>relativeURLs=true</code>.</p> </div> </details> <footer class="footline"> <div class="R-taxonomy taxonomy-categories cstyle" title="Categories" style="--VARIABLE-TAGS-BG-color: var(--INTERNAL-TAG-BG-color);"> <i class="fa-fw fas fa-layer-group"></i> <ul> <li><a class="term-link" href="/hugo-theme-relearn/categories/howto/index.html">Howto</a></li> </ul> </div> </footer> </article> </div> </main> </div> <script src="/hugo-theme-relearn/js/clipboard.min.js?1734647867" defer></script> <script src="/hugo-theme-relearn/js/perfect-scrollbar.min.js?1734647867" defer></script> <script src="/hugo-theme-relearn/js/theme.js?1734647867" defer></script> </body> </html>