Files
OpenSign/docs/self-host/docker/run-locally/index.html
T

61 lines
36 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-self-host/docker/run-locally" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.9.2">
<title data-rh="true">Self-host OpenSign™ with Docker on Linux/MacOS/Windows | OpenSign™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://docs.opensignlabs.com/img/docusaurus-social-card.png"><meta data-rh="true" name="twitter:image" content="https://docs.opensignlabs.com/img/docusaurus-social-card.png"><meta data-rh="true" property="og:url" content="https://docs.opensignlabs.com/docs/self-host/docker/run-locally"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Self-host OpenSign™ with Docker on Linux/MacOS/Windows | OpenSign™"><meta data-rh="true" name="description" content="Steps to run OpenSign™ with docker on Linux/MacOS/Windows:"><meta data-rh="true" property="og:description" content="Steps to run OpenSign™ with docker on Linux/MacOS/Windows:"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.opensignlabs.com/docs/self-host/docker/run-locally"><link data-rh="true" rel="alternate" href="https://docs.opensignlabs.com/docs/self-host/docker/run-locally" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.opensignlabs.com/docs/self-host/docker/run-locally" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Docker","item":"https://docs.opensignlabs.com/docs/category/docker"},{"@type":"ListItem","position":2,"name":"Self-host OpenSign™ with Docker on Linux/MacOS/Windows","item":"https://docs.opensignlabs.com/docs/self-host/docker/run-locally"}]}</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="OpenSign™ RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="OpenSign™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.03fa8acf.css">
<script src="/assets/js/runtime~main.9e610c3a.js" defer="defer"></script>
<script src="/assets/js/main.62d29b20.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const a=new URLSearchParams(window.location.search).entries();for(var[t,e]of a)if(t.startsWith("docusaurus-data-")){var n=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(n,e)}}catch(t){}}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="theme-announcement-bar announcementBar_mb4j" style="background-color:#cae4fa;color:#091E42" role="banner"><div class="content_knG7 announcementBarContent_xLdY">Help use spread the word - ⭐ OpenSign on <a target="_blank" rel="noopener" href="https://github.com/opensignlabs/opensign">GitHub</a></div></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.png" alt="OpenSign™ Logo" class="themedComponent_mlkZ themedComponent--light_NVdE"><img src="/img/logo.png" alt="OpenSign™ Logo" class="themedComponent_mlkZ themedComponent--dark_xIcU"></div><b class="navbar__title text--truncate">OpenSign™</b></a><a class="navbar__item navbar__link" href="/docs/help/intro">Help</a><a class="navbar__item navbar__link" href="/docs/API-docs/v1.1">APIs</a><a class="navbar__item navbar__link" href="/docs/contribute/CODE_OF_CONDUCT">Contribute</a><a href="https://www.opensignlabs.com/plans-pricing" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">Cloud Pricing<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs/self-host/intro">Self-host</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://github.com/opensignlabs/opensign" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_Bca1"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/self-host/intro"><span title="Self-Hosting OpenSign" class="linkLabel_WmDU">Self-Hosting OpenSign</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--active" href="/docs/category/docker"><span title="Docker" class="categoryLinkLabel_W154">Docker</span></a><button aria-label="Collapse sidebar category &#x27;Docker&#x27;" aria-expanded="true" type="button" class="clean-btn menu__caret"></button></div><ul class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/self-host/docker/run-locally"><span title="Self-host OpenSign™ with Docker on Linux/MacOS/Windows" class="linkLabel_WmDU">Self-host OpenSign™ with Docker on Linux/MacOS/Windows</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/self-host/docker/upgrade-deployment"><span title="OpenSign™ Self-Hosted &#x27;Upgrade Deployment&#x27; Guide Using Docker on Linux, macOS, or Windows" class="linkLabel_WmDU">OpenSign™ Self-Hosted &#x27;Upgrade Deployment&#x27; Guide Using Docker on Linux, macOS, or Windows</span></a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/docs/category/cloud-storage"><span title="Cloud Storage" class="categoryLinkLabel_W154">Cloud Storage</span></a><button aria-label="Expand sidebar category &#x27;Cloud Storage&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist" href="/docs/category/guides"><span title="Guides" class="categoryLinkLabel_W154">Guides</span></a><button aria-label="Expand sidebar category &#x27;Guides&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_byQd menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/docs/self-host/One-click-Install/DigitalOcean"><span title="One-click-Install" class="categoryLinkLabel_W154">One-click-Install</span></a></div></li></ul></nav></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_xLCN"><div class="docItemContainer_jfFK"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><a class="breadcrumbs__link" href="/docs/category/docker"><span>Docker</span></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Self-host OpenSign™ with Docker on Linux/MacOS/Windows</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Self-host OpenSign™ with Docker on Linux/MacOS/Windows</h1></header><div class="row"><div class="col col--12 markdown"><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="steps-to-run-opensign-with-docker-on-linuxmacoswindows">Steps to run OpenSign™ with docker on Linux/MacOS/Windows:<a href="#steps-to-run-opensign-with-docker-on-linuxmacoswindows" class="hash-link" aria-label="Direct link to Steps to run OpenSign™ with docker on Linux/MacOS/Windows:" title="Direct link to Steps to run OpenSign™ with docker on Linux/MacOS/Windows:" translate="no"></a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-1-download-and-install-docker">Step 1. Download and Install <a href="https://www.docker.com/products/docker-desktop/" target="_blank" rel="noopener noreferrer" class="">Docker</a>:<a href="#step-1-download-and-install-docker" class="hash-link" aria-label="Direct link to step-1-download-and-install-docker" title="Direct link to step-1-download-and-install-docker" translate="no"></a></h3>
<p>Follow the official Docker installation guide based on your operating system.</p>
<p>Create a Docker Hub account if you don&#x27;t already have one.</p>
<p><strong>Important:</strong> Don&#x27;t forget to verify your Docker Hub account via the email verification link. If you skip this step, the deployment might fail due to unauthorized access errors when pulling Docker images.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="step-2-open-the-terminal-and-execute-the-below-commands-as-per-your-operating-system">Step 2. Open the terminal and execute the below commands as per your operating system.<a href="#step-2-open-the-terminal-and-execute-the-below-commands-as-per-your-operating-system" class="hash-link" aria-label="Direct link to Step 2. Open the terminal and execute the below commands as per your operating system." title="Direct link to Step 2. Open the terminal and execute the below commands as per your operating system." translate="no"></a></h3>
<p>Make sure Docker is running in the background before proceeding.</p>
<p><strong>Warning:</strong> The commands below should only be used when installing OpenSign for the first time. You may loose your settings as this will overwrite .env &amp; caddy files.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="running-on-a-custom-domain">Running on a custom domain<a href="#running-on-a-custom-domain" class="hash-link" aria-label="Direct link to Running on a custom domain" title="Direct link to Running on a custom domain" translate="no"></a></h3>
<p>Command for linux/MacOS</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">export HOST_URL=https://opensign.yourdomain.com &amp;&amp; curl --remote-name-all https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/docker-compose.yml https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/Caddyfile https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/.env.local_dev &amp;&amp; mv .env.local_dev .env.prod &amp;&amp; docker compose up --force-recreate</span><br></span></code></pre></div></div>
<p>Command for Windows (<strong>Powershell</strong>)</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">$env:HOST_URL=&quot;https://opensign.yourdomain.com&quot;; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/docker-compose.yml -OutFile docker-compose.yml; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/Caddyfile -OutFile Caddyfile; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/.env.local_dev -OutFile .env.local_dev; Rename-Item -Path .env.local_dev -NewName .env.prod; docker compose up --force-recreate</span><br></span></code></pre></div></div>
<p>Command for Windows (<strong>CMD/Terminal</strong>)</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">set HOST_URL=https://opensign.yourdomain.com &amp;&amp; curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/docker-compose.yml &amp;&amp; curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/Caddyfile &amp;&amp; curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/.env.local_dev &amp;&amp; rename .env.local_dev .env.prod &amp;&amp; docker compose up --force-recreate</span><br></span></code></pre></div></div>
<p>Copy the command above, paste it into the terminal, and press Enter to pull and start the containers automatically.</p>
<p>Make sure to replace the host URL with your subdomain where OpenSign will be accessible.</p>
<p>You will also need to point the subdomain to the server executing these commands by adding the correct A record to your DNS settings.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="running-locally">Running locally<a href="#running-locally" class="hash-link" aria-label="Direct link to Running locally" title="Direct link to Running locally" translate="no"></a></h3>
<p>If instead want to run locally try out below commands.</p>
<p>Command for linux/MacOS (localhost)</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">curl --remote-name-all https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/docker-compose.yml https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/Caddyfile https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/.env.local_dev &amp;&amp; mv .env.local_dev .env.prod &amp;&amp; docker compose up --force-recreate</span><br></span></code></pre></div></div>
<p>Command for Windows (<strong>Powershell</strong>) (localhost)</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/docker-compose.yml -OutFile docker-compose.yml; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/Caddyfile -OutFile Caddyfile; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/.env.local_dev -OutFile .env.local_dev; Rename-Item -Path .env.local_dev -NewName .env.prod; docker compose up --force-recreate</span><br></span></code></pre></div></div>
<p>Command for Windows (<strong>CMD/Terminal</strong>) (localhost)</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/docker-compose.yml &amp;&amp; curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/Caddyfile &amp;&amp; curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/.env.local_dev &amp;&amp; rename .env.local_dev .env.prod &amp;&amp; docker compose up --force-recreate</span><br></span></code></pre></div></div>
<p>Once the deployment is successful, the application will be accessible at <a href="https://localhost:3001" target="_blank" rel="noopener noreferrer" class="">https://localhost:3001</a>. You will need to accept Chrome&#x27;s insecure certificate warning. Follow the steps in the screenshots to proceed.</p>
<div><img width="700" alt="localhost" src="https://github.com/user-attachments/assets/f5de1882-64d0-44ea-86e3-3a7c8405272c"></div>
<div><img width="700" alt="proceedtolocalhost" src="https://github.com/user-attachments/assets/33f975b9-4a9a-431e-a869-72e38f3b6754"></div>
<p><strong>Note:</strong> If you wish to incorporate our latest features into your Docker container, follow the <a href="https://docs.opensignlabs.com/docs/self-host/docker/upgrade-deployment" target="_blank" rel="noopener noreferrer" class="">Upgrade Deployment</a> steps.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="information-about-env-variables-which-are-used-to-setup-opensign-with-docker-on-localhost">Information About ENV variables which are used to setup OpenSign™ with Docker on Localhost<a href="#information-about-env-variables-which-are-used-to-setup-opensign-with-docker-on-localhost" class="hash-link" aria-label="Direct link to Information About ENV variables which are used to setup OpenSign™ with Docker on Localhost" title="Direct link to Information About ENV variables which are used to setup OpenSign™ with Docker on Localhost" translate="no"></a></h2>
<p>To set up OpenSign™ locally using Docker, the following prerequisites are required:</p>
<p>Add below Environment Variables to the &quot;.env.prod&quot; file that is automatically created in order to personalize your installation:</p>
<table><thead><tr><th>Environment Variable</th><th>Value</th><th>Description</th></tr></thead><tbody><tr><td>PUBLIC_URL</td><td><a href="https://localhost:3001" target="_blank" rel="noopener noreferrer" class="">https://localhost:3001</a> or <a href="https://opensign.yourdomain.com" target="_blank" rel="noopener noreferrer" class="">https://opensign.yourdomain.com</a></td><td>Set it to the URL form where the app home page will be accessed</td></tr><tr><td>MASTER_KEY</td><td>XnAadwKxxByMr</td><td>A 12 character long random secret key that allows access to all the data. It is used in Parse dashboard config to view all the data in the database.</td></tr><tr><td>MONGODB_URI</td><td>mongodb://mongo-container:27017/OpenSignDB</td><td>Mongodb URI to connect to</td></tr><tr><td>PARSE_MOUNT</td><td>/app</td><td>Path on which APIs should be mounted. Do not change this. This variable shall be removed &amp; value hardcoded in the source code in coming versions.</td></tr><tr><td>SERVER_URL</td><td><a href="http://localhost:8080/app" target="_blank" rel="noopener noreferrer" class="">http://localhost:8080/app</a></td><td>Set it to the URL from where APIs will be accessible to the NodeJS functions, for local development it should be localhost:8080/app</td></tr><tr><td>DO_SPACE</td><td>DOSPACENAME</td><td>Digital ocean space name or AWS S3 bucket name for uploading documents</td></tr><tr><td>DO_ENDPOINT</td><td>ams3.digitaloceanspaces.com</td><td>Digital ocean spaces endpoint or AWS S3 endpoint for uploading documents</td></tr><tr><td>DO_BASEURL</td><td><a href="https://dospace.ams3.digitaloceanspaces.com" target="_blank" rel="noopener noreferrer" class="">https://dospace.ams3.digitaloceanspaces.com</a></td><td>Digital ocean baseurl or AWS S3 base URL</td></tr><tr><td>DO_ACCESS_KEY_ID</td><td>YOUR_S3_ACCESS_ID</td><td>Digital ocean spaces access key ID or AWS s3 Access key ID for uploading the docs</td></tr><tr><td>DO_SECRET_ACCESS_KEY</td><td>YOUR_S3_ACCESS_KEY</td><td>Digital ocean spaces secret access key or AWS s3 secret access key for uploading the docs</td></tr><tr><td>DO_REGION</td><td>YOUR_S3_REGION</td><td>Digital ocean spaces region or AWS s3 region</td></tr><tr><td>USE_LOCAL</td><td>true</td><td>If this is set to true, local file storage will be used to save files, and DO credentials will be ignored.</td></tr><tr><td>MAILGUN_API_KEY</td><td>YOUR_MAILGUNAPI_KEY</td><td>Mailgun API Key</td></tr><tr><td>MAILGUN_DOMAIN</td><td>YOUR_MAILGUNAPI_DOMAIN</td><td>Mailgun API Domain</td></tr><tr><td>MAILGUN_SENDER</td><td>-</td><td>Mailgun Sender Mail ID</td></tr><tr><td>SMTP_ENABLE</td><td>false</td><td>If this is set to true, emails will be sent through SMTP, and Mailgun credentials will be ignored.</td></tr><tr><td>SMTP_HOST</td><td>smtp.yourhost.com</td><td>Provide smtp host</td></tr><tr><td>SMTP_PORT</td><td>443</td><td>Provide smtp port number</td></tr><tr><td>SMTP_USERNAME</td><td>-</td><td>Provide username of smtp</td></tr><tr><td>SMTP_USER_EMAIL</td><td><a href="mailto:mailer@yourdomain.com" target="_blank" rel="noopener noreferrer" class="">mailer@yourdomain.com</a></td><td>Provide user email of smtp</td></tr><tr><td>SMTP_PASS</td><td>password</td><td>Provide smtp password</td></tr><tr><td>PFX_BASE64</td><td>-</td><td>Base64 encoded PFX or p12 document signing certificate file. You can generate base64 encoded self sign certificate using the passphrase.</td></tr><tr><td>PASS_PHRASE</td><td>opensign</td><td>Pass phrase of PFX or p12 document signing certificate file.</td></tr><tr><td>APP_ID</td><td>opensign</td><td>(DEPRECATED) This should not be changed if provided; it should be &#x27;opensign&#x27;.</td></tr></tbody></table>
<h1>Steps to Generate Self Sign Certificate</h1>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># execute below command and use passphrase &#x27;opensign&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">openssl genrsa -des3 -out ./local_dev.key 2048</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">openssl req -key ./local_dev.key -new -x509 -days 365 -out ./local_dev.crt</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">openssl pkcs12 -inkey ./local_dev.key -in ./local_dev.crt -export -out ./local_dev.pfx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">openssl base64 -in ./local_dev.pfx -out ./base64_pfx</span><br></span></code></pre></div></div>
<p>Please note that when signing a document using a certificate generated through this process, it wont be recognized as valid by Adobe Acrobat. To get the green tick on your signed documents, you&#x27;ll need to purchase a document signing certificate (a p12 certificate in pfx format) from an <a href="https://helpx.adobe.com/in/acrobat/kb/approved-trust-list1.html" target="_blank" rel="noopener noreferrer" class="">AATL-approved Certificate Authority</a>.</p>
<h1>CORS Configuration</h1>
<p>As document storage is delegated to S3-compatible services that reside in a different host than the OpenSign one, document operations (loading, storing, deleting) are subject to <a href="https://en.wikipedia.org/wiki/Cross-origin_resource_sharing" target="_blank" rel="noopener noreferrer" class="">Cross-Origin Resource Sharing</a> restriction policies; as a consequence, OpenSign app may fail with (browser console) errors like the following:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">Access to fetch at &#x27;https://foo.nyc3.digitaloceanspaces.com/exported_file_4627_0000-00-00T00%3A45%3A43.344Z.pdf&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">from origin &#x27;http://localhost:3000&#x27; has been blocked by CORS policy: No &#x27;Access-Control-Allow-Origin&#x27; header</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">is present on the requested resource. If an opaque response serves your needs, set the request&#x27;s mode to</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">&#x27;no-cors&#x27; to fetch the resource with CORS disabled.</span><br></span></code></pre></div></div>
<p>In order to address this, your document storage system must be instructed to accept requests from other hosts; below the relevant documentation links:</p>
<ul>
<li class=""><a href="https://docs.digitalocean.com/products/spaces/how-to/configure-cors/" target="_blank" rel="noopener noreferrer" class="">How to Configure CORS on DigitalOcean Spaces</a></li>
<li class=""><a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html" target="_blank" rel="noopener noreferrer" class="">Configuring cross-origin resource sharing on AWS S3</a></li>
</ul></div></div></div><div class="row"><div class="col col--12"><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_WFHX"><a href="https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/self-host/docker/run-locally.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_JAkA"></div></div></footer></div></div></article><div class="row"><div class="col col--12"><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/category/docker"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Docker</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/self-host/docker/upgrade-deployment"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">OpenSign™ Self-Hosted &#x27;Upgrade Deployment&#x27; Guide Using Docker on Linux, macOS, or Windows</div></a></nav></div></div></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#steps-to-run-opensign-with-docker-on-linuxmacoswindows" class="table-of-contents__link toc-highlight">Steps to run OpenSign™ with docker on Linux/MacOS/Windows:</a><ul><li><a href="#step-1-download-and-install-docker" class="table-of-contents__link toc-highlight">Step 1. Download and Install Docker:</a></li><li><a href="#step-2-open-the-terminal-and-execute-the-below-commands-as-per-your-operating-system" class="table-of-contents__link toc-highlight">Step 2. Open the terminal and execute the below commands as per your operating system.</a></li><li><a href="#running-on-a-custom-domain" class="table-of-contents__link toc-highlight">Running on a custom domain</a></li><li><a href="#running-locally" class="table-of-contents__link toc-highlight">Running locally</a></li></ul></li><li><a href="#information-about-env-variables-which-are-used-to-setup-opensign-with-docker-on-localhost" class="table-of-contents__link toc-highlight">Information About ENV variables which are used to setup OpenSign™ with Docker on Localhost</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/help/intro">Help</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/API-docs/v1.1">APIs</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/contribute/intro">Contribute</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/self-host/intro">Self-host</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://discord.com/invite/xe9TDuyAyj" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://www.linkedin.com/company/opensign%E2%84%A2/" target="_blank" rel="noopener noreferrer" class="footer__link-item">LinkedIn<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://www.twitter.com/opensignhq" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://www.facebook.com/profile.php?id=61551030403669" target="_blank" rel="noopener noreferrer" class="footer__link-item">Facebook<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.opensignlabs.com" target="_blank" rel="noopener noreferrer" class="footer__link-item">Official Website<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/opensignlabs/opensign" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2026 OpenSign™. <br>The best Open Source DocuSign alternative.</div></div></div></footer></div>
</body>
</html>