diff --git a/404.html b/404.html index 4dad9afb9..52fc56dc3 100644 --- a/404.html +++ b/404.html @@ -5,7 +5,7 @@ Page Not Found | OpenSign™ - + diff --git a/assets/js/489b8a4d.bbadc29e.js b/assets/js/489b8a4d.bbadc29e.js new file mode 100644 index 000000000..d5828af42 --- /dev/null +++ b/assets/js/489b8a4d.bbadc29e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[8781],{44907:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var o=t(85893),s=t(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:"Docker",permalink:"/docs/category/docker"},next:{title:"OpenSign\u2122 Self-Hosted 'Upgrade Deployment' Guide Using Docker on Linux, macOS, or Windows",permalink:"/docs/self-host/docker/upgrade-deployment"}},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:"Step 1. Download and Install Docker:",id:"step-1-download-and-install-docker",level:3},{value:"Step 2. Open the terminal and execute the below commands as per your operating system.",id:"step-2-open-the-terminal-and-execute-the-below-commands-as-per-your-operating-system",level:3},{value:"Running on a custom domain",id:"running-on-a-custom-domain",level:3},{value:"Running locally",id:"running-locally",level:3},{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",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.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,o.jsxs)(n.h3,{id:"step-1-download-and-install-docker",children:["Step 1. Download and Install ",(0,o.jsx)(n.a,{href:"https://www.docker.com/products/docker-desktop/",children:"Docker"}),":"]}),"\n",(0,o.jsx)(n.p,{children:"Follow the official Docker installation guide based on your operating system."}),"\n",(0,o.jsx)(n.p,{children:"Create a Docker Hub account if you don't already have one"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Important:"})," Don'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."]}),"\n",(0,o.jsx)(n.h3,{id:"step-2-open-the-terminal-and-execute-the-below-commands-as-per-your-operating-system",children:"Step 2. Open the terminal and execute the below commands as per your operating system."}),"\n",(0,o.jsx)(n.p,{children:"Make sure Docker is running in the background before proceeding."}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Warning:"})," The commands below should only be used when installing OpenSign for the first time. You may loose your settings as this will overwrite .env & caddy files."]}),"\n",(0,o.jsx)(n.h3,{id:"running-on-a-custom-domain",children:"Running on a custom domain"}),"\n",(0,o.jsx)(n.p,{children:"Command for linux/MacOS"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"export HOST_URL=https://opensign.yourdomain.com && 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 && mv .env.local_dev .env.prod && docker compose up --force-recreate\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Command for Windows (",(0,o.jsx)(n.strong,{children:"Powershell"}),")"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:'$env:HOST_URL="https://opensign.yourdomain.com"; 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\n'})}),"\n",(0,o.jsxs)(n.p,{children:["Command for Windows (",(0,o.jsx)(n.strong,{children:"CMD/Terminal"}),")"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"set HOST_URL=https://opensign.yourdomain.com && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/docker-compose.yml && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/Caddyfile && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/.env.local_dev && rename .env.local_dev .env.prod && docker compose up --force-recreate\n"})}),"\n",(0,o.jsx)(n.p,{children:"Copy the command above, paste it into the terminal, and press Enter to pull and start the containers automatically."}),"\n",(0,o.jsx)(n.p,{children:"Make sure to replace the host URL with your subdomain where OpenSign will be accessible."}),"\n",(0,o.jsx)(n.p,{children:"You will also need to point the subdomain to the server executing these commands by adding the correct A record to your DNS settings."}),"\n",(0,o.jsx)(n.h3,{id:"running-locally",children:"Running locally"}),"\n",(0,o.jsxs)(n.p,{children:["If instead want to run locally try out below commands and once the deployment is successful, the application will be accessible at ",(0,o.jsx)(n.a,{href:"https://localhost:3001",children:"https://localhost:3001"}),". You will need to accept Chrome's insecure certificate warning. Follow the steps in the screenshots to proceed."]}),"\n",(0,o.jsx)(n.p,{children:"Command for linux/MacOS (localhost)"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"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,o.jsxs)(n.p,{children:["Command for Windows (",(0,o.jsx)(n.strong,{children:"Powershell"}),") (localhost)"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"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,o.jsxs)(n.p,{children:["Command for Windows (",(0,o.jsx)(n.strong,{children:"CMD/Terminal"}),") (localhost)"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/docker-compose.yml && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/Caddyfile && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/.env.local_dev && rename .env.local_dev .env.prod && docker compose up --force-recreate\n"})}),"\n",(0,o.jsx)("div",{children:(0,o.jsx)("img",{width:"700",alt:"localhost",src:"https://github.com/user-attachments/assets/f5de1882-64d0-44ea-86e3-3a7c8405272c"})}),"\n",(0,o.jsx)("div",{children:(0,o.jsx)("img",{width:"700",alt:"proceedtolocalhost",src:"https://github.com/user-attachments/assets/33f975b9-4a9a-431e-a869-72e38f3b6754"})}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.strong,{children:"Note:"})," If you wish to incorporate our latest features into your Docker container, follow the ",(0,o.jsx)(n.a,{href:"https://docs.opensignlabs.com/docs/self-host/docker/upgrade-deployment",children:"Upgrade Deployment"})," steps."]}),"\n",(0,o.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,o.jsx)(n.p,{children:"To set up OpenSign\u2122 locally using Docker, the following prerequisites are required:"}),"\n",(0,o.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,o.jsxs)(n.table,{children:[(0,o.jsx)(n.thead,{children:(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.th,{children:"Environment Varibale"}),(0,o.jsx)(n.th,{children:"Value"}),(0,o.jsx)(n.th,{children:"Description"})]})}),(0,o.jsxs)(n.tbody,{children:[(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"PUBLIC_URL"}),(0,o.jsxs)(n.td,{children:[(0,o.jsx)(n.a,{href:"https://localhost:3001",children:"https://localhost:3001"})," or ",(0,o.jsx)(n.a,{href:"https://opensign.yourdomain.com",children:"https://opensign.yourdomain.com"})]}),(0,o.jsx)(n.td,{children:"Set it to the URL form where the app home page will be accessed"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"APP_ID"}),(0,o.jsx)(n.td,{children:"opensign"}),(0,o.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,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"MASTER_KEY"}),(0,o.jsx)(n.td,{children:"XnAadwKxxByMr"}),(0,o.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,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"MONGODB_URI"}),(0,o.jsx)(n.td,{children:"mongodb://mongo-container:27017/OpenSignDB"}),(0,o.jsx)(n.td,{children:"Mongodb URI to connect to"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"PARSE_MOUNT"}),(0,o.jsx)(n.td,{children:"/app"}),(0,o.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,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"SERVER_URL"}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.a,{href:"http://localhost:8080/app",children:"http://localhost:8080/app"})}),(0,o.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,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"DO_SPACE"}),(0,o.jsx)(n.td,{children:"DOSPACENAME"}),(0,o.jsx)(n.td,{children:"Digital ocean space name or AWS S3 bucket name for uploading documents"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"DO_ENDPOINT"}),(0,o.jsx)(n.td,{children:"ams3.digitaloceanspaces.com"}),(0,o.jsx)(n.td,{children:"Digital ocean spaces endpoint or AWS S3 endpoint for uploading documents"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"DO_BASEURL"}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.a,{href:"https://dospace.ams3.digitaloceanspaces.com",children:"https://dospace.ams3.digitaloceanspaces.com"})}),(0,o.jsx)(n.td,{children:"Digital ocean baseurl or AWS S3 base URL"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"DO_ACCESS_KEY_ID"}),(0,o.jsx)(n.td,{children:"YOUR_S3_ACCESS_ID"}),(0,o.jsx)(n.td,{children:"Digital ocean spaces access key ID or AWS s3 Access key ID for uploading the docs"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"DO_SECRET_ACCESS_KEY"}),(0,o.jsx)(n.td,{children:"YOUR_S3_ACCESS_KEY"}),(0,o.jsx)(n.td,{children:"Digital ocean spaces secret access key or AWS s3 secret access key for uploading the docs"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"DO_REGION"}),(0,o.jsx)(n.td,{children:"YOUR_S3_REGION"}),(0,o.jsx)(n.td,{children:"Digital ocean spaces region or AWS s3 region"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"USE_LOCAL"}),(0,o.jsx)(n.td,{children:"true"}),(0,o.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,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"MAILGUN_API_KEY"}),(0,o.jsx)(n.td,{children:"YOUR_MAILGUNAPI_KEY"}),(0,o.jsx)(n.td,{children:"Mailgun API Key"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"MAILGUN_DOMAIN"}),(0,o.jsx)(n.td,{children:"YOUR_MAILGUNAPI_DOMAIN"}),(0,o.jsx)(n.td,{children:"Mailgun API Domain"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"MAILGUN_SENDER"}),(0,o.jsx)(n.td,{children:"-"}),(0,o.jsx)(n.td,{children:"Mailgun Sender Mail ID"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"SMTP_ENABLE"}),(0,o.jsx)(n.td,{children:"false"}),(0,o.jsx)(n.td,{children:"If this is set to true, emails will be sent through SMTP, and Mailgun credentials will be ignored."})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"SMTP_HOST"}),(0,o.jsx)(n.td,{children:"smtp.yourhost.com"}),(0,o.jsx)(n.td,{children:"Provide smtp host"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"SMTP_PORT"}),(0,o.jsx)(n.td,{children:"443"}),(0,o.jsx)(n.td,{children:"Provide smtp port number"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"SMTP_USER_EMAIL"}),(0,o.jsx)(n.td,{children:(0,o.jsx)(n.a,{href:"mailto:mailer@yourdomain.com",children:"mailer@yourdomain.com"})}),(0,o.jsx)(n.td,{children:"Provide user email of smtp"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"SMTP_PASS"}),(0,o.jsx)(n.td,{children:"password"}),(0,o.jsx)(n.td,{children:"Provide smtp password"})]}),(0,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"PFX_BASE64"}),(0,o.jsx)(n.td,{children:"-"}),(0,o.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,o.jsxs)(n.tr,{children:[(0,o.jsx)(n.td,{children:"PASS_PHRASE"}),(0,o.jsx)(n.td,{children:"opensign"}),(0,o.jsx)(n.td,{children:"Pass phrase of PFX or p12 document signing certificate file."})]})]})]}),"\n",(0,o.jsx)(n.h1,{id:"steps-to-generate-self-sign-certificate",children:"Steps to Generate Self Sign Certificate"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.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,o.jsxs)(n.p,{children:["Please note that when signing a document using a certificate generated through this process, it won\u2019t be recognized as valid by Adobe Acrobat. To get the green tick on your signed documents, you'll need to purchase a document signing certificate (a p12 certificate in pfx format) from an ",(0,o.jsx)(n.a,{href:"https://helpx.adobe.com/in/acrobat/kb/approved-trust-list1.html",children:"AATL-approved Certificate Authority"}),"."]}),"\n",(0,o.jsx)(n.h1,{id:"cors-configuration",children:"CORS Configuration"}),"\n",(0,o.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,o.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,o.jsx)(n.pre,{children:(0,o.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,o.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,o.jsxs)(n.ul,{children:["\n",(0,o.jsx)(n.li,{children:(0,o.jsx)(n.a,{href:"https://docs.digitalocean.com/products/spaces/how-to/configure-cors/",children:"How to Configure CORS on DigitalOcean Spaces"})}),"\n",(0,o.jsx)(n.li,{children:(0,o.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,s.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(a,{...e})}):a(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>i});var o=t(67294);const s={},r=o.createContext(s);function i(e){const n=o.useContext(r);return o.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(s):e.components||s:i(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/489b8a4d.d38e5c92.js b/assets/js/489b8a4d.d38e5c92.js deleted file mode 100644 index 4b070ad91..000000000 --- a/assets/js/489b8a4d.d38e5c92.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[8781],{44907:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>l});var s=t(85893),o=t(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:"Docker",permalink:"/docs/category/docker"},next:{title:"OpenSign\u2122 Self-Hosted 'Upgrade Deployment' Guide Using Docker on Linux, macOS, or Windows",permalink:"/docs/self-host/docker/upgrade-deployment"}},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:"Running on a custom domain",id:"running-on-a-custom-domain",level:3},{value:"Running locally",id:"running-locally",level:3},{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",h3:"h3",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,s.jsxs)(s.Fragment,{children:[(0,s.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,s.jsxs)(n.ol,{children:["\n",(0,s.jsxs)(n.li,{children:["Firstly, install ",(0,s.jsx)(n.a,{href:"https://www.docker.com/products/docker-desktop/",children:"Docker"})," and ensure it is running before proceeding to the next steps."]}),"\n",(0,s.jsx)(n.li,{children:"Now, start Docker and ensure it runs in the background."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"running-on-a-custom-domain",children:"Running on a custom domain"}),"\n",(0,s.jsx)(n.p,{children:"Command for linux/MacOS"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"export HOST_URL=https://opensign.yourdomain.com && 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 && mv .env.local_dev .env.prod && docker compose up --force-recreate\n"})}),"\n",(0,s.jsx)(n.p,{children:"Command for Windows (Powershell)"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:'$env:HOST_URL="https://opensign.yourdomain.com"; 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\n'})}),"\n",(0,s.jsx)(n.p,{children:"Command for Windows (CMD/Terminal)"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"set HOST_URL=https://opensign.yourdomain.com && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/docker-compose.yml && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/Caddyfile && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/.env.local_dev && rename .env.local_dev .env.prod && docker compose up --force-recreate\n"})}),"\n",(0,s.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,s.jsx)(n.h3,{id:"running-locally",children:"Running locally"}),"\n",(0,s.jsxs)(n.p,{children:["If instead want to run locally try out below commands and once the deployment is successful, the application will be accessible at ",(0,s.jsx)(n.a,{href:"https://localhost:3001",children:"https://localhost:3001"}),". You will need to accept Chrome's insecure certificate warning. Follow the steps in the screenshots to proceed."]}),"\n",(0,s.jsx)(n.p,{children:"Command for linux/MacOS (localhost)"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"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,s.jsx)(n.p,{children:"Command for Windows (Powershell) (localhost)"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"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,s.jsx)(n.p,{children:"Command for Windows (CMD/Terminal) (localhost)"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/docker-compose.yml && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/Caddyfile && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/.env.local_dev && rename .env.local_dev .env.prod && docker compose up --force-recreate\n"})}),"\n",(0,s.jsx)("div",{children:(0,s.jsx)("img",{width:"937",alt:"localhost",src:"https://github.com/user-attachments/assets/f5de1882-64d0-44ea-86e3-3a7c8405272c"})}),"\n",(0,s.jsx)("div",{children:(0,s.jsx)("img",{width:"935",alt:"proceedtolocalhost",src:"https://github.com/user-attachments/assets/33f975b9-4a9a-431e-a869-72e38f3b6754"})}),"\n",(0,s.jsx)(n.p,{children:(0,s.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,s.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,s.jsx)(n.p,{children:"To set up OpenSign\u2122 locally using Docker, the following prerequisites are required:"}),"\n",(0,s.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,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Environment Varibale"}),(0,s.jsx)(n.th,{children:"Value"}),(0,s.jsx)(n.th,{children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"PUBLIC_URL"}),(0,s.jsxs)(n.td,{children:[(0,s.jsx)(n.a,{href:"https://localhost:3001",children:"https://localhost:3001"})," or ",(0,s.jsx)(n.a,{href:"https://opensign.yourdomain.com",children:"https://opensign.yourdomain.com"})]}),(0,s.jsx)(n.td,{children:"Set it to the URL form where the app home page will be accessed"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"APP_ID"}),(0,s.jsx)(n.td,{children:"opensign"}),(0,s.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,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MASTER_KEY"}),(0,s.jsx)(n.td,{children:"XnAadwKxxByMr"}),(0,s.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,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MONGODB_URI"}),(0,s.jsx)(n.td,{children:"mongodb://mongo-container:27017/OpenSignDB"}),(0,s.jsx)(n.td,{children:"Mongodb URI to connect to"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"PARSE_MOUNT"}),(0,s.jsx)(n.td,{children:"/app"}),(0,s.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,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"SERVER_URL"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"http://localhost:8080/app",children:"http://localhost:8080/app"})}),(0,s.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,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_SPACE"}),(0,s.jsx)(n.td,{children:"DOSPACENAME"}),(0,s.jsx)(n.td,{children:"Digital ocean space name or AWS S3 bucket name for uploading documents"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_ENDPOINT"}),(0,s.jsx)(n.td,{children:"ams3.digitaloceanspaces.com"}),(0,s.jsx)(n.td,{children:"Digital ocean spaces endpoint or AWS S3 endpoint for uploading documents"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_BASEURL"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"https://dospace.ams3.digitaloceanspaces.com",children:"https://dospace.ams3.digitaloceanspaces.com"})}),(0,s.jsx)(n.td,{children:"Digital ocean baseurl or AWS S3 base URL"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_ACCESS_KEY_ID"}),(0,s.jsx)(n.td,{children:"YOUR_S3_ACCESS_ID"}),(0,s.jsx)(n.td,{children:"Digital ocean spaces access key ID or AWS s3 Access key ID for uploading the docs"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_SECRET_ACCESS_KEY"}),(0,s.jsx)(n.td,{children:"YOUR_S3_ACCESS_KEY"}),(0,s.jsx)(n.td,{children:"Digital ocean spaces secret access key or AWS s3 secret access key for uploading the docs"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"DO_REGION"}),(0,s.jsx)(n.td,{children:"YOUR_S3_REGION"}),(0,s.jsx)(n.td,{children:"Digital ocean spaces region or AWS s3 region"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"USE_LOCAL"}),(0,s.jsx)(n.td,{children:"true"}),(0,s.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,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MAILGUN_API_KEY"}),(0,s.jsx)(n.td,{children:"YOUR_MAILGUNAPI_KEY"}),(0,s.jsx)(n.td,{children:"Mailgun API Key"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MAILGUN_DOMAIN"}),(0,s.jsx)(n.td,{children:"YOUR_MAILGUNAPI_DOMAIN"}),(0,s.jsx)(n.td,{children:"Mailgun API Domain"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"MAILGUN_SENDER"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.jsx)(n.td,{children:"Mailgun Sender Mail ID"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"SMTP_ENABLE"}),(0,s.jsx)(n.td,{children:"false"}),(0,s.jsx)(n.td,{children:"If this is set to true, emails will be sent through SMTP, and Mailgun credentials will be ignored."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"SMTP_HOST"}),(0,s.jsx)(n.td,{children:"smtp.yourhost.com"}),(0,s.jsx)(n.td,{children:"Provide smtp host"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"SMTP_PORT"}),(0,s.jsx)(n.td,{children:"443"}),(0,s.jsx)(n.td,{children:"Provide smtp port number"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"SMTP_USER_EMAIL"}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.a,{href:"mailto:mailer@yourdomain.com",children:"mailer@yourdomain.com"})}),(0,s.jsx)(n.td,{children:"Provide user email of smtp"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"SMTP_PASS"}),(0,s.jsx)(n.td,{children:"password"}),(0,s.jsx)(n.td,{children:"Provide smtp password"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"PFX_BASE64"}),(0,s.jsx)(n.td,{children:"-"}),(0,s.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,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:"PASS_PHRASE"}),(0,s.jsx)(n.td,{children:"opensign"}),(0,s.jsx)(n.td,{children:"Pass phrase of PFX or p12 document signing certificate file."})]})]})]}),"\n",(0,s.jsx)(n.h1,{id:"steps-to-generate-self-sign-certificate",children:"Steps to Generate Self Sign Certificate"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.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,s.jsxs)(n.p,{children:["Please note that when signing a document using a certificate generated through this process, it won\u2019t be recognized as valid by Adobe Acrobat. To get the green tick on your signed documents, you'll need to purchase a document signing certificate (a p12 certificate in pfx format) from an ",(0,s.jsx)(n.a,{href:"https://helpx.adobe.com/in/acrobat/kb/approved-trust-list1.html",children:"AATL-approved Certificate Authority"}),"."]}),"\n",(0,s.jsx)(n.h1,{id:"cors-configuration",children:"CORS Configuration"}),"\n",(0,s.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,s.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,s.jsx)(n.pre,{children:(0,s.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,s.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,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://docs.digitalocean.com/products/spaces/how-to/configure-cors/",children:"How to Configure CORS on DigitalOcean Spaces"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.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,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>i});var s=t(67294);const o={},r=s.createContext(o);function i(e){const n=s.useContext(r);return s.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),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4f7a2d40.4b03478f.js b/assets/js/4f7a2d40.4b03478f.js deleted file mode 100644 index 165abc0d9..000000000 --- a/assets/js/4f7a2d40.4b03478f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[339],{47955:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>a});var s=t(85893),o=t(11151);const i={title:"AWS S3"},r=void 0,c={id:"self-host/cloud-storage/s3",title:"AWS S3",description:"You can create an AWS S3 bucket to store your uploaded documents using OpenSign\u2122",source:"@site/docs/self-host/cloud-storage/s3.md",sourceDirName:"self-host/cloud-storage",slug:"/self-host/cloud-storage/s3",permalink:"/docs/self-host/cloud-storage/s3",draft:!1,unlisted:!1,editUrl:"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/self-host/cloud-storage/s3.md",tags:[],version:"current",frontMatter:{title:"AWS S3"},sidebar:"selfhostSidebar",previous:{title:"Cloud Storage",permalink:"/docs/category/cloud-storage"},next:{title:"Guides",permalink:"/docs/category/guides"}},l={},a=[{value:"You can create an AWS S3 bucket to store your uploaded documents using OpenSign\u2122",id:"you-can-create-an-aws-s3-bucket-to-store-your-uploaded-documents-using-opensign",level:2},{value:"AWS S3 -",id:"aws-s3--",level:3}];function d(e){const n={a:"a",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"you-can-create-an-aws-s3-bucket-to-store-your-uploaded-documents-using-opensign",children:"You can create an AWS S3 bucket to store your uploaded documents using OpenSign\u2122"}),"\n",(0,s.jsx)(n.h3,{id:"aws-s3--",children:"AWS S3 -"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Step 1 : Create a S3 bucket","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Login to ",(0,s.jsx)(n.a,{href:"https://aws.amazon.com/console/",children:"AWS console"})]}),"\n",(0,s.jsx)(n.li,{children:"Navigate to S3 under services"}),"\n",(0,s.jsx)(n.li,{children:'Hit "Create Bucket" button on upper right corner'}),"\n",(0,s.jsx)(n.li,{children:'Remove the check from "block all public access" checkbox(we need this in order to provide access to not-logged in users after OTP verification)'}),"\n",(0,s.jsx)(n.li,{children:"Set bucket versioning and tags as per your requirements"}),"\n",(0,s.jsx)(n.li,{children:'Hit "Create bucket" button'}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["Step 2 : Create IAM user and provide access to AWS bucket","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'Search for "IAM" on the search bar in AWS console'}),"\n",(0,s.jsx)(n.li,{children:"On IAM dashboard, click the number of users(count) under IAM resources table"}),"\n",(0,s.jsx)(n.li,{children:'Hit "create user" button on the upper right corner of the page'}),"\n",(0,s.jsx)(n.li,{children:"Enter the user name & click next"}),"\n",(0,s.jsx)(n.li,{children:"Click create policy, search for S3 and provide the Read, Write & list permissions"}),"\n",(0,s.jsx)(n.li,{children:'Click next and click "Create user"'}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:"Step 3 : Generate Credentials"}),"\n",(0,s.jsx)(n.li,{children:"Go to IAM/Users in AWS console"}),"\n",(0,s.jsx)(n.li,{children:"Hit the hyperlink for the user created in the previous step"}),"\n",(0,s.jsx)(n.li,{children:'Click the "Security credentials" tab'}),"\n",(0,s.jsx)(n.li,{children:'Scroll down to "Access keys" and hit "Create access key"'}),"\n",(0,s.jsx)(n.li,{children:'In the next step select "Application running outside AWS"'}),"\n",(0,s.jsx)(n.li,{children:'Add a description tag if needed & hit "Create access key"'}),"\n",(0,s.jsx)(n.li,{children:'In the next step you will see "Access key" and "Secret Access key". Copy both the values.'}),"\n",(0,s.jsx)(n.li,{children:'Set the value of "Access key" to "DO_ACCESS_KEY_ID" environment variable'}),"\n",(0,s.jsx)(n.li,{children:'Set the value of "Secret Access key" to "DO_SECRET_ACCESS_KEY" environment variable'}),"\n",(0,s.jsxs)(n.li,{children:["Step 3 : Copy bucket credentials","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'Visit "Amazon S3 -> Buckets" in aws console'}),"\n",(0,s.jsx)(n.li,{children:"Click the bucket created in previous steps & visit the properties tab"}),"\n",(0,s.jsx)(n.li,{children:'Under "Bucket overview" you will find the value of AWS region(for ex. ap-south-1). Set that value to env variable "DO_REGION"'}),"\n",(0,s.jsx)(n.li,{children:'You can create the value for "DO_ENDPOINT" env variable by appending the region value to amazonaws.com (for ex. s3.ap-south-1.amazonaws.com)'}),"\n",(0,s.jsxs)(n.li,{children:['You can create the value for "DO_BASEURL" by adding the bucketname in front of the endpoint value(for ex. ',(0,s.jsx)(n.a,{href:"https://bucketname.s3.ap-south-1.amazonaws.com",children:"https://bucketname.s3.ap-south-1.amazonaws.com"}),")"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Visit below link if you face any issues while following the above instructions -"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"https://repost.aws/knowledge-center/create-access-key",children:"https://repost.aws/knowledge-center/create-access-key"})}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},11151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>r});var s=t(67294);const o={},i=s.createContext(o);function r(e){const n=s.useContext(i);return s.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),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4f7a2d40.8a3f2a9b.js b/assets/js/4f7a2d40.8a3f2a9b.js new file mode 100644 index 000000000..e24afee63 --- /dev/null +++ b/assets/js/4f7a2d40.8a3f2a9b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkOpenSign_Docs=self.webpackChunkOpenSign_Docs||[]).push([[339],{47955:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>r,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var n=t(85893),c=t(11151);const o={title:"AWS S3"},i=void 0,a={id:"self-host/cloud-storage/s3",title:"AWS S3",description:"You can create an AWS S3 bucket to store your uploaded documents using OpenSign\u2122",source:"@site/docs/self-host/cloud-storage/s3.md",sourceDirName:"self-host/cloud-storage",slug:"/self-host/cloud-storage/s3",permalink:"/docs/self-host/cloud-storage/s3",draft:!1,unlisted:!1,editUrl:"https://github.com/opensignlabs/opensign/tree/feat-docs/docs/docs/self-host/cloud-storage/s3.md",tags:[],version:"current",frontMatter:{title:"AWS S3"},sidebar:"selfhostSidebar",previous:{title:"Cloud Storage",permalink:"/docs/category/cloud-storage"},next:{title:"Guides",permalink:"/docs/category/guides"}},r={},l=[{value:"You can create an AWS S3 bucket to store your uploaded documents using OpenSign\u2122",id:"you-can-create-an-aws-s3-bucket-to-store-your-uploaded-documents-using-opensign",level:2},{value:"AWS S3 -",id:"aws-s3--",level:3}];function d(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",pre:"pre",ul:"ul",...(0,c.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h2,{id:"you-can-create-an-aws-s3-bucket-to-store-your-uploaded-documents-using-opensign",children:"You can create an AWS S3 bucket to store your uploaded documents using OpenSign\u2122"}),"\n",(0,n.jsx)(s.h3,{id:"aws-s3--",children:"AWS S3 -"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Step 1 : Create a S3 bucket","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Login to ",(0,n.jsx)(s.a,{href:"https://aws.amazon.com/console/",children:"AWS console"})]}),"\n",(0,n.jsxs)(s.li,{children:["Navigate to S3 under services.\n",(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/1a734349-1c1a-4f53-8582-7318c22911f5",alt:"Screenshot 2024-09-30 203247"})]}),"\n",(0,n.jsxs)(s.li,{children:['Hit "Create Bucket" button on upper right corner.\n',(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/b036fa3b-20c4-4348-8697-68bcf2fd9de3",alt:"Screenshot 2024-09-30 195246"})]}),"\n",(0,n.jsxs)(s.li,{children:['Now provide bucket name and don\'t change any other options scroll down and click on "Create Bucket" button.\n',(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/3fb1a591-fffd-4703-9b1f-9cb1edbdf7fe",alt:"Screenshot 2024-09-30 195603"}),"\n",(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/a0b2be8a-a273-474d-88d5-614cb42de8dd",alt:"Screenshot 2024-09-30 195835"})]}),"\n",(0,n.jsx)(s.li,{children:"Click on name of bucket from list which we have just created."}),"\n",(0,n.jsxs)(s.li,{children:["Now go to permission Tab and scroll down to botton.\n",(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/dbf44b05-370b-40f8-bfc1-fd2f8441da46",alt:"Screenshot 2024-09-30 202035"})]}),"\n",(0,n.jsxs)(s.li,{children:['At the bottom you will see cross-origin resource sharign (cors) section click on "Edit" button.\n',(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/a9fb13b3-7a30-4c49-b3ea-6a30a2b7c357",alt:"Screenshot 2024-09-30 202057"})]}),"\n",(0,n.jsxs)(s.li,{children:['Now paste below line of code and add origin url in AllowedOrigins array and click on "Save changes".',"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:'[\n {\n "AllowedHeaders": [\n "*"\n ],\n "AllowedMethods": [\n "GET",\n "PUT",\n "POST"\n ],\n "AllowedOrigins": [\n "httpS://localhost:3001",\n \n ],\n "ExposeHeaders": [\n "x-amz-server-side-encryption",\n "x-amz-request-id",\n "x-amz-id-2"\n ],\n "MaxAgeSeconds": 3000\n }\n]\n'})}),"\n"]}),"\n",(0,n.jsx)(s.li,{children:'Once done go to "Properties" there you will see region of bucket e.g us-east-1'}),"\n",(0,n.jsx)(s.li,{children:'set bucktname as "DO_SPACE" in ENV.'}),"\n",(0,n.jsx)(s.li,{children:'set region as "DO_REGION" in ENV.'}),"\n",(0,n.jsxs)(s.li,{children:["Replace region in this url ",(0,n.jsx)(s.code,{children:"s3.region.amazonaws.com"}),' and set it as "DO_ENDPOINT" in ENV.']}),"\n",(0,n.jsxs)(s.li,{children:["Replace bucketName and region in this url ",(0,n.jsx)(s.code,{children:"https://bucketName.s3.region.amazonaws.com"}),' and set us as "DO_BASEURL" in ENV.']}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["Step 2 : Create a aws policy","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Navigate to IAM under services\n",(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/8109d2bb-1afb-4407-b5cd-4886a070d5cc",alt:"Screenshot 2024-09-30 200247"})]}),"\n",(0,n.jsx)(s.li,{children:'Now click on "Polices" from left side "access management" menu.'}),"\n",(0,n.jsxs)(s.li,{children:['Hit "Create Policy" button on upper right corner.\n',(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/1b3b5608-9a84-477d-b46e-aaf884a73343",alt:"Screenshot 2024-09-30 200939"})]}),"\n",(0,n.jsxs)(s.li,{children:["Search for S3 and Tick PutObject and GetObject from Action Allowed list.\n",(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/7168d261-abc4-4789-8e64-628c81c79e24",alt:"Screenshot 2024-09-30 200537"}),"\n",(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/863f8e7c-74eb-4f1b-9ea5-41524ba249ca",alt:"Screenshot 2024-09-30 200607"})]}),"\n",(0,n.jsxs)(s.li,{children:["provide policy name and hit on 'Create Policy\".\n",(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/4db2ab95-14bb-4ea1-a9a3-821e20e70038",alt:"Screenshot 2024-09-30 200808"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["Step 3 : Create IAM user.","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:['Now click on "Users" from left side "access management" menu and then click on "Create User" button.\n',(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/1aa1f071-6291-457f-a514-970f511866cb",alt:"Screenshot 2024-09-30 201026"})]}),"\n",(0,n.jsx)(s.li,{children:"Provide username and click on Next button."}),"\n",(0,n.jsxs)(s.li,{children:['Now select "Attach policies directly" from Permissions options.\n',(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/13c6d571-d3da-4259-8f04-8ec130d9091a",alt:"Screenshot 2024-09-30 201731"})]}),"\n",(0,n.jsxs)(s.li,{children:['Now search policy in "Permission Policies" section which we have created in previous step.\n',(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/c2b1643d-e3e3-49ee-920b-641e7ff819f5",alt:"Screenshot 2024-09-30 201742"})]}),"\n",(0,n.jsx)(s.li,{children:'Now scroll down and Click on "Create User" Button.'}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["Step 4 : Generate Credentials","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Now Click on username form list which we have created in previous step."}),"\n",(0,n.jsxs)(s.li,{children:['Click on "Create Access Key" from right corner.\n',(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/d25abe2f-0cfc-4cc0-a02c-6b9fc6559dd2",alt:"Screenshot 2024-09-30 201850"})]}),"\n",(0,n.jsxs)(s.li,{children:['In the next step select "Application running outside AWS".\n',(0,n.jsx)(s.img,{src:"https://github.com/user-attachments/assets/f9b0cdb2-3718-4ae6-a4ba-68e144d1f4a1",alt:"Screenshot 2024-09-30 201917"})]}),"\n",(0,n.jsx)(s.li,{children:'In the next step you will see "Access key" and "Secret Access key". Copy both the values.'}),"\n",(0,n.jsx)(s.li,{children:'Set the value of "Access key" to "DO_ACCESS_KEY_ID" environment variable.'}),"\n",(0,n.jsx)(s.li,{children:'Set the value of "Secret Access key" to "DO_SECRET_ACCESS_KEY" environment variable.\nVisit below link if you face any issues while following the above instructions -'}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://repost.aws/knowledge-center/create-access-key",children:"https://repost.aws/knowledge-center/create-access-key"})}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:s}={...(0,c.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},11151:(e,s,t)=>{t.d(s,{Z:()=>a,a:()=>i});var n=t(67294);const c={},o=n.createContext(c);function i(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.18323917.js b/assets/js/runtime~main.c96d422f.js similarity index 98% rename from assets/js/runtime~main.18323917.js rename to assets/js/runtime~main.c96d422f.js index 1aedd6f67..5120e58ca 100644 --- a/assets/js/runtime~main.18323917.js +++ b/assets/js/runtime~main.c96d422f.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",2535:"814f3328",2542:"5ce9853b",2546:"reactPlayerStreamable",2617:"56b5f4f8",2832:"1f73ca32",2865:"3e02da86",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",6238:"e76c28ee",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:"3e74cd33",110:"ab20026d",230:"3cc5e6e9",261:"4b30f79b",273:"b8b3b66b",339:"4b03478f",420:"3b683e17",453:"61f3e45f",533:"2d5f5b1d",762:"74ae2291",792:"01714e3e",823:"64f8e5be",835:"ced0e4f6",841:"b9d70538",853:"6965f6a9",869:"6aa44f6d",948:"b2da1fd1",1001:"50ee673e",1332:"6147969f",1477:"b31b2642",1512:"9637e502",1520:"ceac1441",1531:"52af9f43",1633:"d8366831",1713:"fefd4794",1772:"c222a62c",1773:"d5cdc9ed",1893:"59606182",1914:"eb382def",2087:"a2c58921",2121:"c8df990c",2125:"9a2b70d2",2207:"f380f604",2213:"d47dd20f",2241:"5104cb4f",2245:"f3cca27d",2267:"a4846e2b",2362:"ebdb1814",2529:"2079a565",2535:"f3b6b0ab",2542:"5bd0eb92",2546:"665b04f4",2617:"56321ade",2832:"e34356e0",2865:"fcf78bcd",3085:"e5c5d651",3089:"84b5c675",3101:"47959e32",3156:"41df5616",3205:"af75d475",3495:"4657d57d",3514:"b2437ac4",3608:"0e768bf1",3743:"2ede10ee",4013:"e5e25f55",4148:"aa6a1681",4195:"08242eba",4277:"69395083",4311:"86f3bfc6",4368:"7d12b1da",4439:"6a6454f7",4478:"a41784da",4641:"40681dfc",4651:"8538abf4",4667:"c24bbf43",4682:"18721add",4772:"07189a34",4918:"910d4a50",4955:"8f728b1e",4985:"dad32c3b",5377:"ccefc9dc",5507:"36c41078",5858:"000e7fdc",5900:"e113e88d",6011:"6de743c9",6033:"d669ec3e",6103:"ebc8482f",6113:"53df0513",6125:"9555c68b",6177:"b22b9e91",6216:"0d890761",6238:"4daa52ac",6344:"29bab824",6543:"7f67a86f",6759:"c81d0e01",6938:"d44251bf",7100:"dfa7c53a",7178:"9a58922d",7286:"0072a94c",7414:"8d31e6a7",7475:"14209b93",7596:"95bca972",7664:"7fd4bae6",7816:"38bd8c71",7894:"e09eee0c",7964:"4e6965bb",7971:"6792c484",8055:"27482879",8087:"cde5db0f",8106:"cdd769c8",8140:"901b2f91",8141:"60a9b3b8",8163:"2b8fccd7",8215:"c6b04c16",8468:"7cfe3494",8474:"a75e5064",8475:"d27b3009",8489:"35a41943",8518:"aaa08e5a",8531:"1f1a82a7",8610:"d85035d6",8636:"c590d949",8766:"44854024",8781:"d38e5c92",8784:"fb16cf6f",8866:"381cdff2",8878:"eda4ae1c",8888:"f7352a9d",8892:"7315f43d",9003:"1e8e0783",9010:"002f0dec",9035:"37598b09",9588:"5ef75d8a",9642:"223fec4f",9661:"33228fcd",9671:"8f2ee486",9697:"dff34c6e",9700:"ad032cc8",9817:"424c677a",9914:"13b02ad4"}[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","814f3328":"2535","5ce9853b":"2542",reactPlayerStreamable:"2546","56b5f4f8":"2617","1f73ca32":"2832","3e02da86":"2865","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",e76c28ee:"6238","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",2535:"814f3328",2542:"5ce9853b",2546:"reactPlayerStreamable",2617:"56b5f4f8",2832:"1f73ca32",2865:"3e02da86",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",6238:"e76c28ee",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:"3e74cd33",110:"ab20026d",230:"3cc5e6e9",261:"4b30f79b",273:"b8b3b66b",339:"8a3f2a9b",420:"3b683e17",453:"61f3e45f",533:"2d5f5b1d",762:"74ae2291",792:"01714e3e",823:"64f8e5be",835:"ced0e4f6",841:"b9d70538",853:"6965f6a9",869:"6aa44f6d",948:"b2da1fd1",1001:"50ee673e",1332:"6147969f",1477:"b31b2642",1512:"9637e502",1520:"ceac1441",1531:"52af9f43",1633:"d8366831",1713:"fefd4794",1772:"c222a62c",1773:"d5cdc9ed",1893:"59606182",1914:"eb382def",2087:"a2c58921",2121:"c8df990c",2125:"9a2b70d2",2207:"f380f604",2213:"d47dd20f",2241:"5104cb4f",2245:"f3cca27d",2267:"a4846e2b",2362:"ebdb1814",2529:"2079a565",2535:"f3b6b0ab",2542:"5bd0eb92",2546:"665b04f4",2617:"56321ade",2832:"e34356e0",2865:"fcf78bcd",3085:"e5c5d651",3089:"84b5c675",3101:"47959e32",3156:"41df5616",3205:"af75d475",3495:"4657d57d",3514:"b2437ac4",3608:"0e768bf1",3743:"2ede10ee",4013:"e5e25f55",4148:"aa6a1681",4195:"08242eba",4277:"69395083",4311:"86f3bfc6",4368:"7d12b1da",4439:"6a6454f7",4478:"a41784da",4641:"40681dfc",4651:"8538abf4",4667:"c24bbf43",4682:"18721add",4772:"07189a34",4918:"910d4a50",4955:"8f728b1e",4985:"dad32c3b",5377:"ccefc9dc",5507:"36c41078",5858:"000e7fdc",5900:"e113e88d",6011:"6de743c9",6033:"d669ec3e",6103:"ebc8482f",6113:"53df0513",6125:"9555c68b",6177:"b22b9e91",6216:"0d890761",6238:"4daa52ac",6344:"29bab824",6543:"7f67a86f",6759:"c81d0e01",6938:"d44251bf",7100:"dfa7c53a",7178:"9a58922d",7286:"0072a94c",7414:"8d31e6a7",7475:"14209b93",7596:"95bca972",7664:"7fd4bae6",7816:"38bd8c71",7894:"e09eee0c",7964:"4e6965bb",7971:"6792c484",8055:"27482879",8087:"cde5db0f",8106:"cdd769c8",8140:"901b2f91",8141:"60a9b3b8",8163:"2b8fccd7",8215:"c6b04c16",8468:"7cfe3494",8474:"a75e5064",8475:"d27b3009",8489:"35a41943",8518:"aaa08e5a",8531:"1f1a82a7",8610:"d85035d6",8636:"c590d949",8766:"44854024",8781:"bbadc29e",8784:"fb16cf6f",8866:"381cdff2",8878:"eda4ae1c",8888:"f7352a9d",8892:"7315f43d",9003:"1e8e0783",9010:"002f0dec",9035:"37598b09",9588:"5ef75d8a",9642:"223fec4f",9661:"33228fcd",9671:"8f2ee486",9697:"dff34c6e",9700:"ad032cc8",9817:"424c677a",9914:"13b02ad4"}[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","814f3328":"2535","5ce9853b":"2542",reactPlayerStreamable:"2546","56b5f4f8":"2617","1f73ca32":"2832","3e02da86":"2865","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",e76c28ee:"6238","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 29ff1d453..f7b12513e 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 ec91d5aa2..12ab6cae4 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 77c7cb5eb..ea09429d8 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 1802ae92f..740543cb4 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 c14fc6528..a378f352d 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 1b5f76f1a..250860d1a 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 0a775adf9..94f8f6d6f 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 b7a201f13..2f950bfbb 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 778cb1946..6b05bed8c 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 84e8846b0..58330a7b9 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 d906272cb..d0034c9bf 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 62907d308..7d9a89693 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 aa055c7e6..6eef2ee0f 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 459bf62ae..e86aea141 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 97f26ff9d..4487f2f24 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 515fbcbfc..0068dba82 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 1d14f0843..e240a34fb 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 a268439ad..1f7fd27c6 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 0376a1bc9..81f49de3b 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 e2ecc5fcd..dcf1844e7 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 12f6e734f..750b37532 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/folderlist/index.html b/docs/API-docs/folderlist/index.html index fb1b6e57e..68bb07bd1 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 7d8ec4238..2840778e8 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 4da2e2a2c..709fa09d1 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 e5aecebcb..69ebd028c 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 3e6caa69d..123d86941 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 0fc175e25..05b506e3b 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 3d48708ab..c756d70f8 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 d5ee818a2..5311178d0 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 cb2b8290b..6782de048 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 0abccc420..6d46e7904 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 323ab308a..d35657664 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 9100d3ec4..6a06510fd 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 928a922e9..0ba540d51 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 d5e4c8479..c3e2330b6 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 4f927f9f9..00fa6d893 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 564392fa1..23e388bab 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 f68e4ad53..2675449fb 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 976de74ef..28971cbfd 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 f4af125b1..42a338909 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 96137ea21..c5c2955a9 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 3c5772b34..fb010e356 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 2002fe053..29e2eb298 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 e10e82987..1a86590c0 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 95e9e1031..2aca8c2f5 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 5f283af8f..3f9594a6f 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 8692f9893..5083217d2 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 cf27d7bed..ff1a1d818 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 05ab54d8f..e279f9ef8 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 ec03785b1..6a84aa637 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 06c252e07..f5d9cda09 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 1ad1c9665..e05fcaa35 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 2eb5c7385..c3269655a 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 40d93069b..1fd6425e0 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 d0c87edd0..4776c9401 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 9fd0d5f14..6553a18ba 100644 --- a/docs/help/New-Document/sign-yourself/index.html +++ b/docs/help/New-Document/sign-yourself/index.html @@ -5,7 +5,7 @@ Sign your-self | OpenSign™ - + diff --git a/docs/help/OpenSign™ Drive/create-document/index.html b/docs/help/OpenSign™ Drive/create-document/index.html index 82f49034f..b01fdf2f6 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 7d7ba3d66..8fc062a93 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 4b5068950..75075b7a2 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 6c2206091..46878bc0d 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 98bc7579a..2665734f8 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 137464eb1..2165f19b2 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 1c3110319..e91b09feb 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 db82f43a7..0c3370f8f 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 f79f45971..785304333 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 1bc6ced8b..02d67a779 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 391cf87fc..265292ffd 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 ca6cc8f02..bbf63eef7 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 ebf87e352..fb21d8547 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 c54cc2da7..9bd092cd5 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 745a67a8a..163e6a361 100644 --- a/docs/help/Templates/quick-send/index.html +++ b/docs/help/Templates/quick-send/index.html @@ -5,7 +5,7 @@ Quickly Send the Document for Signature Using Template | OpenSign™ - + diff --git a/docs/help/Templates/use-template/index.html b/docs/help/Templates/use-template/index.html index bdb82f861..75ee9c5b7 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 687f3786a..b8c8b747e 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 7d684d993..e49ac1a54 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 0b42d5cba..be024002f 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 205cffdc8..928154644 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™ - + @@ -15,46 +15,68 @@
  • Step 1 : Create a S3 bucket
    • Login to AWS console
    • -
    • Navigate to S3 under services
    • -
    • Hit "Create Bucket" button on upper right corner
    • -
    • Remove the check from "block all public access" checkbox(we need this in order to provide access to not-logged in users after OTP verification)
    • -
    • Set bucket versioning and tags as per your requirements
    • -
    • Hit "Create bucket" button
    • +
    • Navigate to S3 under services. +Screenshot 2024-09-30 203247
    • +
    • Hit "Create Bucket" button on upper right corner. +Screenshot 2024-09-30 195246
    • +
    • Now provide bucket name and don't change any other options scroll down and click on "Create Bucket" button. +Screenshot 2024-09-30 195603 +Screenshot 2024-09-30 195835
    • +
    • Click on name of bucket from list which we have just created.
    • +
    • Now go to permission Tab and scroll down to botton. +Screenshot 2024-09-30 202035
    • +
    • At the bottom you will see cross-origin resource sharign (cors) section click on "Edit" button. +Screenshot 2024-09-30 202057
    • +
    • Now paste below line of code and add origin url in AllowedOrigins array and click on "Save changes". +
      [
      {
      "AllowedHeaders": [
      "*"
      ],
      "AllowedMethods": [
      "GET",
      "PUT",
      "POST"
      ],
      "AllowedOrigins": [
      "httpS://localhost:3001",

      ],
      "ExposeHeaders": [
      "x-amz-server-side-encryption",
      "x-amz-request-id",
      "x-amz-id-2"
      ],
      "MaxAgeSeconds": 3000
      }
      ]
      +
    • +
    • Once done go to "Properties" there you will see region of bucket e.g us-east-1
    • +
    • set bucktname as "DO_SPACE" in ENV.
    • +
    • set region as "DO_REGION" in ENV.
    • +
    • Replace region in this url s3.region.amazonaws.com and set it as "DO_ENDPOINT" in ENV.
    • +
    • Replace bucketName and region in this url https://bucketName.s3.region.amazonaws.com and set us as "DO_BASEURL" in ENV.
  • -
  • Step 2 : Create IAM user and provide access to AWS bucket +
  • Step 2 : Create a aws policy
      -
    • Search for "IAM" on the search bar in AWS console
    • -
    • On IAM dashboard, click the number of users(count) under IAM resources table
    • -
    • Hit "create user" button on the upper right corner of the page
    • -
    • Enter the user name & click next
    • -
    • Click create policy, search for S3 and provide the Read, Write & list permissions
    • -
    • Click next and click "Create user"
    • +
    • Navigate to IAM under services +Screenshot 2024-09-30 200247
    • +
    • Now click on "Polices" from left side "access management" menu.
    • +
    • Hit "Create Policy" button on upper right corner. +Screenshot 2024-09-30 200939
    • +
    • Search for S3 and Tick PutObject and GetObject from Action Allowed list. +Screenshot 2024-09-30 200537 +Screenshot 2024-09-30 200607
    • +
    • provide policy name and hit on 'Create Policy". +Screenshot 2024-09-30 200808
  • -
  • Step 3 : Generate Credentials
  • -
  • Go to IAM/Users in AWS console
  • -
  • Hit the hyperlink for the user created in the previous step
  • -
  • Click the "Security credentials" tab
  • -
  • Scroll down to "Access keys" and hit "Create access key"
  • -
  • In the next step select "Application running outside AWS"
  • -
  • Add a description tag if needed & hit "Create access key"
  • +
  • Step 3 : Create IAM user. +
      +
    • Now click on "Users" from left side "access management" menu and then click on "Create User" button. +Screenshot 2024-09-30 201026
    • +
    • Provide username and click on Next button.
    • +
    • Now select "Attach policies directly" from Permissions options. +Screenshot 2024-09-30 201731
    • +
    • Now search policy in "Permission Policies" section which we have created in previous step. +Screenshot 2024-09-30 201742
    • +
    • Now scroll down and Click on "Create User" Button.
    • +
    +
  • +
  • Step 4 : Generate Credentials +
      +
    • Now Click on username form list which we have created in previous step.
    • +
    • Click on "Create Access Key" from right corner. +Screenshot 2024-09-30 201850
    • +
    • In the next step select "Application running outside AWS". +Screenshot 2024-09-30 201917
    • In the next step you will see "Access key" and "Secret Access key". Copy both the values.
    • -
    • Set the value of "Access key" to "DO_ACCESS_KEY_ID" environment variable
    • -
    • Set the value of "Secret Access key" to "DO_SECRET_ACCESS_KEY" environment variable
    • -
    • Step 3 : Copy bucket credentials -
        -
      • Visit "Amazon S3 -> Buckets" in aws console
      • -
      • Click the bucket created in previous steps & visit the properties tab
      • -
      • Under "Bucket overview" you will find the value of AWS region(for ex. ap-south-1). Set that value to env variable "DO_REGION"
      • -
      • You can create the value for "DO_ENDPOINT" env variable by appending the region value to amazonaws.com (for ex. s3.ap-south-1.amazonaws.com)
      • -
      • You can create the value for "DO_BASEURL" by adding the bucketname in front of the endpoint value(for ex. https://bucketname.s3.ap-south-1.amazonaws.com)
      • +
      • Set the value of "Access key" to "DO_ACCESS_KEY_ID" environment variable.
      • +
      • Set the value of "Secret Access key" to "DO_SECRET_ACCESS_KEY" environment variable. +Visit below link if you face any issues while following the above instructions -
      • +
      • https://repost.aws/knowledge-center/create-access-key
    • -
    -

    Visit below link if you face any issues while following the above instructions -

    - \ No newline at end of file diff --git a/docs/self-host/docker/run-locally/index.html b/docs/self-host/docker/run-locally/index.html index 05b120805..4b32bdc89 100644 --- a/docs/self-host/docker/run-locally/index.html +++ b/docs/self-host/docker/run-locally/index.html @@ -5,34 +5,39 @@ Self-host OpenSign™ with Docker on Linux/MacOS/Windows | OpenSign™ - +

    Self-host OpenSign™ with Docker on Linux/MacOS/Windows

    Steps to run OpenSign™ with docker on Linux/MacOS/Windows:

    -
      -
    1. Firstly, install Docker and ensure it is running before proceeding to the next steps.
    2. -
    3. Now, start Docker and ensure it runs in the background.
    4. -
    +

    Step 1. Download and Install Docker:

    +

    Follow the official Docker installation guide based on your operating system.

    +

    Create a Docker Hub account if you don't already have one

    +

    Important: Don'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.

    +

    Step 2. Open the terminal and execute the below commands as per your operating system.

    +

    Make sure Docker is running in the background before proceeding.

    +

    Warning: The commands below should only be used when installing OpenSign for the first time. You may loose your settings as this will overwrite .env & caddy files.

    Running on a custom domain

    Command for linux/MacOS

    export HOST_URL=https://opensign.yourdomain.com && 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 && mv .env.local_dev .env.prod && docker compose up --force-recreate
    -

    Command for Windows (Powershell)

    +

    Command for Windows (Powershell)

    $env:HOST_URL="https://opensign.yourdomain.com"; 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
    -

    Command for Windows (CMD/Terminal)

    +

    Command for Windows (CMD/Terminal)

    set HOST_URL=https://opensign.yourdomain.com && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/docker-compose.yml && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/Caddyfile && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/main/.env.local_dev && rename .env.local_dev .env.prod && docker compose up --force-recreate
    -

    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.

    +

    Copy the command above, paste it into the terminal, and press Enter to pull and start the containers automatically.

    +

    Make sure to replace the host URL with your subdomain where OpenSign will be accessible.

    +

    You will also need to point the subdomain to the server executing these commands by adding the correct A record to your DNS settings.

    Running locally

    If instead want to run locally try out below commands and once the deployment is successful, the application will be accessible at https://localhost:3001. You will need to accept Chrome's insecure certificate warning. Follow the steps in the screenshots to proceed.

    Command for linux/MacOS (localhost)

    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) (localhost)

    +

    Command for Windows (Powershell) (localhost)

    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
    -

    Command for Windows (CMD/Terminal) (localhost)

    +

    Command for Windows (CMD/Terminal) (localhost)

    curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/docker-compose.yml && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/Caddyfile && curl -O https://raw.githubusercontent.com/OpenSignLabs/OpenSign/docker_beta/.env.local_dev && rename .env.local_dev .env.prod && docker compose up --force-recreate
    -
    localhost
    -
    proceedtolocalhost
    -

    Note: If you wish to incorporate our latest features into your Docker container, follow the steps again after stopping existing containers.

    +
    localhost
    +
    proceedtolocalhost
    +

    Note: If you wish to incorporate our latest features into your Docker container, follow the Upgrade Deployment steps.

    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:

    @@ -47,6 +52,6 @@
    + \ No newline at end of file diff --git a/docs/self-host/docker/upgrade-deployment/index.html b/docs/self-host/docker/upgrade-deployment/index.html index d62037bb4..82636f5f1 100644 --- a/docs/self-host/docker/upgrade-deployment/index.html +++ b/docs/self-host/docker/upgrade-deployment/index.html @@ -5,7 +5,7 @@ OpenSign™ Self-Hosted 'Upgrade Deployment' Guide Using Docker on Linux, macOS, or Windows | OpenSign™ - + diff --git a/docs/self-host/guides/env-variables/index.html b/docs/self-host/guides/env-variables/index.html index 20d8f1f33..84213ccce 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 55cc1cd54..10adf15fa 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 068b37acf..511c7de3a 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 a7cf58fe7..1cbfd9e39 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 951f15572..212622577 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 9e6f501c2..d3c8b4388 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -5,7 +5,7 @@ Markdown page example | OpenSign™ - +