PageSourceSearch

https://www.twingate.com/docs-assets/5f397c1/docs/1509-b1f287149462e70fb20b.js

js twingate.com collected 2026-09-24 08:34:54 UTC 29,696 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunktwingate_homepage=self.webpackChunktwingate_homepage||[]).push([[1509],{41509:function(e,n,t){t.r(n),t.d(n,{Head:function(){return M},default:function(){return N}});var l=t(96540),a=t(28453);function o(e){const n=Object.assign({p:"p",a:"a",h1:"h1",span:"span",h3:"h3",ol:"ol",li:"li",strong:"strong",code:"code",pre:"pre",h2:"h2"},(0,a.RP)(),e.components),{Callout:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Callout",!0),l.createElement(l.Fragment,null,l.createElement(n.p,null,"If you are running Twingate Connectors as containers in Docker, AWS ECS, or Azure Container Instances, the instructions specific to each environment below cover how to upgrade Connectors. Please keep in mind the best practices for upgrading detailed in ",l.createElement(n.a,{href:"/docs-assets/5f397c1/docs/upgrading-connectors"},"Upgrading Connectors")," to avoid downtime for your users."),"\n",l.createElement(n.p,null,"See the ",l.createElement(n.a,{href:"/docs-assets/5f397c1/docs/connectors-on-linux#docker-container"},"Linux Docker deployment")," documentation for more information on deploying the Twingate Connector in a Linux Docker container."),"\n",l.createElement(n.h1,{id:"aws-elastic-container-service-ecs",style:{position:"relative"}},l.createElement(n.a,{href:"#aws-elastic-container-service-ecs","aria-label":"aws elastic container service ecs permalink",className:"remark-autolink-anchor before"},l.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.3771 7.86873C14.1377 7.10819 15.3708 7.10819 16.1313 7.86873C16.8918 8.62927 16.8918 9.86235 16.1313 10.6229L14.2952 12.459C14.0417 12.7125 14.0417 13.1235 14.2952 13.3771C14.5487 13.6306 14.9597 13.6306 15.2132 13.3771L17.0493 11.5409C18.3169 10.2734 18.3169 8.21824 17.0493 6.95068C15.7818 5.68311 13.7266 5.68311 12.4591 6.95068L10.623 8.78678C10.3695 9.0403 10.3695 9.45132 10.623 9.70484C10.8765 9.95835 11.2875 9.95835 11.541 9.70484L13.3771 7.86873Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M10.1639 13.8361C9.9104 13.5826 9.9104 13.1716 10.1639 12.9181L12.9181 10.1639C13.1716 9.9104 13.5826 9.9104 13.8361 10.1639C14.0896 10.4174 14.0896 10.8285 13.8361 11.082L11.082 13.8361C10.8285 14.0896 10.4174 14.0896 10.1639 13.8361Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.86873 13.3771C7.10819 14.1377 7.10819 15.3707 7.86873 16.1313C8.62927 16.8918 9.86235 16.8918 10.6229 16.1313L12.459 14.2952C12.7125 14.0417 13.1235 14.0417 13.3771 14.2952C13.6306 14.5487 13.6306 14.9597 13.3771 15.2132L11.5409 17.0493C10.2734 18.3169 8.21824 18.3169 6.95068 17.0493C5.68311 15.7818 5.68311 13.7266 6.95068 12.4591L8.78678 10.623C9.0403 10.3694 9.45132 10.3694 9.70484 10.623C9.95835 10.8765 9.95835 11.2875 9.70484 11.541L7.86873 13.3771Z" fill="#A1A1AA"/></svg>'}})),"AWS Elastic Container Service (ECS)"),"\n",l.createElement(n.p,null,"In order to upgrade a running ECS Connector service, it needs to be restarted with the “Force new deployment” option selected. You can either do this via the AWS Management Console or with the AWS CLI."),"\n",l.createElement(n.h3,{id:"management-console",style:{position:"relative"}},l.createElement(n.a,{href:"#management-console","aria-label":"management console permalink",className:"remark-autolink-anchor before"},l.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.3771 7.86873C14.1377 7.10819 15.3708 7.10819 16.1313 7.86873C16.8918 8.62927 16.8918 9.86235 16.1313 10.6229L14.2952 12.459C14.0417 12.7125 14.0417 13.1235 14.2952 13.3771C14.5487 13.6306 14.9597 13.6306 15.2132 13.3771L17.0493 11.5409C18.3169 10.2734 18.3169 8.21824 17.0493 6.95068C15.7818 5.68311 13.7266 5.68311 12.4591 6.95068L10.623 8.78678C10.3695 9.0403 10.3695 9.45132 10.623 9.70484C10.8765 9.95835 11.2875 9.95835 11.541 9.70484L13.3771 7.86873Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M10.1639 13.8361C9.9104 13.5826 9.9104 13.1716 10.1639 12.9181L12.9181 10.1639C13.1716 9.9104 13.5826 9.9104 13.8361 10.1639C14.0896 10.4174 14.0896 10.8285 13.8361 11.082L11.082 13.8361C10.8285 14.0896 10.4174 14.0896 10.
11639 13.8361Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.86873 13.3771C7.10819 14.1377 7.10819 15.3707 7.86873 16.1313C8.62927 16.8918 9.86235 16.8918 10.6229 16.1313L12.459 14.2952C12.7125 14.0417 13.1235 14.0417 13.3771 14.2952C13.6306 14.5487 13.6306 14.9597 13.3771 15.2132L11.5409 17.0493C10.2734 18.3169 8.21824 18.3169 6.95068 17.0493C5.68311 15.7818 5.68311 13.7266 6.95068 12.4591L8.78678 10.623C9.0403 10.3694 9.45132 10.3694 9.70484 10.623C9.95835 10.8765 9.95835 11.2875 9.70484 11.541L7.86873 13.3771Z" fill="#A1A1AA"/></svg>'}})),"Management Console"),"\n",l.createElement(n.ol,null,"\n",l.createElement(n.li,null,"Select the name of the running Connector service in your ECS cluster and choose “Update”."),"\n",l.createElement(n.li,null,"Select the “Force new deployment” option, then “Skip to review”."),"\n",l.createElement(n.li,null,"Click “Update Service”."),"\n"),"\n",l.createElement(n.p,null,"The service will automatically restart and pull the latest image."),"\n",l.createElement(n.p,null,l.createElement(n.strong,null,"Note:")," If the image tag in the ECS task definition was changed to anything other than ",l.createElement(n.code,null,"1")," or ",l.createElement(n.code,null,"latest")," then the image that’s pulled may not be the latest. It’s recommended to always pull the latest image when updating a Connector."),"\n",l.createElement(n.h3,{id:"aws-cli",style:{position:"relative"}},l.createElement(n.a,{href:"#aws-cli","aria-label":"aws cli permalink",className:"remark-autolink-anchor before"},l.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.3771 7.86873C14.1377 7.10819 15.3708 7.10819 16.1313 7.86873C16.8918 8.62927 16.8918 9.86235 16.1313 10.6229L14.2952 12.459C14.0417 12.7125 14.0417 13.1235 14.2952 13.3771C14.5487 13.6306 14.9597 13.6306 15.2132 13.3771L17.0493 11.5409C18.3169 10.2734 18.3169 8.21824 17.0493 6.95068C15.7818 5.68311 13.7266 5.68311 12.4591 6.95068L10.623 8.78678C10.3695 9.0403 10.3695 9.45132 10.623 9.70484C10.8765 9.95835 11.2875 9.95835 11.541 9.70484L13.3771 7.86873Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M10.1639 13.8361C9.9104 13.5826 9.9104 13.1716 10.1639 12.9181L12.9181 10.1639C13.1716 9.9104 13.5826 9.9104 13.8361 10.1639C14.0896 10.4174 14.0896 10.8285 13.8361 11.082L11.082 13.8361C10.8285 14.0896 10.4174 14.0896 10.1639 13.8361Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.86873 13.3771C7.10819 14.1377 7.10819 15.3707 7.86873 16.1313C8.62927 16.8918 9.86235 16.8918 10.6229 16.1313L12.459 14.2952C12.7125 14.0417 13.1235 14.0417 13.3771 14.2952C13.6306 14.5487 13.6306 14.9597 13.3771 15.2132L11.5409 17.0493C10.2734 18.3169 8.21824 18.3169 6.95068 17.0493C5.68311 15.7818 5.68311 13.7266 6.95068 12.4591L8.78678 10.623C9.0403 10.3694 9.45132 10.3694 9.70484 10.623C9.95835 10.8765 9.95835 11.2875 9.70484 11.541L7.86873 13.3771Z" fill="#A1A1AA"/></svg>'}})),"AWS CLI"),"\n",l.createElement(n.p,null,"The command below will force a new deployment of your running ECS Service. Note that you need the name of the ECS Service, Cluster name, and AWS region to run the command."),"\n",l.createElement(n.pre,null,l.createElement(n.code,{className:"language-shell"},"aws ecs update-service --region <REGION> --cluster <CLUSTER_NAME> --service <SERVICE_NAME> --force-new-deployment\n")),"\n",l.createElement(n.h1,{id:"azure-container-instance",style:{position:"relative"}},l.createElement(n.a,{href:"#azure-container-instance","aria-label":"azure container instance permalink",className:"remark-autolink-anchor before"},l.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.3771 7.86873C14.1377 7.10819 15.3708 7.10819 16.1313 7.86873C16.8918 8.62927 16.8918 9.86235 16.1313 10.6229L14.2952 12.459C14.0417 12.7125 14.0417 13.1235 14.2952 13.3771C14.5487 13.6306 14.9597 13.6306 15.2132 13.3771L17.0493 11.5409C18.3169 10.2734 18.3169 8.21824 17.0493 6.95068C15.7818 5.68311 13.7266 5.68311 12.4591 6.95068L10.623 8.78678C10.3695 9.0403 10.3695 9.45132 10.623 9.70484C10.8765 9.95835 11.2875 9.95835 11.541 9.70484L13.3771 7.86873Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M10.1639 13.8361C9.9104 13.5826 9.9104 13.1716 10.1639 12.9181L12.9181 10.1639C13.1716 9.9104 13.5826 9.9104 13.8361 10.1639C14.0896 10.4174 14.0896 10.8285 13.8361 11.082L11.082 13.8361C10.8285 14.0896 10.4174 14.0896 10.
11639 13.8361Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.86873 13.3771C7.10819 14.1377 7.10819 15.3707 7.86873 16.1313C8.62927 16.8918 9.86235 16.8918 10.6229 16.1313L12.459 14.2952C12.7125 14.0417 13.1235 14.0417 13.3771 14.2952C13.6306 14.5487 13.6306 14.9597 13.3771 15.2132L11.5409 17.0493C10.2734 18.3169 8.21824 18.3169 6.95068 17.0493C5.68311 15.7818 5.68311 13.7266 6.95068 12.4591L8.78678 10.623C9.0403 10.3694 9.45132 10.3694 9.70484 10.623C9.95835 10.8765 9.95835 11.2875 9.70484 11.541L7.86873 13.3771Z" fill="#A1A1AA"/></svg>'}})),"Azure Container Instance"),"\n",l.createElement(n.p,null,"Due to ",l.createElement(n.a,{href:"https://docs.docker.com/docker-hub/download-rate-limit/"},"Docker Hub rate limiting")," and the Azure ",l.createElement(n.code,null,"az")," CLI ",l.createElement(n.code,null,"container restart")," ",l.createElement(n.a,{href:"https://learn.microsoft.com/en-us/cli/azure/container?view=azure-cli-latest#az-container-restart"},"command changes"),", Azure Container instances can no longer be restarted to upgrade Connector versions. You must destroy old Connectors and use ",l.createElement(n.code,null,"az container create")," to deploy the latest Connector version, along with Docker Hub credentials, per ",l.createElement(n.a,{href:"//help.twingate.com/articles/6965244612-azure-container-docker-hub-rate-limits-block-connector-deployment-or-restart"},"our Knowledge Base article"),". You will need a free Docker Hub account and username and password. As an alternative to using a password, you may pass in a ",l.createElement(n.a,{href:"https://docs.docker.com/security/for-developers/access-tokens/"},"personal access token"),"."),"\n",l.createElement(n.p,null,"Note that ",l.createElement(n.code,null,"--registry-username")," does not require quotations, but ",l.createElement(n.code,null,"--registry-password")," value should be in double quotes: ",l.createElement(n.code,null,'"your-password"'),".  If you sign into Docker Hub using SSO, e.g. Google or Github, you must pass in a PAT instead of a password."),"\n",l.createElement(n.p,null,"Example for reference:"),"\n",l.createElement(n.pre,null,l.createElement(n.code,{className:"language-shell"},'az container create --name twingate-connector-name --image twingate/connector:1 --resource-group RSG-here --vnet VNet-here --subnet Subnet-here --cpu 1 --memory 2 --os-type Linux --environment-variables TWINGATE_NETWORK="your-twingate-network" TWINGATE_ACCESS_TOKEN= TWINGATE_REFRESH_TOKEN= TWINGATE_TIMESTAMP_FORMAT=2 TWINGATE_LABEL_DEPLOYED_BY=azure --registry-username DockerHubUsername --registry-password "dockerhub password" --registry-login-server index.docker.io\n')),"\n",l.createElement(n.h1,{id:"docker",style:{position:"relative"}},l.createElement(n.a,{href:"#docker","aria-label":"docker permalink",className:"remark-autolink-anchor before"},l.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.3771 7.86873C14.1377 7.10819 15.3708 7.10819 16.1313 7.86873C16.8918 8.62927 16.8918 9.86235 16.1313 10.6229L14.2952 12.459C14.0417 12.7125 14.0417 13.1235 14.2952 13.3771C14.5487 13.6306 14.9597 13.6306 15.2132 13.3771L17.0493 11.5409C18.3169 10.2734 18.3169 8.21824 17.0493 6.95068C15.7818 5.68311 13.7266 5.68311 12.4591 6.95068L10.623 8.78678C10.3695 9.0403 10.3695 9.45132 10.623 9.70484C10.8765 9.95835 11.2875 9.95835 11.541 9.70484L13.3771 7.86873Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M10.1639 13.8361C9.9104 13.5826 9.9104 13.1716 10.1639 12.9181L12.9181 10.1639C13.1716 9.9104 13.5826 9.9104 13.8361 10.1639C14.0896 10.4174 14.0896 10.8285 13.8361 11.082L11.082 13.8361C10.8285 14.0896 10.4174 14.0896 10.1639 13.8361Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.86873 13.3771C7.10819 14.1377 7.10819 15.3707 7.86873 16.1313C8.62927 16.8918 9.86235 16.8918 10.6229 16.1313L12.459 14.2952C12.7125 14.0417 13.1235 14.0417 13.3771 14.2952C13.6306 14.5487 13.6306 14.9597 13.3771 15.2132L11.5409 17.0493C10.2734 18.3169 8.21824 18.3169 6.95068 17.0493C5.68311 15.7818 5.68311 13.7266 6.95068 12.4591L8.78678 10.623C9.0403 10.3694 9.45132 10.3694 9.70484 10.623C9.95835 10.8765 9.95835 11.2875 9.70484 11.541L7.86873 13.3771Z" fill="#A1A1AA"/></svg>'}})),"Docker"),"\n",l.createElement(n.h2,{id:"checking-the-connector-version",style:{position:"relative"}}
1,l.createElement(n.a,{href:"#checking-the-connector-version","aria-label":"checking the connector version permalink",className:"remark-autolink-anchor before"},l.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.3771 7.86873C14.1377 7.10819 15.3708 7.10819 16.1313 7.86873C16.8918 8.62927 16.8918 9.86235 16.1313 10.6229L14.2952 12.459C14.0417 12.7125 14.0417 13.1235 14.2952 13.3771C14.5487 13.6306 14.9597 13.6306 15.2132 13.3771L17.0493 11.5409C18.3169 10.2734 18.3169 8.21824 17.0493 6.95068C15.7818 5.68311 13.7266 5.68311 12.4591 6.95068L10.623 8.78678C10.3695 9.0403 10.3695 9.45132 10.623 9.70484C10.8765 9.95835 11.2875 9.95835 11.541 9.70484L13.3771 7.86873Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M10.1639 13.8361C9.9104 13.5826 9.9104 13.1716 10.1639 12.9181L12.9181 10.1639C13.1716 9.9104 13.5826 9.9104 13.8361 10.1639C14.0896 10.4174 14.0896 10.8285 13.8361 11.082L11.082 13.8361C10.8285 14.0896 10.4174 14.0896 10.1639 13.8361Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.86873 13.3771C7.10819 14.1377 7.10819 15.3707 7.86873 16.1313C8.62927 16.8918 9.86235 16.8918 10.6229 16.1313L12.459 14.2952C12.7125 14.0417 13.1235 14.0417 13.3771 14.2952C13.6306 14.5487 13.6306 14.9597 13.3771 15.2132L11.5409 17.0493C10.2734 18.3169 8.21824 18.3169 6.95068 17.0493C5.68311 15.7818 5.68311 13.7266 6.95068 12.4591L8.78678 10.623C9.0403 10.3694 9.45132 10.3694 9.70484 10.623C9.95835 10.8765 9.95835 11.2875 9.70484 11.541L7.86873 13.3771Z" fill="#A1A1AA"/></svg>'}})),"Checking the Connector Version"),"\n",l.createElement(n.p,null,"If you’d like to check the currently running version of a Connector in a Docker container, you can do so using the following command:"),"\n",l.createElement(n.pre,null,l.createElement(n.code,{className:"language-shell"},"docker exec twingate-connector ./connectord --version\n")),"\n",l.createElement(n.p,null,"In the above example, ",l.createElement(n.code,null,"twingate-connector")," represents the name of the Connector container."),"\n",l.createElement(n.p,null,"The latest build version number and other update notes are available in the ",l.createElement(n.a,{href:"/docs-assets/5f397c1/docs/connector-changelog"},"Connector Release Notes"),"."),"\n",l.createElement(n.h2,{id:"updating-a-docker-container",style:{position:"relative"}},l.createElement(n.a,{href:"#updating-a-docker-container","aria-label":"updating a docker container permalink",className:"remark-autolink-anchor before"},l.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.3771 7.86873C14.1377 7.10819 15.3708 7.10819 16.1313 7.86873C16.8918 8.62927 16.8918 9.86235 16.1313 10.6229L14.2952 12.459C14.0417 12.7125 14.0417 13.1235 14.2952 13.3771C14.5487 13.6306 14.9597 13.6306 15.2132 13.3771L17.0493 11.5409C18.3169 10.2734 18.3169 8.21824 17.0493 6.95068C15.7818 5.68311 13.7266 5.68311 12.4591 6.95068L10.623 8.78678C10.3695 9.0403 10.3695 9.45132 10.623 9.70484C10.8765 9.95835 11.2875 9.95835 11.541 9.70484L13.3771 7.86873Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M10.1639 13.8361C9.9104 13.5826 9.9104 13.1716 10.1639 12.9181L12.9181 10.1639C13.1716 9.9104 13.5826 9.9104 13.8361 10.1639C14.0896 10.4174 14.0896 10.8285 13.8361 11.082L11.082 13.8361C10.8285 14.0896 10.4174 14.0896 10.1639 13.8361Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.86873 13.3771C7.10819 14.1377 7.10819 15.3707 7.86873 16.1313C8.62927 16.8918 9.86235 16.8918 10.6229 16.1313L12.459 14.2952C12.7125 14.0417 13.1235 14.0417 13.3771 14.2952C13.6306 14.5487 13.6306 14.9597 13.3771 15.2132L11.5409 17.0493C10.2734 18.3169 8.21824 18.3169 6.95068 17.0493C5.68311 15.7818 5.68311 13.7266 6.95068 12.4591L8.78678 10.623C9.0403 10.3694 9.45132 10.3694 9.70484 10.623C9.95835 10.8765 9.95835 11.2875 9.70484 11.541L7.86873 13.3771Z" fill="#A1A1AA"/></svg>'}})),"Updating a Docker Container"),"\n",l.createElement(n.p,null,"The following command can be used to upgrade running Connectors that have been deployed on a host using the Docker CLI. The script automates:"),"\n",l.createElement(n.ol,null,"\n",l.createElement(n.li,null,"Pulling the latest Connector image (",l.createElement(n.code,null,"twingate/connector:1"),")"),"\n",l.createElement(n.li,null,"Comparing any running containers to the latest image"),"\n",l.createElement(n.li,null,"Stopping any out of date containers, deleting them, and restarting them with the same environment variables and the latest image"),"\n"),"\n",l.createElement(n.pre,null,l.createElement(n.code,{className:"language-shell"},"curl -s https://binaries.twingate.com/connector/docker-upgrade.sh | sudo nohup sudo bash\n")),"\n",l.createElement(n.h2,{id:"watchtower",style:{position:"relative"}}
1,l.createElement(n.a,{href:"#watchtower","aria-label":"watchtower permalink",className:"remark-autolink-anchor before"},l.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.3771 7.86873C14.1377 7.10819 15.3708 7.10819 16.1313 7.86873C16.8918 8.62927 16.8918 9.86235 16.1313 10.6229L14.2952 12.459C14.0417 12.7125 14.0417 13.1235 14.2952 13.3771C14.5487 13.6306 14.9597 13.6306 15.2132 13.3771L17.0493 11.5409C18.3169 10.2734 18.3169 8.21824 17.0493 6.95068C15.7818 5.68311 13.7266 5.68311 12.4591 6.95068L10.623 8.78678C10.3695 9.0403 10.3695 9.45132 10.623 9.70484C10.8765 9.95835 11.2875 9.95835 11.541 9.70484L13.3771 7.86873Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M10.1639 13.8361C9.9104 13.5826 9.9104 13.1716 10.1639 12.9181L12.9181 10.1639C13.1716 9.9104 13.5826 9.9104 13.8361 10.1639C14.0896 10.4174 14.0896 10.8285 13.8361 11.082L11.082 13.8361C10.8285 14.0896 10.4174 14.0896 10.1639 13.8361Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.86873 13.3771C7.10819 14.1377 7.10819 15.3707 7.86873 16.1313C8.62927 16.8918 9.86235 16.8918 10.6229 16.1313L12.459 14.2952C12.7125 14.0417 13.1235 14.0417 13.3771 14.2952C13.6306 14.5487 13.6306 14.9597 13.3771 15.2132L11.5409 17.0493C10.2734 18.3169 8.21824 18.3169 6.95068 17.0493C5.68311 15.7818 5.68311 13.7266 6.95068 12.4591L8.78678 10.623C9.0403 10.3694 9.45132 10.3694 9.70484 10.623C9.95835 10.8765 9.95835 11.2875 9.70484 11.541L7.86873 13.3771Z" fill="#A1A1AA"/></svg>'}})),"Watchtower"),"\n",l.createElement(n.p,null,l.createElement(n.a,{href:"https://github.com/nicholas-fedor/watchtower"},"Watchtower")," is a popular open-source tool for automatically updating Docker containers. It can be used to automatically update the Twingate Connector container when a new version is available. The original project has since been archived but a number of forks are being maintained, including the one we use in the examples here."),"\n",l.createElement(t,{title:"Watchtower on Production Systems",severity:"info"},l.createElement(n.p,null,"Watchtower is not meant to be used on critical production systems. The makers of the tool recommend implementing container maintenance through the use of Kubernetes or other similar services instead.")),"\n",l.createElement(n.p,null,"To use Watchtower, you can run the following command:"),"\n",l.createElement(n.pre,null,l.createElement(n.code,{className:"language-shell"},"docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock nicholas-fedor/watchtower:latest --cleanup\n")),"\n",l.createElement(n.p,null,"This will start Watchtower as a container, which will automatically check for new versions of all containers and update them when new images are available."),"\n",l.createElement(n.p,null,"If you would like to limit Watchtower to just updating the Twingate Connector, you can use the following command:"),"\n",l.createElement(n.pre,null,l.createElement(n.code,{className:"language-shell"},"docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock nicholas-fedor/watchtower:latest --label-enable=true\n")),"\n",l.createElement(n.p,null,"This will run Watchtower with the ",l.createElement(n.code,null,"label-enable")," option, which will check each container for a label ",l.createElement(n.code,null,"com.centurylinklabs.watchtower.enable=true")," and only update containers with this label."),"\n",l.createElement(n.p,null,"To add the label to the Twingate Connector container, will need to add the appropriate label to the Docker run command from the Admin Console:"),"\n",l.createElement(n.pre,null,l.createElement(n.code,{className:"language-shell"},'docker run -d\n    --sysctl net.ipv4.ping_group_range="0 2147483647"\n    --env TWINGATE_NETWORK="networkname"\n    --env TWINGATE_ACCESS_TOKEN=""\n    --env TWINGATE_REFRESH_TOKEN=""\n    --env TWINGATE_LABEL_HOSTNAME="`hostname`"\n    --name "twingate-quixotic-squid"\n    --restart=unless-stopped\n    --pull=always\n    --label com.centurylinklabs.watchtower.enable=true\n    twingate/connector:1\n')),"\n",l.createElement(n.h2,{id:"manual-steps",style:{position:"relative"}}
1,l.createElement(n.a,{href:"#manual-steps","aria-label":"manual steps permalink",className:"remark-autolink-anchor before"},l.createElement(n.span,{dangerouslySetInnerHTML:{__html:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.3771 7.86873C14.1377 7.10819 15.3708 7.10819 16.1313 7.86873C16.8918 8.62927 16.8918 9.86235 16.1313 10.6229L14.2952 12.459C14.0417 12.7125 14.0417 13.1235 14.2952 13.3771C14.5487 13.6306 14.9597 13.6306 15.2132 13.3771L17.0493 11.5409C18.3169 10.2734 18.3169 8.21824 17.0493 6.95068C15.7818 5.68311 13.7266 5.68311 12.4591 6.95068L10.623 8.78678C10.3695 9.0403 10.3695 9.45132 10.623 9.70484C10.8765 9.95835 11.2875 9.95835 11.541 9.70484L13.3771 7.86873Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M10.1639 13.8361C9.9104 13.5826 9.9104 13.1716 10.1639 12.9181L12.9181 10.1639C13.1716 9.9104 13.5826 9.9104 13.8361 10.1639C14.0896 10.4174 14.0896 10.8285 13.8361 11.082L11.082 13.8361C10.8285 14.0896 10.4174 14.0896 10.1639 13.8361Z" fill="#A1A1AA"/><path fill-rule="evenodd" clip-rule="evenodd" d="M7.86873 13.3771C7.10819 14.1377 7.10819 15.3707 7.86873 16.1313C8.62927 16.8918 9.86235 16.8918 10.6229 16.1313L12.459 14.2952C12.7125 14.0417 13.1235 14.0417 13.3771 14.2952C13.6306 14.5487 13.6306 14.9597 13.3771 15.2132L11.5409 17.0493C10.2734 18.3169 8.21824 18.3169 6.95068 17.0493C5.68311 15.7818 5.68311 13.7266 6.95068 12.4591L8.78678 10.623C9.0403 10.3694 9.45132 10.3694 9.70484 10.623C9.95835 10.8765 9.95835 11.2875 9.70484 11.541L7.86873 13.3771Z" fill="#A1A1AA"/></svg>'}})),"Manual steps"),"\n",l.createElement(n.p,null,"To manually upgrade a Connector using the Docker command line, the following steps will pull the latest Connector image."),"\n",l.createElement(n.p,null,l.createElement(n.strong,null,"Note:")," You will need to ",l.createElement(n.a,{href:"/docs-assets/5f397c1/docs/quick-start#deploy-a-connector"},"reprovision the Connector")," in the Twingate Admin Console since this method does not preserve the authentication tokens for the running Connector."),"\n",l.createElement(n.pre,null,l.createElement(n.code,{className:"language-shell"},"docker ps\n# Copy either the container ID or name\ndocker container rm -f [ container ID or name ]\ndocker image rm -f twingate/connector\n\n# Obtain a new Docker run command from the Twingate admin console by reprovisioning the connector\ndocker run ...\n")))}var r=function(e){void 0===e&&(e={});const{wrapper:n}=Object.assign({},(0,a.RP)(),e.components);return n?l.createElement(n,e,l.createElement(o,e)):o(e)};var i=t(35309),c=t(71623),s=t(84343),d=t(48291),u=t(17816),h=t(75131),m=t(22792),p=t(43611),C=t(63377),g=t(42452),v=t(1805),w=t(2976),f=t(64190),E=t(83900),A=t(43285),k=t(22009),L=t(28789),b=t(61540),y=t(21145),x=t(16204),T=t(35935),S=t(74848);function M(e){var n,t,l,a,o,r;const{data:i,location:s,pageContext:u}=e,{mdx:m,docsSocialImage:p}=i,C=null==m||null===(n=m.frontmatter)||void 0===n?void 0:n.title,g=(null==m||null===(t=m.frontmatter)||void 0===t?void 0:t.description)||(null==m||null===(l=m.frontmatter)||void 0===l?void 0:l.subt
1itle),v=null==m||null===(a=m.frontmatter)||void 0===a?void 0:a.keywords,{docsMetadata:w}=(0,x.M)(),f=g||(null==w?void 0:w.description),E=(0,T.f)((0,h.Z)(m),null!==(o=u.navigationTree)&&void 0!==o?o:[],C),k=E.length>1;return(0,S.jsxs)(A.k,{title:C,description:f,keywords:v,pathname:s.pathname,image:null==p||null===(r=p.childImageSharp)||void 0===r?void 0:r.original,children:[(0,S.jsx)(c.d,{mdx:m,pathname:s.pathname,description:f,hasBreadcrumb:k}),(0,S.jsx)(d.g,{path:E,pathname:s.pathname})]})}function I(e){var n,t,l;const{children:a,data:o,pageContext:r,location:c}=e,{mdx:d}=o,{navigationTree:A}=r,x=(0,k._)(),M=null==d?void 0:d.frontmatter,I="two-column"===(null==M||null===(n=M.docs)||void 0===n?void 0:n.layout),N=`https://www.twingate.com${c.pathname}`;let _=null!==(t=null==M||null===(l=M.docs)||void 0===l?void 0:l.aiPrompt)&&void 0!==t?t:`Take a look at this page: ${N} and walk me through it`;_.includes("{{url}}")&&(_=_.replace("{{url}}",N));const j=[{id:"open-chatgpt",icon:(0,S.jsx)(L.IconChatGPT,{}),label:"Open in ChatGPT",description:"Ask questions about this page",href:`https://chatgpt.com/?hints=search&q=${encodeURIComponent(_)}`},{id:"open-claude",icon:(0,S.jsx)(b.IconClaude,{}),label:"Open in Claude",description:"Ask questions about this page",href:`https://claude.ai/new?q=${encodeURIComponent(_)}`}],W=(0,h.Z)(d),Z=null==M?void 0:M.title,D=(0,T.f)(W,A,Z),{isVideoOverlayOpen:O}=x;return(0,S.jsx)(k.jx,{value:x,children:(0,S.jsxs)(C.P,{children:[(0,S.jsx)(y.R,{currentPath:D,navItems:A,pathname:c.pathname,visibility:["visible","visible","hidden"],height:["auto","auto",0]}),(0,S.jsx)(v.a,{as:"section",paddingTopSpacing:[3,4,6],paddingBottomSpacing:[4,0],boxSizing:"content-box",children:(0,S.jsx)(w.m,{maxWidth:"xl",disableGutters:!0,children:(0,S.jsxs)(f.x,{gridGap:["0","0","2rem","4rem","6rem","9rem"],gridTemplateColumns:["repeat(12, 1fr)","repeat(12, 1fr)","248px minmax(0, 1fr) 240px","248px minmax(0, 1fr) 240px","248px minmax(0, 1fr) 240px"],children:[(0,S.jsx)(v.a,{display:["none","none","block"],gridColumn:"1 / span 1",height:"calc(100vh - 5rem - 3rem)",overflow:"auto",position:"sticky",top:"7rem",children:(0,S.jsx)(m.S,{overflow:"hidden",pathname:c.pathname,items:A,paddingRightSpacing:[0,0],paddingBottomSpacing:2})}),(0,S.jsxs)(v.a,{gridColumn:["1 / span 12","1 / span 12","2 / span 2",I?"2 / span 2":"2 / span 1"],style:{maxWidth:"840px"},children:[(0,S.jsxs)(v.a,{display:"flex",flexDirection:["column-reverse","row","row","column"],justifyContent:["flex-start","space-between","space-between","flex-start"],marginBottomSpacing:[2,3,2,0],children:[(0,S.jsx)(v.a,{children:(0,S.jsx)(i.n,{mdx:d,path:D})}),!I&&(0,S.jsx)(v.a,{display:["block","block","block","none"],marginTopSpacing:[1,2,5],children:(0,S.jsx)(g.W,{items:j,triggerLabel:"Open with AI"})})]}),O&&(0,S.jsx)(v.a,{position:"absolute",width:"100%",height:"100%",left:"0",right:"0",top:"0",children:(0,S.jsx)(p.O,{})}),a&&(0,S.jsx)(v.a,{marginTopSpacing:4,marginBottomSpacing:7,children:(0,S.jsx)(E.b,{children:a})}),(0,S.jsx)(s.n,{mdx:d})]}),!I&&(0,S.jsx)(v.a,{display:["none","none","none","block"],gridColumn:"3 / span 1",children:(0,S.jsxs)(v.a,{position:"sticky",top:"7rem",children:[(0,S.jsx)(v.a,{marginBottomSpacing:3,marginTopSpacing:1,children:(0,S.jsx)(g.W,{items:j,triggerLabel:"Open with AI"})}),(0,S.jsx)(u.M,{mdx:d,locationHash:c.hash})]})})]})})})]})})}function N(e){return l.createElement(I,e,l.createElement(r,e))}}}]);
2//# sourceMappingURL=1509-b1f287149462e70fb20b.js.map

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.