diff --git a/404.html b/404.html index 4747c6946..b8e4925bf 100644 --- a/404.html +++ b/404.html @@ -5,7 +5,7 @@ Page Not Found | OpenSign™ - + diff --git a/assets/js/489b8a4d.4b0fa446.js b/assets/js/489b8a4d.4b0fa446.js deleted file mode 100644 index 3834d94ee..000000000 --- a/assets/js/489b8a4d.4b0fa446.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[8781],{44907:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var t=s(85893),o=s(11151);const r={title:"Self-host OpenSign\u2122 with Docker on Linux/MacOS/Windows"},i=void 0,c={id:"self-host/docker/run-locally",title:"Self-host OpenSign\u2122 with Docker on Linux/MacOS/Windows",description:"Steps to run OpenSign\u2122 with docker on Linux/MacOS/Windows:",source:"@site/docs/self-host/docker/run-locally.md",sourceDirName:"self-host/docker",slug:"/self-host/docker/run-locally",permalink:"/docs/self-host/docker/run-locally",draft:!1,unlisted:!1,editUrl:"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/self-host/docker/run-locally.md",tags:[],version:"current",frontMatter:{title:"Self-host OpenSign\u2122 with Docker on Linux/MacOS/Windows"},sidebar:"selfhostSidebar",previous:{title:"Localhost OpenSign\u2122 Setup with Docker on Windows",permalink:"/docs/self-host/docker/run-locally-windows"},next:{title:"Cloud Storage",permalink:"/docs/category/cloud-storage"}},d={},l=[{value:"Steps to run OpenSign\u2122 with docker on Linux/MacOS/Windows:",id:"steps-to-run-opensign-with-docker-on-linuxmacoswindows",level:2},{value:"Information About ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost",id:"information-about-env-variables-which-are-used-to-setup-opensign-with-docker-on-localhost",level:2}];function a(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"steps-to-run-opensign-with-docker-on-linuxmacoswindows",children:"Steps to run OpenSign\u2122 with docker on Linux/MacOS/Windows:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Firstly, install Docker and ensure it is running before proceeding to the next steps. Make sure that you have NodeJS & GIT installed on your machine."}),"\n",(0,t.jsx)(n.li,{children:"Now, open the terminal and type the following command:"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Command for linux/MacOS"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"export HOST_URL=https://opensign.yourdomain.com && curl --remote-name-all https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/docker-compose.yml https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/Caddyfile https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/.env.local_dev && mv .env.local_dev .env.prod && docker compose up --force-recreate\n"})}),"\n",(0,t.jsx)(n.p,{children:"Command for Windows (Powershell)"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'$env:HOST_URL="https://opensign.yourdomain.com"; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/docker-compose.yml -OutFile docker-compose.yml; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/Caddyfile -OutFile Caddyfile; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/.env.local_dev -OutFile .env.local_dev; Rename-Item -Path .env.local_dev -NewName .env.prod; docker compose up --force-recreate\n'})}),"\n",(0,t.jsx)(n.p,{children:"and Hit Enter start the containers automatically. Make sure that you replace the host URL with your subdomain from where OpenSign will be accessible. You need to point the subdomain to the server you are running these commands by adding the necessary A record to your DNS."}),"\n",(0,t.jsxs)(n.ol,{start:"3",children:["\n",(0,t.jsxs)(n.li,{children:["If you want to test it locally, remove ",(0,t.jsx)(n.code,{children:"export HOST_URL=https://opensign.yourdomain.com &&"})," for Linux/MacOS and ",(0,t.jsx)(n.code,{children:'$env:HOST_URL="https://opensign.yourdomain.com";'})," for Windows. Once deployed successfully, follow the steps from the screenshots."]}),"\n"]}),"\n",(0,t.jsx)("div",{children:(0,t.jsx)("img",{width:"937",alt:"localhost",src:"https://github.com/user-attachments/assets/f5de1882-64d0-44ea-86e3-3a7c8405272c"})}),"\n",(0,t.jsx)("div",{children:(0,t.jsx)("img",{width:"935",alt:"proceedtolocalhost",src:"https://github.com/user-attachments/assets/33f975b9-4a9a-431e-a869-72e38f3b6754"})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"Note: If you wish to incorporate our latest features into your Docker container, follow the steps again after stopping existing containers."})}),"\n",(0,t.jsx)(n.h2,{id:"information-about-env-variables-which-are-used-to-setup-opensign-with-docker-on-localhost",children:"Information About ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost"}),"\n",(0,t.jsx)(n.p,{children:"To set up OpenSign\u2122 locally using Docker, the following prerequisites are required:"}),"\n",(0,t.jsx)(n.p,{children:'Add below Environment Varaibles to the ".env.prod" file that is automatically created in order to personalize your installation:'}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Environment Varibale"}),(0,t.jsx)(n.th,{children:"Value"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"PUBLIC_URL"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://localhost:3001",children:"https://localhost:3001"})}),(0,t.jsx)(n.td,{children:"Set it to the URL form where the app home page will be accessed"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"APP_ID"}),(0,t.jsx)(n.td,{children:"opensign"}),(0,t.jsx)(n.td,{children:"A 12 character long random app identifier. The value of this should be same as REACT_APP_APPID which is a variable used by Frontend React App."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"appName"}),(0,t.jsx)(n.td,{children:"open_sign_server"}),(0,t.jsx)(n.td,{children:"Name of the app. It will be visible in the verification emails sent out."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"MASTER_KEY"}),(0,t.jsx)(n.td,{children:"XnAadwKxxByMr"}),(0,t.jsx)(n.td,{children:"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."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"MONGODB_URI"}),(0,t.jsx)(n.td,{children:"mongodb://mongo-container:27017/OpenSignDB"}),(0,t.jsx)(n.td,{children:"Mongodb URI to connect to"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"PARSE_MOUNT"}),(0,t.jsx)(n.td,{children:"/app"}),(0,t.jsx)(n.td,{children:"Path on which APIs should be mounted. Do not change this. This variable shall be removed & value hardcoded in the source code in coming versions."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SERVER_URL"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"http://localhost:8080/app",children:"http://localhost:8080/app"})}),(0,t.jsx)(n.td,{children:"Set it to the URL from where APIs will be accessible to the NodeJS functions, for local development it should be localhost:8080/app (use your local port number instead)"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"DO_SPACE"}),(0,t.jsx)(n.td,{children:"DOSPACENAME"}),(0,t.jsx)(n.td,{children:"Digital ocean space name or AWS S3 bucket name for uploading documents"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"DO_ENDPOINT"}),(0,t.jsx)(n.td,{children:"ams3.digitaloceanspaces.com"}),(0,t.jsx)(n.td,{children:"Digital ocean spaces endpoint or AWS S3 endpoint for uploading documents"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"DO_BASEURL"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://dospace.ams3.digitaloceanspaces.com",children:"https://dospace.ams3.digitaloceanspaces.com"})}),(0,t.jsx)(n.td,{children:"Digital ocean baseurl or AWS S3 base URL"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"DO_ACCESS_KEY_ID"}),(0,t.jsx)(n.td,{children:"YOUR_S3_ACCESS_ID"}),(0,t.jsx)(n.td,{children:"Digital ocean spaces access key ID or AWS s3 Access key ID for uploading the docs"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"DO_SECRET_ACCESS_KEY"}),(0,t.jsx)(n.td,{children:"YOUR_S3_ACCESS_KEY"}),(0,t.jsx)(n.td,{children:"Digital ocean spaces secret access key or AWS s3 secret access key for uploading the docs"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"DO_REGION"}),(0,t.jsx)(n.td,{children:"YOUR_S3_REGION"}),(0,t.jsx)(n.td,{children:"Digital ocean spaces region or AWS s3 region"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"USE_LOCAL"}),(0,t.jsx)(n.td,{children:"true"}),(0,t.jsx)(n.td,{children:"To use local file storage to save file"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"MAILGUN_API_KEY"}),(0,t.jsx)(n.td,{children:"YOUR_MAILGUNAPI_KEY"}),(0,t.jsx)(n.td,{children:"Mailgun API Key"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"MAILGUN_DOMAIN"}),(0,t.jsx)(n.td,{children:"YOUR_MAILGUNAPI_DOMAIN"}),(0,t.jsx)(n.td,{children:"Mailgun API Domain"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"MAILGUN_SENDER"}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsx)(n.td,{children:"Mailgun Sender Mail ID"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SMTP_ENABLE"}),(0,t.jsx)(n.td,{children:"false"}),(0,t.jsx)(n.td,{children:"to enable SMTP"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SMTP_HOST"}),(0,t.jsx)(n.td,{children:"smtp.yourhost.com"}),(0,t.jsx)(n.td,{children:"Provide smtp host"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SMTP_PORT"}),(0,t.jsx)(n.td,{children:"443"}),(0,t.jsx)(n.td,{children:"Provide smtp port number"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SMTP_USER_EMAIL"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"mailto:mailer@yourdomain.com",children:"mailer@yourdomain.com"})}),(0,t.jsx)(n.td,{children:"Provide user email of smtp"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SMTP_PASS"}),(0,t.jsx)(n.td,{children:"password"}),(0,t.jsx)(n.td,{children:"Provide smtp password"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"PFX_BASE64"}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsx)(n.td,{children:"Base64 encoded PFX or p12 document signing certificate file. You can generate base64 encoded self sign certificate using the passphrase."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"PASS_PHRASE"}),(0,t.jsx)(n.td,{children:"opensign"}),(0,t.jsx)(n.td,{children:"Pass phrase of PFX or p12 document signing certificate file."})]})]})]}),"\n",(0,t.jsx)(n.h1,{id:"steps-to-generate-self-sign-certificate",children:"Steps to Generate Self Sign Certificate"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"# execute below command and use passphrase 'opensign'\nopenssl genrsa -des3 -out ./local_dev.key 2048\nopenssl req -key ./local_dev.key -new -x509 -days 365 -out ./local_dev.crt\nopenssl pkcs12 -inkey ./local_dev.key -in ./local_dev.crt -export -out ./local_dev.pfx\nopenssl base64 -in ./local_dev.pfx -out ./base64_pfx\n"})}),"\n",(0,t.jsx)(n.h1,{id:"cors-configuration",children:"CORS Configuration"}),"\n",(0,t.jsxs)(n.p,{children:["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 ",(0,t.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Cross-origin_resource_sharing",children:"Cross-Origin Resource Sharing"})," restriction policies; as a consequence, OpenSign app may fail with (browser console) errors like the following:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"Access to fetch at 'https://foo.nyc3.digitaloceanspaces.com/exported_file_4627_0000-00-00T00%3A45%3A43.344Z.pdf'\nfrom origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header\nis present on the requested resource. If an opaque response serves your needs, set the request's mode to\n'no-cors' to fetch the resource with CORS disabled.\n"})}),"\n",(0,t.jsx)(n.p,{children:"In order to address this, your document storage system must be instructed to accept requests from other hosts; below the relevant documentation links:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://docs.digitalocean.com/products/spaces/how-to/configure-cors/",children:"How to Configure CORS on DigitalOcean Spaces"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html",children:"Configuring cross-origin resource sharing on AWS S3"})}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>c,a:()=>i});var t=s(67294);const o={},r=t.createContext(o);function i(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/489b8a4d.e22cdaf5.js b/assets/js/489b8a4d.e22cdaf5.js new file mode 100644 index 000000000..80e58f63f --- /dev/null +++ b/assets/js/489b8a4d.e22cdaf5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[8781],{44907:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var t=s(85893),o=s(11151);const i={title:"Self-host OpenSign\u2122 with Docker on Linux/MacOS/Windows"},r=void 0,c={id:"self-host/docker/run-locally",title:"Self-host OpenSign\u2122 with Docker on Linux/MacOS/Windows",description:"Steps to run OpenSign\u2122 with docker on Linux/MacOS/Windows:",source:"@site/docs/self-host/docker/run-locally.md",sourceDirName:"self-host/docker",slug:"/self-host/docker/run-locally",permalink:"/docs/self-host/docker/run-locally",draft:!1,unlisted:!1,editUrl:"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/self-host/docker/run-locally.md",tags:[],version:"current",frontMatter:{title:"Self-host OpenSign\u2122 with Docker on Linux/MacOS/Windows"},sidebar:"selfhostSidebar",previous:{title:"Localhost OpenSign\u2122 Setup with Docker on Windows",permalink:"/docs/self-host/docker/run-locally-windows"},next:{title:"Cloud Storage",permalink:"/docs/category/cloud-storage"}},d={},l=[{value:"Steps to run OpenSign\u2122 with docker on Linux/MacOS/Windows:",id:"steps-to-run-opensign-with-docker-on-linuxmacoswindows",level:2},{value:"Information About ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost",id:"information-about-env-variables-which-are-used-to-setup-opensign-with-docker-on-localhost",level:2}];function a(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"steps-to-run-opensign-with-docker-on-linuxmacoswindows",children:"Steps to run OpenSign\u2122 with docker on Linux/MacOS/Windows:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Firstly, install Docker and ensure it is running before proceeding to the next steps. Make sure that you have NodeJS & GIT installed on your machine."}),"\n",(0,t.jsx)(n.li,{children:"Now, open the terminal and type the following command:"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:"Command for linux/MacOS"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"export HOST_URL=https://opensign.yourdomain.com && curl --remote-name-all https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/docker-compose.yml https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/Caddyfile https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/.env.local_dev && mv .env.local_dev .env.prod && docker compose up --force-recreate\n"})}),"\n",(0,t.jsx)(n.p,{children:"Command for Windows (Powershell)"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'$env:HOST_URL="https://opensign.yourdomain.com"; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/docker-compose.yml -OutFile docker-compose.yml; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/Caddyfile -OutFile Caddyfile; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/.env.local_dev -OutFile .env.local_dev; Rename-Item -Path .env.local_dev -NewName .env.prod; docker compose up --force-recreate\n'})}),"\n",(0,t.jsx)(n.p,{children:"and Hit Enter to start the containers automatically. Make sure to replace the host URL with your subdomain where OpenSign will be accessible. You need to point the subdomain to the server where you are running these commands by adding the necessary A record to your DNS."}),"\n",(0,t.jsxs)(n.ol,{start:"3",children:["\n",(0,t.jsxs)(n.li,{children:["If you want to test it locally, remove ",(0,t.jsx)(n.code,{children:"export HOST_URL=https://opensign.yourdomain.com &&"})," for Linux/MacOS and ",(0,t.jsx)(n.code,{children:'$env:HOST_URL="https://opensign.yourdomain.com";'})," for Windows. Once deployed successfully, it will be accessible at ",(0,t.jsx)(n.a,{href:"https://localhost:3001",children:"https://localhost:3001"}),'. Follow the steps from the screenshots."']}),"\n"]}),"\n",(0,t.jsx)("div",{children:(0,t.jsx)("img",{width:"937",alt:"localhost",src:"https://github.com/user-attachments/assets/f5de1882-64d0-44ea-86e3-3a7c8405272c"})}),"\n",(0,t.jsx)("div",{children:(0,t.jsx)("img",{width:"935",alt:"proceedtolocalhost",src:"https://github.com/user-attachments/assets/33f975b9-4a9a-431e-a869-72e38f3b6754"})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"Note: If you wish to incorporate our latest features into your Docker container, follow the steps again after stopping existing containers."})}),"\n",(0,t.jsx)(n.h2,{id:"information-about-env-variables-which-are-used-to-setup-opensign-with-docker-on-localhost",children:"Information About ENV variables which are used to setup OpenSign\u2122 with Docker on Localhost"}),"\n",(0,t.jsx)(n.p,{children:"To set up OpenSign\u2122 locally using Docker, the following prerequisites are required:"}),"\n",(0,t.jsx)(n.p,{children:'Add below Environment Varaibles to the ".env.prod" file that is automatically created in order to personalize your installation:'}),"\n",(0,t.jsxs)(n.table,{children:[(0,t.jsx)(n.thead,{children:(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.th,{children:"Environment Varibale"}),(0,t.jsx)(n.th,{children:"Value"}),(0,t.jsx)(n.th,{children:"Description"})]})}),(0,t.jsxs)(n.tbody,{children:[(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"PUBLIC_URL"}),(0,t.jsxs)(n.td,{children:[(0,t.jsx)(n.a,{href:"https://localhost:3001",children:"https://localhost:3001"})," or ",(0,t.jsx)(n.a,{href:"https://opensign.yourdomain.com",children:"https://opensign.yourdomain.com"})]}),(0,t.jsx)(n.td,{children:"Set it to the URL form where the app home page will be accessed"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"APP_ID"}),(0,t.jsx)(n.td,{children:"opensign"}),(0,t.jsx)(n.td,{children:"A 12 character long random app identifier. The value of this should be same as REACT_APP_APPID which is a variable used by Frontend React App."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"appName"}),(0,t.jsx)(n.td,{children:"open_sign_server"}),(0,t.jsx)(n.td,{children:"Name of the app. It will be visible in the verification emails sent out."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"MASTER_KEY"}),(0,t.jsx)(n.td,{children:"XnAadwKxxByMr"}),(0,t.jsx)(n.td,{children:"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."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"MONGODB_URI"}),(0,t.jsx)(n.td,{children:"mongodb://mongo-container:27017/OpenSignDB"}),(0,t.jsx)(n.td,{children:"Mongodb URI to connect to"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"PARSE_MOUNT"}),(0,t.jsx)(n.td,{children:"/app"}),(0,t.jsx)(n.td,{children:"Path on which APIs should be mounted. Do not change this. This variable shall be removed & value hardcoded in the source code in coming versions."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SERVER_URL"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"http://localhost:8080/app",children:"http://localhost:8080/app"})}),(0,t.jsx)(n.td,{children:"Set it to the URL from where APIs will be accessible to the NodeJS functions, for local development it should be localhost:8080/app"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"DO_SPACE"}),(0,t.jsx)(n.td,{children:"DOSPACENAME"}),(0,t.jsx)(n.td,{children:"Digital ocean space name or AWS S3 bucket name for uploading documents"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"DO_ENDPOINT"}),(0,t.jsx)(n.td,{children:"ams3.digitaloceanspaces.com"}),(0,t.jsx)(n.td,{children:"Digital ocean spaces endpoint or AWS S3 endpoint for uploading documents"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"DO_BASEURL"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"https://dospace.ams3.digitaloceanspaces.com",children:"https://dospace.ams3.digitaloceanspaces.com"})}),(0,t.jsx)(n.td,{children:"Digital ocean baseurl or AWS S3 base URL"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"DO_ACCESS_KEY_ID"}),(0,t.jsx)(n.td,{children:"YOUR_S3_ACCESS_ID"}),(0,t.jsx)(n.td,{children:"Digital ocean spaces access key ID or AWS s3 Access key ID for uploading the docs"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"DO_SECRET_ACCESS_KEY"}),(0,t.jsx)(n.td,{children:"YOUR_S3_ACCESS_KEY"}),(0,t.jsx)(n.td,{children:"Digital ocean spaces secret access key or AWS s3 secret access key for uploading the docs"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"DO_REGION"}),(0,t.jsx)(n.td,{children:"YOUR_S3_REGION"}),(0,t.jsx)(n.td,{children:"Digital ocean spaces region or AWS s3 region"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"USE_LOCAL"}),(0,t.jsx)(n.td,{children:"true"}),(0,t.jsx)(n.td,{children:"If this is set to true, local file storage will be used to save files, and DO credentials will be ignored."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"MAILGUN_API_KEY"}),(0,t.jsx)(n.td,{children:"YOUR_MAILGUNAPI_KEY"}),(0,t.jsx)(n.td,{children:"Mailgun API Key"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"MAILGUN_DOMAIN"}),(0,t.jsx)(n.td,{children:"YOUR_MAILGUNAPI_DOMAIN"}),(0,t.jsx)(n.td,{children:"Mailgun API Domain"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"MAILGUN_SENDER"}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsx)(n.td,{children:"Mailgun Sender Mail ID"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SMTP_ENABLE"}),(0,t.jsx)(n.td,{children:"false"}),(0,t.jsx)(n.td,{children:"If this is set to true, emails will be sent through SMTP, and Mailgun credentials will be ignored."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SMTP_HOST"}),(0,t.jsx)(n.td,{children:"smtp.yourhost.com"}),(0,t.jsx)(n.td,{children:"Provide smtp host"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SMTP_PORT"}),(0,t.jsx)(n.td,{children:"443"}),(0,t.jsx)(n.td,{children:"Provide smtp port number"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SMTP_USER_EMAIL"}),(0,t.jsx)(n.td,{children:(0,t.jsx)(n.a,{href:"mailto:mailer@yourdomain.com",children:"mailer@yourdomain.com"})}),(0,t.jsx)(n.td,{children:"Provide user email of smtp"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"SMTP_PASS"}),(0,t.jsx)(n.td,{children:"password"}),(0,t.jsx)(n.td,{children:"Provide smtp password"})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"PFX_BASE64"}),(0,t.jsx)(n.td,{children:"-"}),(0,t.jsx)(n.td,{children:"Base64 encoded PFX or p12 document signing certificate file. You can generate base64 encoded self sign certificate using the passphrase."})]}),(0,t.jsxs)(n.tr,{children:[(0,t.jsx)(n.td,{children:"PASS_PHRASE"}),(0,t.jsx)(n.td,{children:"opensign"}),(0,t.jsx)(n.td,{children:"Pass phrase of PFX or p12 document signing certificate file."})]})]})]}),"\n",(0,t.jsx)(n.h1,{id:"steps-to-generate-self-sign-certificate",children:"Steps to Generate Self Sign Certificate"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"# execute below command and use passphrase 'opensign'\nopenssl genrsa -des3 -out ./local_dev.key 2048\nopenssl req -key ./local_dev.key -new -x509 -days 365 -out ./local_dev.crt\nopenssl pkcs12 -inkey ./local_dev.key -in ./local_dev.crt -export -out ./local_dev.pfx\nopenssl base64 -in ./local_dev.pfx -out ./base64_pfx\n"})}),"\n",(0,t.jsx)(n.h1,{id:"cors-configuration",children:"CORS Configuration"}),"\n",(0,t.jsxs)(n.p,{children:["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 ",(0,t.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/Cross-origin_resource_sharing",children:"Cross-Origin Resource Sharing"})," restriction policies; as a consequence, OpenSign app may fail with (browser console) errors like the following:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:"Access to fetch at 'https://foo.nyc3.digitaloceanspaces.com/exported_file_4627_0000-00-00T00%3A45%3A43.344Z.pdf'\nfrom origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header\nis present on the requested resource. If an opaque response serves your needs, set the request's mode to\n'no-cors' to fetch the resource with CORS disabled.\n"})}),"\n",(0,t.jsx)(n.p,{children:"In order to address this, your document storage system must be instructed to accept requests from other hosts; below the relevant documentation links:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://docs.digitalocean.com/products/spaces/how-to/configure-cors/",children:"How to Configure CORS on DigitalOcean Spaces"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html",children:"Configuring cross-origin resource sharing on AWS S3"})}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(a,{...e})}):a(e)}},11151:(e,n,s)=>{s.d(n,{Z:()=>c,a:()=>r});var t=s(67294);const o={},i=t.createContext(o);function r(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.07f878dc.js b/assets/js/runtime~main.60afec89.js similarity index 98% rename from assets/js/runtime~main.07f878dc.js rename to assets/js/runtime~main.60afec89.js index 73def0860..69a708db5 100644 --- a/assets/js/runtime~main.07f878dc.js +++ b/assets/js/runtime~main.60afec89.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,b,f,d={},r={};function t(e){var a=r[e];if(void 0!==a)return a.exports;var c=r[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,t),c.loaded=!0,c.exports}t.m=d,t.c=r,e=[],t.O=(a,c,b,f)=>{if(!c){var d=1/0;for(n=0;n=f)&&Object.keys(t.O).every((e=>t.O[e](c[o])))?c.splice(o--,1):(r=!1,f0&&e[n-1][2]>f;n--)e[n]=e[n-1];e[n]=[c,b,f]},t.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,t.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var f=Object.create(null);t.r(f);var d={};a=a||[null,c({}),c([]),c(c)];for(var r=2&b&&e;"object"==typeof r&&!~a.indexOf(r);r=c(r))Object.getOwnPropertyNames(r).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,t.d(f,d),f},t.d=(e,a)=>{for(var c in a)t.o(a,c)&&!t.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce(((a,c)=>(t.f[c](e,a),a)),[])),t.u=e=>"assets/js/"+({53:"935f2afb",110:"66406991",230:"d91ad230",261:"reactPlayerKaltura",273:"fa40969b",339:"4f7a2d40",420:"e2c87691",453:"30a24c52",533:"b2b675dd",762:"d8b805fb",792:"50ea61d6",823:"c7b98810",835:"ab2a161b",841:"c5e4dae0",853:"277a78f5",869:"b18842e4",948:"8717b14a",1001:"8001f939",1332:"f0ff4a36",1477:"b2f554cd",1512:"e9e778b7",1520:"770b40a9",1531:"bbdfc22d",1633:"031793e1",1713:"a7023ddc",1773:"ef5d5d5d",1893:"4c5e977b",1914:"d9f32620",2087:"bfe4b778",2121:"reactPlayerFacebook",2125:"f214d5ff",2207:"78b2b753",2213:"1c822755",2241:"2ace9d1d",2245:"a2bc1463",2267:"59362658",2362:"e273c56f",2403:"38c56221",2535:"814f3328",2542:"5ce9853b",2546:"reactPlayerStreamable",2617:"56b5f4f8",2832:"1f73ca32",2865:"3e02da86",2939:"e21b07c7",3085:"1f391b9e",3089:"a6aa9e1f",3101:"64ee8796",3156:"11b7b3d8",3205:"a80da1cf",3495:"8a855f99",3514:"73664a40",3608:"9e4087bc",3743:"reactPlayerVimeo",4013:"01a85c17",4195:"c4f5d8e4",4277:"14716de7",4368:"a94703ab",4439:"reactPlayerYouTube",4478:"d1393a72",4641:"ada7accb",4651:"05632a52",4667:"reactPlayerMixcloud",4772:"b0378e01",4918:"1f7895dc",4955:"e226bb09",4985:"b839bf37",5377:"ce589067",5507:"8320e026",5858:"046910c8",5900:"38e3d9c8",6011:"reactPlayerFilePlayer",6033:"28b19cd2",6103:"ccc49370",6113:"13fdae3b",6125:"reactPlayerSoundCloud",6177:"611db08b",6216:"reactPlayerTwitch",6344:"984cf7cf",6543:"17e5210b",6759:"c9fa5aa5",6938:"608ae6a4",7100:"2c416566",7178:"096bfee4",7286:"451a5132",7414:"393be207",7475:"500027af",7596:"reactPlayerDailyMotion",7664:"reactPlayerPreview",7816:"06577f20",7894:"a88a3db3",7964:"2304e9ae",7971:"8a725248",8055:"reactPlayerWistia",8087:"e4f5c862",8106:"377084eb",8141:"98da7451",8163:"5a2de241",8215:"e5a49157",8468:"52d5c0f9",8474:"9640838e",8489:"7b076186",8518:"a7bd4aaa",8610:"6875c492",8636:"f4f34a3a",8766:"70853c19",8781:"489b8a4d",8784:"83cab870",8866:"eb56c656",8878:"cf03142d",8888:"reactPlayerVidyard",8892:"38ec836e",9003:"925b3f96",9010:"06b6ef6a",9035:"4c9e35b1",9588:"5c04ee3b",9642:"7661071f",9661:"5e95c892",9671:"0e384e19",9697:"2c586be5",9700:"e16015ca",9817:"14eb3368",9914:"0c0943c7"}[e]||e)+"."+{53:"2dbef7dd",110:"ab20026d",230:"3cc5e6e9",261:"4b30f79b",273:"68747bab",339:"4b03478f",420:"086699e6",453:"61f3e45f",533:"2d5f5b1d",762:"88a79f65",792:"7a4370d4",823:"81840a08",835:"ced0e4f6",841:"b9d70538",853:"6965f6a9",869:"6aa44f6d",948:"b2da1fd1",1001:"50ee673e",1332:"389c8736",1477:"b31b2642",1512:"7ddd2ec3",1520:"618d0da1",1531:"70967907",1633:"d8366831",1713:"fefd4794",1772:"c222a62c",1773:"d5cdc9ed",1893:"59606182",1914:"eb382def",2087:"b9b91e4e",2121:"c8df990c",2125:"9a2b70d2",2207:"a9080331",2213:"d47dd20f",2241:"e6e648f1",2245:"1fef8831",2267:"a4846e2b",2362:"ebdb1814",2403:"dfda5b34",2529:"2079a565",2535:"f3b6b0ab",2542:"969e89e9",2546:"665b04f4",2617:"56321ade",2832:"5c33accf",2865:"4cf479cc",2939:"4f3e9981",3085:"e5c5d651",3089:"84b5c675",3101:"47959e32",3156:"41df5616",3205:"af75d475",3495:"0316b8ef",3514:"b2437ac4",3608:"0e768bf1",3743:"2ede10ee",4013:"e5e25f55",4148:"aa6a1681",4195:"08242eba",4277:"69395083",4311:"86f3bfc6",4368:"7d12b1da",4439:"6a6454f7",4478:"021a0ceb",4641:"2592b532",4651:"e48c3f6b",4667:"c24bbf43",4682:"18721add",4772:"77d6969e",4918:"15f115ce",4955:"8f728b1e",4985:"da6a3fe1",5377:"ccefc9dc",5507:"36c41078",5858:"86987606",5900:"e113e88d",6011:"6de743c9",6033:"57dfdd1c",6103:"ebc8482f",6113:"f58acb33",6125:"9555c68b",6177:"90aa7cb5",6216:"0d890761",6344:"394ac727",6543:"7f67a86f",6759:"c81d0e01",6938:"d44251bf",7100:"dfa7c53a",7178:"9a58922d",7286:"95befe47",7414:"8d31e6a7",7475:"0b8bf361",7596:"95bca972",7664:"7fd4bae6",7816:"38bd8c71",7894:"a78443ac",7964:"c5d650a9",7971:"c367aea5",8055:"27482879",8087:"fd9041fd",8106:"907e2796",8140:"901b2f91",8141:"6478079e",8163:"5a92f5d2",8215:"c6b04c16",8468:"24a25302",8474:"f58804a4",8475:"d27b3009",8489:"fc1c0045",8518:"aaa08e5a",8531:"1f1a82a7",8610:"d85035d6",8636:"c590d949",8766:"ad06079f",8781:"4b0fa446",8784:"5f29f05d",8866:"381cdff2",8878:"50c3bf68",8888:"f7352a9d",8892:"7315f43d",9003:"1e8e0783",9010:"a73dece2",9035:"37598b09",9588:"a3248228",9642:"223fec4f",9661:"33228fcd",9671:"8f2ee486",9697:"2035c76c",9700:"ad032cc8",9817:"424c677a",9914:"83d53850"}[e]+".js",t.miniCssF=e=>{},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},f="OpenSign-Docs:",t.l=(e,a,c,d)=>{if(b[e])b[e].push(a);else{var r,o;if(void 0!==c)for(var l=document.getElementsByTagName("script"),n=0;n{r.onerror=r.onload=null,clearTimeout(s);var f=b[e];if(delete b[e],r.parentNode&&r.parentNode.removeChild(r),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),o&&document.head.appendChild(r)}},t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),t.p="/",t.gca=function(e){return e={59362658:"2267",66406991:"110","935f2afb":"53",d91ad230:"230",reactPlayerKaltura:"261",fa40969b:"273","4f7a2d40":"339",e2c87691:"420","30a24c52":"453",b2b675dd:"533",d8b805fb:"762","50ea61d6":"792",c7b98810:"823",ab2a161b:"835",c5e4dae0:"841","277a78f5":"853",b18842e4:"869","8717b14a":"948","8001f939":"1001",f0ff4a36:"1332",b2f554cd:"1477",e9e778b7:"1512","770b40a9":"1520",bbdfc22d:"1531","031793e1":"1633",a7023ddc:"1713",ef5d5d5d:"1773","4c5e977b":"1893",d9f32620:"1914",bfe4b778:"2087",reactPlayerFacebook:"2121",f214d5ff:"2125","78b2b753":"2207","1c822755":"2213","2ace9d1d":"2241",a2bc1463:"2245",e273c56f:"2362","38c56221":"2403","814f3328":"2535","5ce9853b":"2542",reactPlayerStreamable:"2546","56b5f4f8":"2617","1f73ca32":"2832","3e02da86":"2865",e21b07c7:"2939","1f391b9e":"3085",a6aa9e1f:"3089","64ee8796":"3101","11b7b3d8":"3156",a80da1cf:"3205","8a855f99":"3495","73664a40":"3514","9e4087bc":"3608",reactPlayerVimeo:"3743","01a85c17":"4013",c4f5d8e4:"4195","14716de7":"4277",a94703ab:"4368",reactPlayerYouTube:"4439",d1393a72:"4478",ada7accb:"4641","05632a52":"4651",reactPlayerMixcloud:"4667",b0378e01:"4772","1f7895dc":"4918",e226bb09:"4955",b839bf37:"4985",ce589067:"5377","8320e026":"5507","046910c8":"5858","38e3d9c8":"5900",reactPlayerFilePlayer:"6011","28b19cd2":"6033",ccc49370:"6103","13fdae3b":"6113",reactPlayerSoundCloud:"6125","611db08b":"6177",reactPlayerTwitch:"6216","984cf7cf":"6344","17e5210b":"6543",c9fa5aa5:"6759","608ae6a4":"6938","2c416566":"7100","096bfee4":"7178","451a5132":"7286","393be207":"7414","500027af":"7475",reactPlayerDailyMotion:"7596",reactPlayerPreview:"7664","06577f20":"7816",a88a3db3:"7894","2304e9ae":"7964","8a725248":"7971",reactPlayerWistia:"8055",e4f5c862:"8087","377084eb":"8106","98da7451":"8141","5a2de241":"8163",e5a49157:"8215","52d5c0f9":"8468","9640838e":"8474","7b076186":"8489",a7bd4aaa:"8518","6875c492":"8610",f4f34a3a:"8636","70853c19":"8766","489b8a4d":"8781","83cab870":"8784",eb56c656:"8866",cf03142d:"8878",reactPlayerVidyard:"8888","38ec836e":"8892","925b3f96":"9003","06b6ef6a":"9010","4c9e35b1":"9035","5c04ee3b":"9588","7661071f":"9642","5e95c892":"9661","0e384e19":"9671","2c586be5":"9697",e16015ca:"9700","14eb3368":"9817","0c0943c7":"9914"}[e]||e,t.p+t.u(e)},(()=>{var e={1303:0,532:0};t.f.j=(a,c)=>{var b=t.o(e,a)?e[a]:void 0;if(0!==b)if(b)c.push(b[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>b=e[a]=[c,f]));c.push(b[2]=f);var d=t.p+t.u(a),r=new Error;t.l(d,(c=>{if(t.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var f=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;r.message="Loading chunk "+a+" failed.\n("+f+": "+d+")",r.name="ChunkLoadError",r.type=f,r.request=d,b[1](r)}}),"chunk-"+a,a)}},t.O.j=a=>0===e[a];var a=(a,c)=>{var b,f,d=c[0],r=c[1],o=c[2],l=0;if(d.some((a=>0!==e[a]))){for(b in r)t.o(r,b)&&(t.m[b]=r[b]);if(o)var n=o(t)}for(a&&a(c);l{"use strict";var e,a,c,b,f,d={},r={};function t(e){var a=r[e];if(void 0!==a)return a.exports;var c=r[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,t),c.loaded=!0,c.exports}t.m=d,t.c=r,e=[],t.O=(a,c,b,f)=>{if(!c){var d=1/0;for(n=0;n=f)&&Object.keys(t.O).every((e=>t.O[e](c[o])))?c.splice(o--,1):(r=!1,f0&&e[n-1][2]>f;n--)e[n]=e[n-1];e[n]=[c,b,f]},t.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,t.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var f=Object.create(null);t.r(f);var d={};a=a||[null,c({}),c([]),c(c)];for(var r=2&b&&e;"object"==typeof r&&!~a.indexOf(r);r=c(r))Object.getOwnPropertyNames(r).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,t.d(f,d),f},t.d=(e,a)=>{for(var c in a)t.o(a,c)&&!t.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce(((a,c)=>(t.f[c](e,a),a)),[])),t.u=e=>"assets/js/"+({53:"935f2afb",110:"66406991",230:"d91ad230",261:"reactPlayerKaltura",273:"fa40969b",339:"4f7a2d40",420:"e2c87691",453:"30a24c52",533:"b2b675dd",762:"d8b805fb",792:"50ea61d6",823:"c7b98810",835:"ab2a161b",841:"c5e4dae0",853:"277a78f5",869:"b18842e4",948:"8717b14a",1001:"8001f939",1332:"f0ff4a36",1477:"b2f554cd",1512:"e9e778b7",1520:"770b40a9",1531:"bbdfc22d",1633:"031793e1",1713:"a7023ddc",1773:"ef5d5d5d",1893:"4c5e977b",1914:"d9f32620",2087:"bfe4b778",2121:"reactPlayerFacebook",2125:"f214d5ff",2207:"78b2b753",2213:"1c822755",2241:"2ace9d1d",2245:"a2bc1463",2267:"59362658",2362:"e273c56f",2403:"38c56221",2535:"814f3328",2542:"5ce9853b",2546:"reactPlayerStreamable",2617:"56b5f4f8",2832:"1f73ca32",2865:"3e02da86",2939:"e21b07c7",3085:"1f391b9e",3089:"a6aa9e1f",3101:"64ee8796",3156:"11b7b3d8",3205:"a80da1cf",3495:"8a855f99",3514:"73664a40",3608:"9e4087bc",3743:"reactPlayerVimeo",4013:"01a85c17",4195:"c4f5d8e4",4277:"14716de7",4368:"a94703ab",4439:"reactPlayerYouTube",4478:"d1393a72",4641:"ada7accb",4651:"05632a52",4667:"reactPlayerMixcloud",4772:"b0378e01",4918:"1f7895dc",4955:"e226bb09",4985:"b839bf37",5377:"ce589067",5507:"8320e026",5858:"046910c8",5900:"38e3d9c8",6011:"reactPlayerFilePlayer",6033:"28b19cd2",6103:"ccc49370",6113:"13fdae3b",6125:"reactPlayerSoundCloud",6177:"611db08b",6216:"reactPlayerTwitch",6344:"984cf7cf",6543:"17e5210b",6759:"c9fa5aa5",6938:"608ae6a4",7100:"2c416566",7178:"096bfee4",7286:"451a5132",7414:"393be207",7475:"500027af",7596:"reactPlayerDailyMotion",7664:"reactPlayerPreview",7816:"06577f20",7894:"a88a3db3",7964:"2304e9ae",7971:"8a725248",8055:"reactPlayerWistia",8087:"e4f5c862",8106:"377084eb",8141:"98da7451",8163:"5a2de241",8215:"e5a49157",8468:"52d5c0f9",8474:"9640838e",8489:"7b076186",8518:"a7bd4aaa",8610:"6875c492",8636:"f4f34a3a",8766:"70853c19",8781:"489b8a4d",8784:"83cab870",8866:"eb56c656",8878:"cf03142d",8888:"reactPlayerVidyard",8892:"38ec836e",9003:"925b3f96",9010:"06b6ef6a",9035:"4c9e35b1",9588:"5c04ee3b",9642:"7661071f",9661:"5e95c892",9671:"0e384e19",9697:"2c586be5",9700:"e16015ca",9817:"14eb3368",9914:"0c0943c7"}[e]||e)+"."+{53:"2dbef7dd",110:"ab20026d",230:"3cc5e6e9",261:"4b30f79b",273:"68747bab",339:"4b03478f",420:"086699e6",453:"61f3e45f",533:"2d5f5b1d",762:"88a79f65",792:"7a4370d4",823:"81840a08",835:"ced0e4f6",841:"b9d70538",853:"6965f6a9",869:"6aa44f6d",948:"b2da1fd1",1001:"50ee673e",1332:"389c8736",1477:"b31b2642",1512:"7ddd2ec3",1520:"618d0da1",1531:"70967907",1633:"d8366831",1713:"fefd4794",1772:"c222a62c",1773:"d5cdc9ed",1893:"59606182",1914:"eb382def",2087:"b9b91e4e",2121:"c8df990c",2125:"9a2b70d2",2207:"a9080331",2213:"d47dd20f",2241:"e6e648f1",2245:"1fef8831",2267:"a4846e2b",2362:"ebdb1814",2403:"dfda5b34",2529:"2079a565",2535:"f3b6b0ab",2542:"969e89e9",2546:"665b04f4",2617:"56321ade",2832:"5c33accf",2865:"4cf479cc",2939:"4f3e9981",3085:"e5c5d651",3089:"84b5c675",3101:"47959e32",3156:"41df5616",3205:"af75d475",3495:"0316b8ef",3514:"b2437ac4",3608:"0e768bf1",3743:"2ede10ee",4013:"e5e25f55",4148:"aa6a1681",4195:"08242eba",4277:"69395083",4311:"86f3bfc6",4368:"7d12b1da",4439:"6a6454f7",4478:"021a0ceb",4641:"2592b532",4651:"e48c3f6b",4667:"c24bbf43",4682:"18721add",4772:"77d6969e",4918:"15f115ce",4955:"8f728b1e",4985:"da6a3fe1",5377:"ccefc9dc",5507:"36c41078",5858:"86987606",5900:"e113e88d",6011:"6de743c9",6033:"57dfdd1c",6103:"ebc8482f",6113:"f58acb33",6125:"9555c68b",6177:"90aa7cb5",6216:"0d890761",6344:"394ac727",6543:"7f67a86f",6759:"c81d0e01",6938:"d44251bf",7100:"dfa7c53a",7178:"9a58922d",7286:"95befe47",7414:"8d31e6a7",7475:"0b8bf361",7596:"95bca972",7664:"7fd4bae6",7816:"38bd8c71",7894:"a78443ac",7964:"c5d650a9",7971:"c367aea5",8055:"27482879",8087:"fd9041fd",8106:"907e2796",8140:"901b2f91",8141:"6478079e",8163:"5a92f5d2",8215:"c6b04c16",8468:"24a25302",8474:"f58804a4",8475:"d27b3009",8489:"fc1c0045",8518:"aaa08e5a",8531:"1f1a82a7",8610:"d85035d6",8636:"c590d949",8766:"ad06079f",8781:"e22cdaf5",8784:"5f29f05d",8866:"381cdff2",8878:"50c3bf68",8888:"f7352a9d",8892:"7315f43d",9003:"1e8e0783",9010:"a73dece2",9035:"37598b09",9588:"a3248228",9642:"223fec4f",9661:"33228fcd",9671:"8f2ee486",9697:"2035c76c",9700:"ad032cc8",9817:"424c677a",9914:"83d53850"}[e]+".js",t.miniCssF=e=>{},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},f="OpenSign-Docs:",t.l=(e,a,c,d)=>{if(b[e])b[e].push(a);else{var r,o;if(void 0!==c)for(var l=document.getElementsByTagName("script"),n=0;n{r.onerror=r.onload=null,clearTimeout(s);var f=b[e];if(delete b[e],r.parentNode&&r.parentNode.removeChild(r),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:r}),12e4);r.onerror=u.bind(null,r.onerror),r.onload=u.bind(null,r.onload),o&&document.head.appendChild(r)}},t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),t.p="/",t.gca=function(e){return e={59362658:"2267",66406991:"110","935f2afb":"53",d91ad230:"230",reactPlayerKaltura:"261",fa40969b:"273","4f7a2d40":"339",e2c87691:"420","30a24c52":"453",b2b675dd:"533",d8b805fb:"762","50ea61d6":"792",c7b98810:"823",ab2a161b:"835",c5e4dae0:"841","277a78f5":"853",b18842e4:"869","8717b14a":"948","8001f939":"1001",f0ff4a36:"1332",b2f554cd:"1477",e9e778b7:"1512","770b40a9":"1520",bbdfc22d:"1531","031793e1":"1633",a7023ddc:"1713",ef5d5d5d:"1773","4c5e977b":"1893",d9f32620:"1914",bfe4b778:"2087",reactPlayerFacebook:"2121",f214d5ff:"2125","78b2b753":"2207","1c822755":"2213","2ace9d1d":"2241",a2bc1463:"2245",e273c56f:"2362","38c56221":"2403","814f3328":"2535","5ce9853b":"2542",reactPlayerStreamable:"2546","56b5f4f8":"2617","1f73ca32":"2832","3e02da86":"2865",e21b07c7:"2939","1f391b9e":"3085",a6aa9e1f:"3089","64ee8796":"3101","11b7b3d8":"3156",a80da1cf:"3205","8a855f99":"3495","73664a40":"3514","9e4087bc":"3608",reactPlayerVimeo:"3743","01a85c17":"4013",c4f5d8e4:"4195","14716de7":"4277",a94703ab:"4368",reactPlayerYouTube:"4439",d1393a72:"4478",ada7accb:"4641","05632a52":"4651",reactPlayerMixcloud:"4667",b0378e01:"4772","1f7895dc":"4918",e226bb09:"4955",b839bf37:"4985",ce589067:"5377","8320e026":"5507","046910c8":"5858","38e3d9c8":"5900",reactPlayerFilePlayer:"6011","28b19cd2":"6033",ccc49370:"6103","13fdae3b":"6113",reactPlayerSoundCloud:"6125","611db08b":"6177",reactPlayerTwitch:"6216","984cf7cf":"6344","17e5210b":"6543",c9fa5aa5:"6759","608ae6a4":"6938","2c416566":"7100","096bfee4":"7178","451a5132":"7286","393be207":"7414","500027af":"7475",reactPlayerDailyMotion:"7596",reactPlayerPreview:"7664","06577f20":"7816",a88a3db3:"7894","2304e9ae":"7964","8a725248":"7971",reactPlayerWistia:"8055",e4f5c862:"8087","377084eb":"8106","98da7451":"8141","5a2de241":"8163",e5a49157:"8215","52d5c0f9":"8468","9640838e":"8474","7b076186":"8489",a7bd4aaa:"8518","6875c492":"8610",f4f34a3a:"8636","70853c19":"8766","489b8a4d":"8781","83cab870":"8784",eb56c656:"8866",cf03142d:"8878",reactPlayerVidyard:"8888","38ec836e":"8892","925b3f96":"9003","06b6ef6a":"9010","4c9e35b1":"9035","5c04ee3b":"9588","7661071f":"9642","5e95c892":"9661","0e384e19":"9671","2c586be5":"9697",e16015ca:"9700","14eb3368":"9817","0c0943c7":"9914"}[e]||e,t.p+t.u(e)},(()=>{var e={1303:0,532:0};t.f.j=(a,c)=>{var b=t.o(e,a)?e[a]:void 0;if(0!==b)if(b)c.push(b[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>b=e[a]=[c,f]));c.push(b[2]=f);var d=t.p+t.u(a),r=new Error;t.l(d,(c=>{if(t.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var f=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;r.message="Loading chunk "+a+" failed.\n("+f+": "+d+")",r.name="ChunkLoadError",r.type=f,r.request=d,b[1](r)}}),"chunk-"+a,a)}},t.O.j=a=>0===e[a];var a=(a,c)=>{var b,f,d=c[0],r=c[1],o=c[2],l=0;if(d.some((a=>0!==e[a]))){for(b in r)t.o(r,b)&&(t.m[b]=r[b]);if(o)var n=o(t)}for(a&&a(c);l Archive | OpenSign™ - + diff --git a/blog/first-blog-post/index.html b/blog/first-blog-post/index.html index a305dd104..0b3cefe6d 100644 --- a/blog/first-blog-post/index.html +++ b/blog/first-blog-post/index.html @@ -5,7 +5,7 @@ First Blog Post | OpenSign™ - + diff --git a/blog/index.html b/blog/index.html index d63eece8b..6f7e459f1 100644 --- a/blog/index.html +++ b/blog/index.html @@ -5,7 +5,7 @@ Blog | OpenSign™ - + diff --git a/blog/long-blog-post/index.html b/blog/long-blog-post/index.html index acb6e2c71..1d62a785f 100644 --- a/blog/long-blog-post/index.html +++ b/blog/long-blog-post/index.html @@ -5,7 +5,7 @@ Long Blog Post | OpenSign™ - + diff --git a/blog/mdx-blog-post/index.html b/blog/mdx-blog-post/index.html index 31586e958..9df807838 100644 --- a/blog/mdx-blog-post/index.html +++ b/blog/mdx-blog-post/index.html @@ -5,7 +5,7 @@ MDX Blog Post | OpenSign™ - + diff --git a/blog/tags/docusaurus/index.html b/blog/tags/docusaurus/index.html index c899108ff..b4f9e037e 100644 --- a/blog/tags/docusaurus/index.html +++ b/blog/tags/docusaurus/index.html @@ -5,7 +5,7 @@ 4 posts tagged with "docusaurus" | OpenSign™ - + diff --git a/blog/tags/facebook/index.html b/blog/tags/facebook/index.html index 3befe1c76..d679d3662 100644 --- a/blog/tags/facebook/index.html +++ b/blog/tags/facebook/index.html @@ -5,7 +5,7 @@ One post tagged with "facebook" | OpenSign™ - + diff --git a/blog/tags/hello/index.html b/blog/tags/hello/index.html index e72663de3..7bee1439c 100644 --- a/blog/tags/hello/index.html +++ b/blog/tags/hello/index.html @@ -5,7 +5,7 @@ 2 posts tagged with "hello" | OpenSign™ - + diff --git a/blog/tags/hola/index.html b/blog/tags/hola/index.html index dbc2e0f46..581de4dcc 100644 --- a/blog/tags/hola/index.html +++ b/blog/tags/hola/index.html @@ -5,7 +5,7 @@ One post tagged with "hola" | OpenSign™ - + diff --git a/blog/tags/index.html b/blog/tags/index.html index 01fe39897..6909cabe2 100644 --- a/blog/tags/index.html +++ b/blog/tags/index.html @@ -5,7 +5,7 @@ Tags | OpenSign™ - + diff --git a/blog/welcome/index.html b/blog/welcome/index.html index e48a3e1d4..14445ab89 100644 --- a/blog/welcome/index.html +++ b/blog/welcome/index.html @@ -5,7 +5,7 @@ Welcome | OpenSign™ - + diff --git a/docs/API-docs/contactlist/index.html b/docs/API-docs/contactlist/index.html index 159d310e2..49919ed20 100644 --- a/docs/API-docs/contactlist/index.html +++ b/docs/API-docs/contactlist/index.html @@ -5,7 +5,7 @@ Get Contact list | OpenSign™ - + diff --git a/docs/API-docs/createcontact/index.html b/docs/API-docs/createcontact/index.html index b139455aa..226328bbf 100644 --- a/docs/API-docs/createcontact/index.html +++ b/docs/API-docs/createcontact/index.html @@ -5,7 +5,7 @@ Create Contact | OpenSign™ - + diff --git a/docs/API-docs/createdocument/index.html b/docs/API-docs/createdocument/index.html index 0ed775be8..b6fdbe4bf 100644 --- a/docs/API-docs/createdocument/index.html +++ b/docs/API-docs/createdocument/index.html @@ -5,7 +5,7 @@ Create Document | OpenSign™ - + diff --git a/docs/API-docs/createdocumentwithtemplateid/index.html b/docs/API-docs/createdocumentwithtemplateid/index.html index 9912b3383..0e2e675a7 100644 --- a/docs/API-docs/createdocumentwithtemplateid/index.html +++ b/docs/API-docs/createdocumentwithtemplateid/index.html @@ -5,7 +5,7 @@ Create Document from Template | OpenSign™ - + diff --git a/docs/API-docs/createfolder/index.html b/docs/API-docs/createfolder/index.html index b6a517f8f..64b9cabda 100644 --- a/docs/API-docs/createfolder/index.html +++ b/docs/API-docs/createfolder/index.html @@ -5,7 +5,7 @@ Create Folder | OpenSign™ - + diff --git a/docs/API-docs/createtemplate/index.html b/docs/API-docs/createtemplate/index.html index c0135313f..11355ba3e 100644 --- a/docs/API-docs/createtemplate/index.html +++ b/docs/API-docs/createtemplate/index.html @@ -5,7 +5,7 @@ Create Template | OpenSign™ - + diff --git a/docs/API-docs/delete-template/index.html b/docs/API-docs/delete-template/index.html index 4522ce267..610eea5e7 100644 --- a/docs/API-docs/delete-template/index.html +++ b/docs/API-docs/delete-template/index.html @@ -5,7 +5,7 @@ Delete Template | OpenSign™ - + diff --git a/docs/API-docs/delete-webhook/index.html b/docs/API-docs/delete-webhook/index.html index 2a2f740c3..b83c1f299 100644 --- a/docs/API-docs/delete-webhook/index.html +++ b/docs/API-docs/delete-webhook/index.html @@ -5,7 +5,7 @@ Delete Webhook | OpenSign™ - + diff --git a/docs/API-docs/deletecontact/index.html b/docs/API-docs/deletecontact/index.html index a67bca891..b0b2c5575 100644 --- a/docs/API-docs/deletecontact/index.html +++ b/docs/API-docs/deletecontact/index.html @@ -5,7 +5,7 @@ Delete Contact | OpenSign™ - + diff --git a/docs/API-docs/deletedocument/index.html b/docs/API-docs/deletedocument/index.html index d0397a7d1..1a3961c8c 100644 --- a/docs/API-docs/deletedocument/index.html +++ b/docs/API-docs/deletedocument/index.html @@ -5,7 +5,7 @@ Delete Document | OpenSign™ - + diff --git a/docs/API-docs/deletefolder/index.html b/docs/API-docs/deletefolder/index.html index 8cb378f1b..a66ccfc4f 100644 --- a/docs/API-docs/deletefolder/index.html +++ b/docs/API-docs/deletefolder/index.html @@ -5,7 +5,7 @@ Delete Folder | OpenSign™ - + diff --git a/docs/API-docs/draftedocument/index.html b/docs/API-docs/draftedocument/index.html index 6525cbe7b..c6b42680e 100644 --- a/docs/API-docs/draftedocument/index.html +++ b/docs/API-docs/draftedocument/index.html @@ -5,7 +5,7 @@ Draft Document | OpenSign™ - + diff --git a/docs/API-docs/folderlist/index.html b/docs/API-docs/folderlist/index.html index cb8154c85..672273b1f 100644 --- a/docs/API-docs/folderlist/index.html +++ b/docs/API-docs/folderlist/index.html @@ -5,7 +5,7 @@ Get folder list | OpenSign™ - + diff --git a/docs/API-docs/get-template/index.html b/docs/API-docs/get-template/index.html index e29f1f034..53d254726 100644 --- a/docs/API-docs/get-template/index.html +++ b/docs/API-docs/get-template/index.html @@ -5,7 +5,7 @@ Get Template | OpenSign™ - + diff --git a/docs/API-docs/get-user/index.html b/docs/API-docs/get-user/index.html index e98673486..276b0076f 100644 --- a/docs/API-docs/get-user/index.html +++ b/docs/API-docs/get-user/index.html @@ -5,7 +5,7 @@ Get your account details | OpenSign™ - + diff --git a/docs/API-docs/get-webhook/index.html b/docs/API-docs/get-webhook/index.html index c55580b60..aaedd452c 100644 --- a/docs/API-docs/get-webhook/index.html +++ b/docs/API-docs/get-webhook/index.html @@ -5,7 +5,7 @@ Get Webhook | OpenSign™ - + diff --git a/docs/API-docs/getcontact/index.html b/docs/API-docs/getcontact/index.html index df1e85687..ef424252b 100644 --- a/docs/API-docs/getcontact/index.html +++ b/docs/API-docs/getcontact/index.html @@ -5,7 +5,7 @@ Get Contact | OpenSign™ - + diff --git a/docs/API-docs/getdocument/index.html b/docs/API-docs/getdocument/index.html index 6c319f767..82e8efe29 100644 --- a/docs/API-docs/getdocument/index.html +++ b/docs/API-docs/getdocument/index.html @@ -5,7 +5,7 @@ Get Document | OpenSign™ - + diff --git a/docs/API-docs/getdocumentlist/index.html b/docs/API-docs/getdocumentlist/index.html index 401351046..cd1bf57cd 100644 --- a/docs/API-docs/getdocumentlist/index.html +++ b/docs/API-docs/getdocumentlist/index.html @@ -5,7 +5,7 @@ Get Document list from status | OpenSign™ - + diff --git a/docs/API-docs/getfolder/index.html b/docs/API-docs/getfolder/index.html index d3c091cf5..13d30a235 100644 --- a/docs/API-docs/getfolder/index.html +++ b/docs/API-docs/getfolder/index.html @@ -5,7 +5,7 @@ Get Folder | OpenSign™ - + diff --git a/docs/API-docs/gettemplatelist/index.html b/docs/API-docs/gettemplatelist/index.html index ea75d0464..7b9422fb0 100644 --- a/docs/API-docs/gettemplatelist/index.html +++ b/docs/API-docs/gettemplatelist/index.html @@ -5,7 +5,7 @@ Get Template list | OpenSign™ - + diff --git a/docs/API-docs/intro/index.html b/docs/API-docs/intro/index.html index 793415105..88cc5be9b 100644 --- a/docs/API-docs/intro/index.html +++ b/docs/API-docs/intro/index.html @@ -5,7 +5,7 @@ Overview | OpenSign™ - + diff --git a/docs/API-docs/opensign-api-v-1/index.html b/docs/API-docs/opensign-api-v-1/index.html index ef7220477..730e1192b 100644 --- a/docs/API-docs/opensign-api-v-1/index.html +++ b/docs/API-docs/opensign-api-v-1/index.html @@ -5,7 +5,7 @@ OpenSign API v1 | OpenSign™ - + diff --git a/docs/API-docs/resendrequestmail/index.html b/docs/API-docs/resendrequestmail/index.html index 61f33e400..03ed5140f 100644 --- a/docs/API-docs/resendrequestmail/index.html +++ b/docs/API-docs/resendrequestmail/index.html @@ -5,7 +5,7 @@ Resend request mail | OpenSign™ - + diff --git a/docs/API-docs/save-update-webhook/index.html b/docs/API-docs/save-update-webhook/index.html index d1e662db5..8963262b1 100644 --- a/docs/API-docs/save-update-webhook/index.html +++ b/docs/API-docs/save-update-webhook/index.html @@ -5,7 +5,7 @@ Save or Update Webhook | OpenSign™ - + diff --git a/docs/API-docs/update-document/index.html b/docs/API-docs/update-document/index.html index 144ebf256..398c9cc2d 100644 --- a/docs/API-docs/update-document/index.html +++ b/docs/API-docs/update-document/index.html @@ -5,7 +5,7 @@ Update Document | OpenSign™ - + diff --git a/docs/API-docs/update-template/index.html b/docs/API-docs/update-template/index.html index 877d64442..24a262a42 100644 --- a/docs/API-docs/update-template/index.html +++ b/docs/API-docs/update-template/index.html @@ -5,7 +5,7 @@ Update Template | OpenSign™ - + diff --git a/docs/API-docs/updatefolder/index.html b/docs/API-docs/updatefolder/index.html index f8bec2914..3fad0867c 100644 --- a/docs/API-docs/updatefolder/index.html +++ b/docs/API-docs/updatefolder/index.html @@ -5,7 +5,7 @@ Update Folder | OpenSign™ - + diff --git a/docs/category/cloud-storage/index.html b/docs/category/cloud-storage/index.html index 93d439698..ae08f8f56 100644 --- a/docs/category/cloud-storage/index.html +++ b/docs/category/cloud-storage/index.html @@ -5,7 +5,7 @@ Cloud Storage | OpenSign™ - + diff --git a/docs/category/create-new-opensign-document/index.html b/docs/category/create-new-opensign-document/index.html index 85d2287e8..40ab3baec 100644 --- a/docs/category/create-new-opensign-document/index.html +++ b/docs/category/create-new-opensign-document/index.html @@ -5,7 +5,7 @@ Create New OpenSign Document | OpenSign™ - + diff --git a/docs/category/docker/index.html b/docs/category/docker/index.html index c99f35b91..67897ab0f 100644 --- a/docs/category/docker/index.html +++ b/docs/category/docker/index.html @@ -5,7 +5,7 @@ Docker | OpenSign™ - + diff --git a/docs/category/faqs/index.html b/docs/category/faqs/index.html index 2e6f84bb7..809ecd1d5 100644 --- a/docs/category/faqs/index.html +++ b/docs/category/faqs/index.html @@ -5,7 +5,7 @@ FAQs | OpenSign™ - + diff --git a/docs/category/guides/index.html b/docs/category/guides/index.html index 0edf61eea..21a7484a3 100644 --- a/docs/category/guides/index.html +++ b/docs/category/guides/index.html @@ -5,7 +5,7 @@ Guides | OpenSign™ - + diff --git a/docs/category/manage-docs-using-opensign-drive/index.html b/docs/category/manage-docs-using-opensign-drive/index.html index 27e94ca07..1d9e46c4a 100644 --- a/docs/category/manage-docs-using-opensign-drive/index.html +++ b/docs/category/manage-docs-using-opensign-drive/index.html @@ -5,7 +5,7 @@ Manage Docs using OpenSign™ Drive | OpenSign™ - + diff --git a/docs/category/reports/index.html b/docs/category/reports/index.html index 231c3683b..58b71dab9 100644 --- a/docs/category/reports/index.html +++ b/docs/category/reports/index.html @@ -5,7 +5,7 @@ Reports | OpenSign™ - + diff --git a/docs/category/settings/index.html b/docs/category/settings/index.html index 11603ca8a..93744a752 100644 --- a/docs/category/settings/index.html +++ b/docs/category/settings/index.html @@ -5,7 +5,7 @@ Settings | OpenSign™ - + diff --git a/docs/category/templates/index.html b/docs/category/templates/index.html index 5aa603bc4..b912f9dbf 100644 --- a/docs/category/templates/index.html +++ b/docs/category/templates/index.html @@ -5,7 +5,7 @@ Templates | OpenSign™ - + diff --git a/docs/contribute/CODE_OF_CONDUCT/index.html b/docs/contribute/CODE_OF_CONDUCT/index.html index 76e216a84..8cd4855a2 100644 --- a/docs/contribute/CODE_OF_CONDUCT/index.html +++ b/docs/contribute/CODE_OF_CONDUCT/index.html @@ -5,7 +5,7 @@ Code of conduct | OpenSign™ - + diff --git a/docs/contribute/COMMUNITY/index.html b/docs/contribute/COMMUNITY/index.html index a02728096..4078a6b18 100644 --- a/docs/contribute/COMMUNITY/index.html +++ b/docs/contribute/COMMUNITY/index.html @@ -5,7 +5,7 @@ Community at OpenSign™ | OpenSign™ - + diff --git a/docs/contribute/INSTALLATION/index.html b/docs/contribute/INSTALLATION/index.html index c1a62f1e9..d99a261a4 100644 --- a/docs/contribute/INSTALLATION/index.html +++ b/docs/contribute/INSTALLATION/index.html @@ -5,7 +5,7 @@ Installation instructions | OpenSign™ - + diff --git a/docs/contribute/REPORTING_GUIDELINES/index.html b/docs/contribute/REPORTING_GUIDELINES/index.html index 2e03de79f..c0b74c313 100644 --- a/docs/contribute/REPORTING_GUIDELINES/index.html +++ b/docs/contribute/REPORTING_GUIDELINES/index.html @@ -5,7 +5,7 @@ OpenSign™ Reporting Guidelines | OpenSign™ - + diff --git a/docs/contribute/intro/index.html b/docs/contribute/intro/index.html index 326e10ff5..96ea11ee3 100644 --- a/docs/contribute/intro/index.html +++ b/docs/contribute/intro/index.html @@ -5,7 +5,7 @@ Contributing to OpenSign | OpenSign™ - + diff --git a/docs/help/FAQs/Ensure this field is accurately filled and meets all requirements/index.html b/docs/help/FAQs/Ensure this field is accurately filled and meets all requirements/index.html index 723552234..d351eaf16 100644 --- a/docs/help/FAQs/Ensure this field is accurately filled and meets all requirements/index.html +++ b/docs/help/FAQs/Ensure this field is accurately filled and meets all requirements/index.html @@ -5,7 +5,7 @@ Why am I getting 'Ensure this field is accurately filled and meets all requirements'? | OpenSign™ - + diff --git a/docs/help/FAQs/index.html b/docs/help/FAQs/index.html index 1bb11ff9f..566587800 100644 --- a/docs/help/FAQs/index.html +++ b/docs/help/FAQs/index.html @@ -5,7 +5,7 @@ Why is there no dropdown list when I sign a document myself? | OpenSign™ - + diff --git a/docs/help/New-Document/navigate-between-pages/index.html b/docs/help/New-Document/navigate-between-pages/index.html index c3ecb342a..12f363aaf 100644 --- a/docs/help/New-Document/navigate-between-pages/index.html +++ b/docs/help/New-Document/navigate-between-pages/index.html @@ -5,7 +5,7 @@ Navigate between pages of a document | OpenSign™ - + diff --git a/docs/help/New-Document/request-signatures/index.html b/docs/help/New-Document/request-signatures/index.html index 2e9149374..3c104058f 100644 --- a/docs/help/New-Document/request-signatures/index.html +++ b/docs/help/New-Document/request-signatures/index.html @@ -5,7 +5,7 @@ Request signatures | OpenSign™ - + diff --git a/docs/help/New-Document/sign-yourself/index.html b/docs/help/New-Document/sign-yourself/index.html index a15f0e4e6..8771791ca 100644 --- a/docs/help/New-Document/sign-yourself/index.html +++ b/docs/help/New-Document/sign-yourself/index.html @@ -5,7 +5,7 @@ sign-yourself | OpenSign™ - + diff --git a/docs/help/OpenSign™ Drive/create-document/index.html b/docs/help/OpenSign™ Drive/create-document/index.html index f7a9cd396..1c4dcdae7 100644 --- a/docs/help/OpenSign™ Drive/create-document/index.html +++ b/docs/help/OpenSign™ Drive/create-document/index.html @@ -5,7 +5,7 @@ Create Docs & Folders | OpenSign™ - + diff --git a/docs/help/OpenSign™ Drive/list-grid-view/index.html b/docs/help/OpenSign™ Drive/list-grid-view/index.html index 52401a407..ac46b201c 100644 --- a/docs/help/OpenSign™ Drive/list-grid-view/index.html +++ b/docs/help/OpenSign™ Drive/list-grid-view/index.html @@ -5,7 +5,7 @@ Grid vs List view | OpenSign™ - + diff --git a/docs/help/OpenSign™ Drive/organize-documents/index.html b/docs/help/OpenSign™ Drive/organize-documents/index.html index a02548ece..75e556ca8 100644 --- a/docs/help/OpenSign™ Drive/organize-documents/index.html +++ b/docs/help/OpenSign™ Drive/organize-documents/index.html @@ -5,7 +5,7 @@ OpenSign™ Drive Interface Documentation | OpenSign™ - + diff --git a/docs/help/OpenSign™ Drive/rename-document/index.html b/docs/help/OpenSign™ Drive/rename-document/index.html index e7874686b..426a3d402 100644 --- a/docs/help/OpenSign™ Drive/rename-document/index.html +++ b/docs/help/OpenSign™ Drive/rename-document/index.html @@ -5,7 +5,7 @@ Rename documents from OpenSign™ Drive | OpenSign™ - + diff --git a/docs/help/Reports/completed/index.html b/docs/help/Reports/completed/index.html index fb5cb426d..f13b78e9f 100644 --- a/docs/help/Reports/completed/index.html +++ b/docs/help/Reports/completed/index.html @@ -5,7 +5,7 @@ Completed | OpenSign™ - + diff --git a/docs/help/Reports/declined/index.html b/docs/help/Reports/declined/index.html index 08fc4286d..302de1440 100644 --- a/docs/help/Reports/declined/index.html +++ b/docs/help/Reports/declined/index.html @@ -5,7 +5,7 @@ Declined | OpenSign™ - + diff --git a/docs/help/Reports/drafts/index.html b/docs/help/Reports/drafts/index.html index 73a2b7145..f90dbc652 100644 --- a/docs/help/Reports/drafts/index.html +++ b/docs/help/Reports/drafts/index.html @@ -5,7 +5,7 @@ Drafts | OpenSign™ - + diff --git a/docs/help/Reports/expired/index.html b/docs/help/Reports/expired/index.html index 137ed2392..ff6fa1c9a 100644 --- a/docs/help/Reports/expired/index.html +++ b/docs/help/Reports/expired/index.html @@ -5,7 +5,7 @@ Expired | OpenSign™ - + diff --git a/docs/help/Reports/in-progress/index.html b/docs/help/Reports/in-progress/index.html index 91f2d3fa2..be74b69fe 100644 --- a/docs/help/Reports/in-progress/index.html +++ b/docs/help/Reports/in-progress/index.html @@ -5,7 +5,7 @@ In Progress | OpenSign™ - + diff --git a/docs/help/Reports/need-your-sign/index.html b/docs/help/Reports/need-your-sign/index.html index aa0e4c254..5f66cb1ce 100644 --- a/docs/help/Reports/need-your-sign/index.html +++ b/docs/help/Reports/need-your-sign/index.html @@ -5,7 +5,7 @@ Need your sign | OpenSign™ - + diff --git a/docs/help/Settings/disabledocumentid/index.html b/docs/help/Settings/disabledocumentid/index.html index fb9cc09c7..47ac048b0 100644 --- a/docs/help/Settings/disabledocumentid/index.html +++ b/docs/help/Settings/disabledocumentid/index.html @@ -5,7 +5,7 @@ Disable DocumentId | OpenSign™ - + diff --git a/docs/help/Settings/manage-users/index.html b/docs/help/Settings/manage-users/index.html index 3e510e069..c2f9fc5b3 100644 --- a/docs/help/Settings/manage-users/index.html +++ b/docs/help/Settings/manage-users/index.html @@ -5,7 +5,7 @@ Manage users | OpenSign™ - + diff --git a/docs/help/Settings/my-signature/index.html b/docs/help/Settings/my-signature/index.html index 25e854bfc..ef9c45af6 100644 --- a/docs/help/Settings/my-signature/index.html +++ b/docs/help/Settings/my-signature/index.html @@ -5,7 +5,7 @@ My Signature | OpenSign™ - + diff --git a/docs/help/Templates/create-template/index.html b/docs/help/Templates/create-template/index.html index 9707ac6fd..1d04359a3 100644 --- a/docs/help/Templates/create-template/index.html +++ b/docs/help/Templates/create-template/index.html @@ -5,7 +5,7 @@ Create Templates | OpenSign™ - + diff --git a/docs/help/Templates/quick-send/index.html b/docs/help/Templates/quick-send/index.html index 3d593e72f..048bea249 100644 --- a/docs/help/Templates/quick-send/index.html +++ b/docs/help/Templates/quick-send/index.html @@ -5,7 +5,7 @@ Quickly Send template to a signer | OpenSign™ - + diff --git a/docs/help/Templates/use-template/index.html b/docs/help/Templates/use-template/index.html index 55e4cca0b..aa5f2bf44 100644 --- a/docs/help/Templates/use-template/index.html +++ b/docs/help/Templates/use-template/index.html @@ -5,7 +5,7 @@ Use template to create documents | OpenSign™ - + diff --git a/docs/help/intro/index.html b/docs/help/intro/index.html index 9edcba109..867811169 100644 --- a/docs/help/intro/index.html +++ b/docs/help/intro/index.html @@ -5,7 +5,7 @@ Intro | OpenSign™ - + diff --git a/docs/intro/index.html b/docs/intro/index.html index 3558772a2..34e7cd7e0 100644 --- a/docs/intro/index.html +++ b/docs/intro/index.html @@ -5,7 +5,7 @@ Tutorial Intro | OpenSign™ - + diff --git a/docs/self-host/One-click-Install/DigitalOcean/index.html b/docs/self-host/One-click-Install/DigitalOcean/index.html index 7980333ec..1863f54c7 100644 --- a/docs/self-host/One-click-Install/DigitalOcean/index.html +++ b/docs/self-host/One-click-Install/DigitalOcean/index.html @@ -5,7 +5,7 @@ Digital Ocean | OpenSign™ - + diff --git a/docs/self-host/cloud-storage/s3/index.html b/docs/self-host/cloud-storage/s3/index.html index 08afda284..cb7edf5ba 100644 --- a/docs/self-host/cloud-storage/s3/index.html +++ b/docs/self-host/cloud-storage/s3/index.html @@ -5,7 +5,7 @@ AWS S3 | OpenSign™ - + diff --git a/docs/self-host/docker/run-locally-windows/index.html b/docs/self-host/docker/run-locally-windows/index.html index 23e720a61..08c02931d 100644 --- a/docs/self-host/docker/run-locally-windows/index.html +++ b/docs/self-host/docker/run-locally-windows/index.html @@ -5,7 +5,7 @@ Localhost OpenSign™ Setup with Docker on Windows | OpenSign™ - + diff --git a/docs/self-host/docker/run-locally/index.html b/docs/self-host/docker/run-locally/index.html index 4719317e3..ba090b1a2 100644 --- a/docs/self-host/docker/run-locally/index.html +++ b/docs/self-host/docker/run-locally/index.html @@ -5,7 +5,7 @@ Self-host OpenSign™ with Docker on Linux/MacOS/Windows | OpenSign™ - + @@ -18,9 +18,9 @@
export HOST_URL=https://opensign.yourdomain.com && curl --remote-name-all https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/docker-compose.yml https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/Caddyfile https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/.env.local_dev && mv .env.local_dev .env.prod && docker compose up --force-recreate

Command for Windows (Powershell)

$env:HOST_URL="https://opensign.yourdomain.com"; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/docker-compose.yml -OutFile docker-compose.yml; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/Caddyfile -OutFile Caddyfile; Invoke-WebRequest -Uri https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/.env.local_dev -OutFile .env.local_dev; Rename-Item -Path .env.local_dev -NewName .env.prod; docker compose up --force-recreate
-

and Hit Enter start the containers automatically. Make sure that you replace the host URL with your subdomain from where OpenSign will be accessible. You need to point the subdomain to the server you are running these commands by adding the necessary A record to your DNS.

+

and Hit Enter to start the containers automatically. Make sure to replace the host URL with your subdomain where OpenSign will be accessible. You need to point the subdomain to the server where you are running these commands by adding the necessary A record to your DNS.

    -
  1. If you want to test it locally, remove export HOST_URL=https://opensign.yourdomain.com && for Linux/MacOS and $env:HOST_URL="https://opensign.yourdomain.com"; for Windows. Once deployed successfully, follow the steps from the screenshots.
  2. +
  3. If you want to test it locally, remove export HOST_URL=https://opensign.yourdomain.com && for Linux/MacOS and $env:HOST_URL="https://opensign.yourdomain.com"; for Windows. Once deployed successfully, it will be accessible at https://localhost:3001. Follow the steps from the screenshots."
localhost
proceedtolocalhost
@@ -28,7 +28,7 @@

Information About ENV variables which are used to setup OpenSign™ with Docker on Localhost

To set up OpenSign™ locally using Docker, the following prerequisites are required:

Add below Environment Varaibles to the ".env.prod" file that is automatically created in order to personalize your installation:

-
Environment VaribaleValueDescription
PUBLIC_URLhttps://localhost:3001Set it to the URL form where the app home page will be accessed
APP_IDopensignA 12 character long random app identifier. The value of this should be same as REACT_APP_APPID which is a variable used by Frontend React App.
appNameopen_sign_serverName of the app. It will be visible in the verification emails sent out.
MASTER_KEYXnAadwKxxByMrA 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.
MONGODB_URImongodb://mongo-container:27017/OpenSignDBMongodb URI to connect to
PARSE_MOUNT/appPath on which APIs should be mounted. Do not change this. This variable shall be removed & value hardcoded in the source code in coming versions.
SERVER_URLhttp://localhost:8080/appSet it to the URL from where APIs will be accessible to the NodeJS functions, for local development it should be localhost:8080/app (use your local port number instead)
DO_SPACEDOSPACENAMEDigital ocean space name or AWS S3 bucket name for uploading documents
DO_ENDPOINTams3.digitaloceanspaces.comDigital ocean spaces endpoint or AWS S3 endpoint for uploading documents
DO_BASEURLhttps://dospace.ams3.digitaloceanspaces.comDigital ocean baseurl or AWS S3 base URL
DO_ACCESS_KEY_IDYOUR_S3_ACCESS_IDDigital ocean spaces access key ID or AWS s3 Access key ID for uploading the docs
DO_SECRET_ACCESS_KEYYOUR_S3_ACCESS_KEYDigital ocean spaces secret access key or AWS s3 secret access key for uploading the docs
DO_REGIONYOUR_S3_REGIONDigital ocean spaces region or AWS s3 region
USE_LOCALtrueTo use local file storage to save file
MAILGUN_API_KEYYOUR_MAILGUNAPI_KEYMailgun API Key
MAILGUN_DOMAINYOUR_MAILGUNAPI_DOMAINMailgun API Domain
MAILGUN_SENDER-Mailgun Sender Mail ID
SMTP_ENABLEfalseto enable SMTP
SMTP_HOSTsmtp.yourhost.comProvide smtp host
SMTP_PORT443Provide smtp port number
SMTP_USER_EMAILmailer@yourdomain.comProvide user email of smtp
SMTP_PASSpasswordProvide smtp password
PFX_BASE64-Base64 encoded PFX or p12 document signing certificate file. You can generate base64 encoded self sign certificate using the passphrase.
PASS_PHRASEopensignPass phrase of PFX or p12 document signing certificate file.
+
Environment VaribaleValueDescription
PUBLIC_URLhttps://localhost:3001 or https://opensign.yourdomain.comSet it to the URL form where the app home page will be accessed
APP_IDopensignA 12 character long random app identifier. The value of this should be same as REACT_APP_APPID which is a variable used by Frontend React App.
appNameopen_sign_serverName of the app. It will be visible in the verification emails sent out.
MASTER_KEYXnAadwKxxByMrA 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.
MONGODB_URImongodb://mongo-container:27017/OpenSignDBMongodb URI to connect to
PARSE_MOUNT/appPath on which APIs should be mounted. Do not change this. This variable shall be removed & value hardcoded in the source code in coming versions.
SERVER_URLhttp://localhost:8080/appSet it to the URL from where APIs will be accessible to the NodeJS functions, for local development it should be localhost:8080/app
DO_SPACEDOSPACENAMEDigital ocean space name or AWS S3 bucket name for uploading documents
DO_ENDPOINTams3.digitaloceanspaces.comDigital ocean spaces endpoint or AWS S3 endpoint for uploading documents
DO_BASEURLhttps://dospace.ams3.digitaloceanspaces.comDigital ocean baseurl or AWS S3 base URL
DO_ACCESS_KEY_IDYOUR_S3_ACCESS_IDDigital ocean spaces access key ID or AWS s3 Access key ID for uploading the docs
DO_SECRET_ACCESS_KEYYOUR_S3_ACCESS_KEYDigital ocean spaces secret access key or AWS s3 secret access key for uploading the docs
DO_REGIONYOUR_S3_REGIONDigital ocean spaces region or AWS s3 region
USE_LOCALtrueIf this is set to true, local file storage will be used to save files, and DO credentials will be ignored.
MAILGUN_API_KEYYOUR_MAILGUNAPI_KEYMailgun API Key
MAILGUN_DOMAINYOUR_MAILGUNAPI_DOMAINMailgun API Domain
MAILGUN_SENDER-Mailgun Sender Mail ID
SMTP_ENABLEfalseIf this is set to true, emails will be sent through SMTP, and Mailgun credentials will be ignored.
SMTP_HOSTsmtp.yourhost.comProvide smtp host
SMTP_PORT443Provide smtp port number
SMTP_USER_EMAILmailer@yourdomain.comProvide user email of smtp
SMTP_PASSpasswordProvide smtp password
PFX_BASE64-Base64 encoded PFX or p12 document signing certificate file. You can generate base64 encoded self sign certificate using the passphrase.
PASS_PHRASEopensignPass phrase of PFX or p12 document signing certificate file.

Steps to Generate Self Sign Certificate

# execute below command and use passphrase 'opensign'
openssl genrsa -des3 -out ./local_dev.key 2048
openssl req -key ./local_dev.key -new -x509 -days 365 -out ./local_dev.crt
openssl pkcs12 -inkey ./local_dev.key -in ./local_dev.crt -export -out ./local_dev.pfx
openssl base64 -in ./local_dev.pfx -out ./base64_pfx

CORS Configuration

diff --git a/docs/self-host/guides/env-variables/index.html b/docs/self-host/guides/env-variables/index.html index 4fb22d8e8..728844e03 100644 --- a/docs/self-host/guides/env-variables/index.html +++ b/docs/self-host/guides/env-variables/index.html @@ -5,7 +5,7 @@ ENV variables which are used to setup OpenSign™ with Docker on Localhost | OpenSign™ - + diff --git a/docs/self-host/guides/how-to-generate-self-signed-document-signing-certificate/index.html b/docs/self-host/guides/how-to-generate-self-signed-document-signing-certificate/index.html index 131e0e878..e7a14169d 100644 --- a/docs/self-host/guides/how-to-generate-self-signed-document-signing-certificate/index.html +++ b/docs/self-host/guides/how-to-generate-self-signed-document-signing-certificate/index.html @@ -5,7 +5,7 @@ How to generate self-signed document signing certificate? | OpenSign™ - + diff --git a/docs/self-host/guides/upgrade-to-v2.1.0/index.html b/docs/self-host/guides/upgrade-to-v2.1.0/index.html index a919fb983..1268d31fd 100644 --- a/docs/self-host/guides/upgrade-to-v2.1.0/index.html +++ b/docs/self-host/guides/upgrade-to-v2.1.0/index.html @@ -5,7 +5,7 @@ How to upgrade self-hosted OpenSign to v2.1.0? | OpenSign™ - + diff --git a/docs/self-host/intro/index.html b/docs/self-host/intro/index.html index 35ee4a8b7..acac9ce50 100644 --- a/docs/self-host/intro/index.html +++ b/docs/self-host/intro/index.html @@ -5,7 +5,7 @@ Self-Hosting OpenSign | OpenSign™ - + diff --git a/index.html b/index.html index 24a111f8a..8970ebb28 100644 --- a/index.html +++ b/index.html @@ -5,7 +5,7 @@ Official OpenSign™ Docs - tutorials, API documentation, self-host help & much more. | OpenSign™ - + diff --git a/markdown-page/index.html b/markdown-page/index.html index 2a0fd5a2a..5155cc223 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -5,7 +5,7 @@ Markdown page example | OpenSign™ - +