PageSourceSearch

https://docs.sentinel.co/assets/js/2bb23186.0b021514.js

js sentinel.co collected 2026-10-03 19:03:26 UTC 5,431 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunksentinel_docs=globalThis.webpackChunksentinel_docs||[]).push([[4525],{62113(e,n,t){t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"setup/manual/docker-image","title":"Preparing Sentinel Docker image","description":"Choose between prebuilt or from source","source":"@site/docs/dvpn-nodes/setup/manual/docker-image.md","sourceDirName":"setup/manual","slug":"/setup/manual/docker-image","permalink":"/dvpn-nodes/setup/manual/docker-image","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"title":"Preparing Sentinel Docker image","description":"Choose between prebuilt or from source","sidebar_position":3},"sidebar":"tutorialSidebar","previous":{"title":"Install Docker","permalink":"/dvpn-nodes/setup/manual/docker-setup"},"next":{"title":"Node Configuration","permalink":"/dvpn-nodes/setup/manual/node-config"}}');var s=t(74848),r=t(28453);const l={title:"Preparing Sentinel Docker image",description:"Choose between prebuilt or from source",sidebar_position:3},a="Preparing Sentinel Docker Image",o={},c=[{value:"Method 1 - Prebuilt",id:"method-1---prebuilt",level:2},{value:"x86_64",id:"x86_64",level:3},{value:"AArch64 (ARM64)",id:"aarch64-arm64",level:3},{value:"Method 2 - From Source",id:"method-2---from-source",level:2},{value:"Clone the GitHub repository",id:"clone-the-github-repository",level:3},{value:"Checkout to the latest tag",id:"checkout-to-the-latest-tag",level:3},{value:"Build the image",id:"build-the-image",level:3},{value:"Verify the image",id:"verify-the-image",level:3}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"preparing-sentinel-docker-image",children:"Preparing Sentinel Docker Image"})}),"\n",(0,s.jsx)(n.h2,{id:"method-1---prebuilt",children:"Method 1 - Prebuilt"}),"\n",(0,s.jsx)(n.h3,{id:"x86_64",children:"x86_64"}),"\n",(0,s.jsxs)(n.p,{children:["Pull the image (check your desired version from this ",(0,s.jsx)(n.a,{href:"https://github.com/sentinel-official/sentinel-dvpnx/pkgs/container/sentinel-dvpnx",children:"link"}),")"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"docker pull ghcr.io/sentinel-official/sentinel-dvpnx:v9.0.0@sha256:49f7a11ae56baaa2c43de4384b56beff787e8d408bc37196cf63e3f6c10beca5\n"})}),"\n",(0,s.jsx)(n.h3,{id:"aarch64-arm64",children:"AArch64 (ARM64)"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"docker pull ghcr.io/sentinel-official/sentinel-dvpnx:v9.0.0@sha256:44ad033534485d34c823aff676f7696f35ee0c460ad64b231af93d42b6acd741\n"})}),"\n",(0,s.jsx)(n.h2,{id:"method-2---from-source",children:"Method 2 - From Source"}),"\n",(0,s.jsx)(n.h3,{id:"clone-the-github-repository",children:"Clone the GitHub repository"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"git clone https://github.com/sentinel-official/sentinel-dvpnx.git \\\n    ${HOME}/sentinel-dvpnx/\n"})}),"\n",(0,s.jsx)(n.h3,{id:"checkout-to-the-latest-tag",children:"Checkout to the latest tag"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Option 1 - Automatic to the latest tag"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"cd ${HOME}/sentinel-dvpnx/ && \\\ncommit=$(git rev-list --tags --max-count=1) && \\\ngit checkout $(git describe --tags ${commit})\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Option 2 - Manual (if the previous command does not work for some reasons). Check ",(0,s.jsx)(n.a,{href:"https://github.com/sentinel-official/sentinel-dvpnx/releases",children:"here"})," for the last current release"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"cd ~/sentinel-dvpnx && \\\ngit fetch && \\\ngit checkout vX.X.X\n"})}),"\n",(0,s.jsx)(n.h3,{id:"build-the-image",children:"Build the image"}),"\n",(0,s.jsx)(n.p,{children:"Run the following command to build the image:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"make build-image\n"})}),"\n",(0,s.jsx)(n.h3,{id:"verify-the-image",children:"Verify the image"}),"\n",(0,s.jsx)(n.p,{children:"After the build completes, check that the image was created successfully by running:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"docker images | grep sentinel-dvpnx\n"})}),"\n",(0,s.jsx)(n.p,{children:"You should see an output similar to this:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"sentinel-dvpnx           latest    0994666b4eed   44 seconds ago   118MB\n"})})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},28453(e,n,t){t.d(n,{R:()=>l,x:()=>a});var i=t(96540);const s={},r=i.createContext(s);function l(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.