[{"data":1,"prerenderedAt":885},["ShallowReactive",2],{"navigation_docs_en":3,"-en-nonsense-bash-socat-proxy-":377,"-en-nonsense-bash-socat-proxy--surround":880},[4,16,94,262,271,332],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":15},"About","i-noto-star","\u002Fen\u002Fabout","en\u002F1.about",[10],{"title":11,"path":12,"stem":13,"icon":14},"Welcome","\u002Fen\u002Fabout\u002Fwelcome","en\u002F1.about\u002F1.welcome","i-lucide-home",false,{"title":17,"icon":18,"path":19,"stem":20,"children":21,"page":15},"General","i-noto-open-book","\u002Fen\u002Fgeneral","en\u002F2.general",[22,26,44,58,76],{"title":17,"path":23,"stem":24,"icon":25},"\u002Fen\u002Fgeneral\u002Fsummary","en\u002F2.general\u002F1.summary","i-lucide-bookmark",{"title":27,"icon":28,"path":29,"stem":30,"children":31,"page":15},"Networking","i-lucide-network","\u002Fen\u002Fgeneral\u002Fnetworking","en\u002F2.general\u002F2.networking",[32,36,40],{"title":33,"path":34,"stem":35},"NAT & DHCP","\u002Fen\u002Fgeneral\u002Fnetworking\u002Fnat","en\u002F2.general\u002F2.networking\u002F1.nat",{"title":37,"path":38,"stem":39},"DNS Zone","\u002Fen\u002Fgeneral\u002Fnetworking\u002Fdns","en\u002F2.general\u002F2.networking\u002F2.dns",{"title":41,"path":42,"stem":43},"Samba","\u002Fen\u002Fgeneral\u002Fnetworking\u002Fsamba","en\u002F2.general\u002F2.networking\u002F3.samba",{"title":45,"icon":46,"path":47,"stem":48,"children":49,"page":15},"Storage","i-lucide-hard-drive","\u002Fen\u002Fgeneral\u002Fstorage","en\u002F2.general\u002F3.storage",[50,54],{"title":51,"path":52,"stem":53},"RAID","\u002Fen\u002Fgeneral\u002Fstorage\u002Fraid","en\u002F2.general\u002F3.storage\u002F1.raid",{"title":55,"path":56,"stem":57},"ZFS","\u002Fen\u002Fgeneral\u002Fstorage\u002Fzfs","en\u002F2.general\u002F3.storage\u002F2.zfs",{"title":59,"icon":60,"path":61,"stem":62,"children":63,"page":15},"Hardware","i-lucide-server","\u002Fen\u002Fgeneral\u002Fhardware","en\u002F2.general\u002F4.hardware",[64,68,72],{"title":65,"path":66,"stem":67},"The Basics","\u002Fen\u002Fgeneral\u002Fhardware\u002Fbasics","en\u002F2.general\u002F4.hardware\u002F1.basics",{"title":69,"path":70,"stem":71},"Network","\u002Fen\u002Fgeneral\u002Fhardware\u002Fnetwork","en\u002F2.general\u002F4.hardware\u002F2.network",{"title":73,"path":74,"stem":75},"The ProloNAS","\u002Fen\u002Fgeneral\u002Fhardware\u002Fprolonas","en\u002F2.general\u002F4.hardware\u002F3.prolonas",{"title":77,"icon":78,"path":79,"stem":80,"children":81,"page":15},"Linux tips for dummies","i-lucide-terminal","\u002Fen\u002Fgeneral\u002Flinux","en\u002F2.general\u002F5.linux",[82,86,90],{"title":83,"path":84,"stem":85},"Command line basics","\u002Fen\u002Fgeneral\u002Flinux\u002Fcli-basics","en\u002F2.general\u002F5.linux\u002F1.cli-basics",{"title":87,"path":88,"stem":89},"Folders and partitions","\u002Fen\u002Fgeneral\u002Flinux\u002Ffilesystem","en\u002F2.general\u002F5.linux\u002F2.filesystem",{"title":91,"path":92,"stem":93},"Handy CLI tools","\u002Fen\u002Fgeneral\u002Flinux\u002Fhandy-tools","en\u002F2.general\u002F5.linux\u002F3.handy-tools",{"title":95,"icon":96,"path":97,"stem":98,"children":99,"page":15},"Serveex","i-noto-microscope","\u002Fen\u002Fserveex","en\u002F3.serveex",[100,104,126,144,170,188,202,216,234,248],{"title":101,"path":102,"stem":103,"icon":25},"Introduction","\u002Fen\u002Fserveex\u002Fintroduction","en\u002F3.serveex\u002F1.introduction",{"title":105,"icon":106,"path":107,"stem":108,"children":109,"page":15},"Server core","i-lucide-server-cog","\u002Fen\u002Fserveex\u002Fcore","en\u002F3.serveex\u002F2.core",[110,114,118,122],{"title":111,"path":112,"stem":113},"Debian 13","\u002Fen\u002Fserveex\u002Fcore\u002Finstallation","en\u002F3.serveex\u002F2.core\u002F1.installation",{"title":115,"path":116,"stem":117},"Docker","\u002Fen\u002Fserveex\u002Fcore\u002Fdocker","en\u002F3.serveex\u002F2.core\u002F2.docker",{"title":119,"path":120,"stem":121},"Wireguard","\u002Fen\u002Fserveex\u002Fcore\u002Fwireguard","en\u002F3.serveex\u002F2.core\u002F3.wireguard",{"title":123,"path":124,"stem":125},"SWAG","\u002Fen\u002Fserveex\u002Fcore\u002Fswag","en\u002F3.serveex\u002F2.core\u002F4.swag",{"title":127,"icon":128,"path":129,"stem":130,"children":131,"page":15},"Security","i-lucide-shield","\u002Fen\u002Fserveex\u002Fsecurity","en\u002F3.serveex\u002F3.security",[132,136,140],{"title":133,"path":134,"stem":135},"Cloudflare Zero Trust","\u002Fen\u002Fserveex\u002Fsecurity\u002Fcloudflare","en\u002F3.serveex\u002F3.security\u002F2.cloudflare",{"title":137,"path":138,"stem":139},"TinyAuth","\u002Fen\u002Fserveex\u002Fsecurity\u002Ftinyauth","en\u002F3.serveex\u002F3.security\u002F3.tinyauth",{"title":141,"path":142,"stem":143},"Pocket ID","\u002Fen\u002Fserveex\u002Fsecurity\u002Fpocket-id","en\u002F3.serveex\u002F3.security\u002F4.pocket-id",{"title":145,"icon":146,"path":147,"stem":148,"children":149,"page":15},"Monitoring","i-lucide-chart-no-axes-column","\u002Fen\u002Fserveex\u002Fmonitoring","en\u002F3.serveex\u002F4.monitoring",[150,154,158,162,166],{"title":151,"path":152,"stem":153},"Uptime-Kuma","\u002Fen\u002Fserveex\u002Fmonitoring\u002Fuptime-kuma","en\u002F3.serveex\u002F4.monitoring\u002F1.uptime-kuma",{"title":155,"path":156,"stem":157},"Dozzle","\u002Fen\u002Fserveex\u002Fmonitoring\u002Fdozzle","en\u002F3.serveex\u002F4.monitoring\u002F2.dozzle",{"title":159,"path":160,"stem":161},"Speedtest Tracker","\u002Fen\u002Fserveex\u002Fmonitoring\u002Fspeedtest-tracker","en\u002F3.serveex\u002F4.monitoring\u002F3.speedtest-tracker",{"title":163,"path":164,"stem":165},"Beszel","\u002Fen\u002Fserveex\u002Fmonitoring\u002Fbeszel","en\u002F3.serveex\u002F4.monitoring\u002F4.beszel",{"title":167,"path":168,"stem":169},"UpSnap","\u002Fen\u002Fserveex\u002Fmonitoring\u002Fupsnap","en\u002F3.serveex\u002F4.monitoring\u002F5.upsnap",{"title":171,"icon":172,"path":173,"stem":174,"children":175,"page":15},"Media & Seedbox","i-lucide-list-video","\u002Fen\u002Fserveex\u002Fmedia","en\u002F3.serveex\u002F5.media",[176,180,184],{"title":177,"path":178,"stem":179},"Jellyfin","\u002Fen\u002Fserveex\u002Fmedia\u002Fjellyfin","en\u002F3.serveex\u002F5.media\u002F1.jellyfin",{"title":181,"path":182,"stem":183},"Qbittorrent","\u002Fen\u002Fserveex\u002Fmedia\u002Fqbittorrent","en\u002F3.serveex\u002F5.media\u002F2.qbittorrent",{"title":185,"path":186,"stem":187},"Automation","\u002Fen\u002Fserveex\u002Fmedia\u002Fservarr","en\u002F3.serveex\u002F5.media\u002F3.servarr",{"title":189,"icon":190,"path":191,"stem":192,"children":193,"page":15},"Cloud Drive & Photos","i-lucide-cloud-upload","\u002Fen\u002Fserveex\u002Fcloud","en\u002F3.serveex\u002F6.cloud",[194,198],{"title":195,"path":196,"stem":197},"Immich","\u002Fen\u002Fserveex\u002Fcloud\u002Fimmich","en\u002F3.serveex\u002F6.cloud\u002F1.immich",{"title":199,"path":200,"stem":201},"Nextcloud","\u002Fen\u002Fserveex\u002Fcloud\u002Fnextcloud","en\u002F3.serveex\u002F6.cloud\u002F2.nextcloud",{"title":203,"icon":204,"path":205,"stem":206,"children":207,"page":15},"File & share","i-lucide-folder-tree","\u002Fen\u002Fserveex\u002Ffiles","en\u002F3.serveex\u002F7.files",[208,212],{"title":209,"path":210,"stem":211},"File Browser Quantum","\u002Fen\u002Fserveex\u002Ffiles\u002Ffile-browser-quantum","en\u002F3.serveex\u002F7.files\u002F1.file-browser-quantum",{"title":213,"path":214,"stem":215},"Pingvin","\u002Fen\u002Fserveex\u002Ffiles\u002Fpingvin","en\u002F3.serveex\u002F7.files\u002F2.pingvin",{"title":217,"icon":218,"path":219,"stem":220,"children":221,"page":15},"Developpement","i-lucide-code-xml","\u002Fen\u002Fserveex\u002Fdevelopment","en\u002F3.serveex\u002F8.development",[222,226,230],{"title":223,"path":224,"stem":225},"Code-Server","\u002Fen\u002Fserveex\u002Fdevelopment\u002Fcode-server","en\u002F3.serveex\u002F8.development\u002F1.code-server",{"title":227,"path":228,"stem":229},"Forgejo","\u002Fen\u002Fserveex\u002Fdevelopment\u002Fforgejo","en\u002F3.serveex\u002F8.development\u002F2.forgejo",{"title":231,"path":232,"stem":233},"IT Tools","\u002Fen\u002Fserveex\u002Fdevelopment\u002Fit-tools","en\u002F3.serveex\u002F8.development\u002F3.it-tools",{"title":235,"icon":236,"path":237,"stem":238,"children":239,"page":15},"Useful Apps","i-lucide-award","\u002Fen\u002Fserveex\u002Fapps","en\u002F3.serveex\u002F9.apps",[240,244],{"title":241,"path":242,"stem":243},"Adguard Home","\u002Fen\u002Fserveex\u002Fapps\u002Fadguard","en\u002F3.serveex\u002F9.apps\u002F1.adguard",{"title":245,"path":246,"stem":247},"Vaultwarden","\u002Fen\u002Fserveex\u002Fapps\u002Fvaultwarden","en\u002F3.serveex\u002F9.apps\u002F2.vaultwarden",{"title":249,"icon":250,"path":251,"stem":252,"children":253,"page":15},"Advanced","i-lucide-flask-conical","\u002Fen\u002Fserveex\u002Fadvanced","en\u002F3.serveex\u002F91.advanced",[254,258],{"title":255,"path":256,"stem":257},"Authentik","\u002Fen\u002Fserveex\u002Fadvanced\u002Fauthentik","en\u002F3.serveex\u002F91.advanced\u002F1.authentik",{"title":259,"path":260,"stem":261},"Arcane","\u002Fen\u002Fserveex\u002Fadvanced\u002Farcane","en\u002F3.serveex\u002F91.advanced\u002F2.arcane",{"title":263,"icon":264,"path":265,"stem":266,"children":267,"page":15},"Stockeex","i-noto-computer-disk","\u002Fen\u002Fstockeex","en\u002F4.stockeex",[268],{"title":101,"path":269,"stem":270,"icon":25},"\u002Fen\u002Fstockeex\u002Fintroduction","en\u002F4.stockeex\u002F1.introduction",{"title":272,"icon":273,"path":274,"stem":275,"children":276,"page":15},"My nonsense","i-noto-test-tube","\u002Fen\u002Fnonsense","en\u002F5.nonsense",[277,280,302],{"title":272,"path":278,"stem":279,"icon":25},"\u002Fen\u002Fnonsense\u002Fsummary","en\u002F5.nonsense\u002F1.summary",{"title":281,"icon":282,"path":283,"stem":284,"children":285,"page":15},"Python","i-lucide-file-code-2","\u002Fen\u002Fnonsense\u002Fpython","en\u002F5.nonsense\u002F2.python",[286,290,294,298],{"title":287,"path":288,"stem":289},"Nvidia Stock Bot","\u002Fen\u002Fnonsense\u002Fpython\u002Fnvidia-stock-bot","en\u002F5.nonsense\u002F2.python\u002F1.nvidia-stock-bot",{"title":291,"path":292,"stem":293},"Adguard CIDRE","\u002Fen\u002Fnonsense\u002Fpython\u002Fadguard-cidre","en\u002F5.nonsense\u002F2.python\u002F2.adguard-cidre",{"title":295,"path":296,"stem":297},"Lumeex","\u002Fen\u002Fnonsense\u002Fpython\u002Flumeex","en\u002F5.nonsense\u002F2.python\u002F3.lumeex",{"title":299,"path":300,"stem":301},"Instameex","\u002Fen\u002Fnonsense\u002Fpython\u002Finstameex","en\u002F5.nonsense\u002F2.python\u002F4.instameex",{"title":303,"icon":304,"path":305,"stem":306,"children":307,"page":15},"Bash","i-lucide-file-terminal","\u002Fen\u002Fnonsense\u002Fbash","en\u002F5.nonsense\u002F3.bash",[308,312,316,320,324,328],{"title":309,"path":310,"stem":311},"Servarr corrector","\u002Fen\u002Fnonsense\u002Fbash\u002Fservarr-duplicates","en\u002F5.nonsense\u002F3.bash\u002F1.servarr-duplicates",{"title":313,"path":314,"stem":315},"LUKS Backup","\u002Fen\u002Fnonsense\u002Fbash\u002Fluks-backup","en\u002F5.nonsense\u002F3.bash\u002F2.luks-backup",{"title":317,"path":318,"stem":319},"Socat Proxy","\u002Fen\u002Fnonsense\u002Fbash\u002Fsocat-proxy","en\u002F5.nonsense\u002F3.bash\u002F3.socat-proxy",{"title":321,"path":322,"stem":323},"HotDisk","\u002Fen\u002Fnonsense\u002Fbash\u002Fhotdisk","en\u002F5.nonsense\u002F3.bash\u002F4.hotdisk",{"title":325,"path":326,"stem":327},"Backrest Docker Stop","\u002Fen\u002Fnonsense\u002Fbash\u002Fbackrest-docker-stop","en\u002F5.nonsense\u002F3.bash\u002F5.backrest-docker-stop",{"title":329,"path":330,"stem":331},"rm Confirmation Guard","\u002Fen\u002Fnonsense\u002Fbash\u002Frm-confirmation","en\u002F5.nonsense\u002F3.bash\u002F6.rm-confirmation",{"title":333,"icon":334,"path":335,"stem":336,"children":337,"page":15},"Recycled","i-noto-recycling-symbol","\u002Fen\u002Frecycled","en\u002F6.recycled",[338,341,355],{"title":333,"path":339,"stem":340,"icon":25},"\u002Fen\u002Frecycled\u002Fsummary","en\u002F6.recycled\u002F1.summary",{"title":342,"icon":343,"path":344,"stem":345,"children":346,"page":15},"Deprecated","i-lucide-trash-2","\u002Fen\u002Frecycled\u002Fdeprecated","en\u002F6.recycled\u002F2.deprecated",[347,351],{"title":348,"path":349,"stem":350},"Wireguard 14","\u002Fen\u002Frecycled\u002Fdeprecated\u002Fwireguard-14","en\u002F6.recycled\u002F2.deprecated\u002F1.wireguard-14",{"title":352,"path":353,"stem":354},"File Browser","\u002Fen\u002Frecycled\u002Fdeprecated\u002Ffile-browser","en\u002F6.recycled\u002F2.deprecated\u002F2.file-browser",{"title":356,"icon":357,"path":358,"stem":359,"children":360,"page":15},"Alternatives","i-lucide-arrow-left-right","\u002Fen\u002Frecycled\u002Falternatives","en\u002F6.recycled\u002F3.alternatives",[361,365,369,373],{"title":362,"path":363,"stem":364},"Plex","\u002Fen\u002Frecycled\u002Falternatives\u002Fplex","en\u002F6.recycled\u002F3.alternatives\u002F1.plex",{"title":366,"path":367,"stem":368},"Qbittorrent for Plex","\u002Fen\u002Frecycled\u002Falternatives\u002Fqbittorrent-for-plex","en\u002F6.recycled\u002F3.alternatives\u002F2.qbittorrent for plex",{"title":370,"path":371,"stem":372},"Servarr for Plex","\u002Fen\u002Frecycled\u002Falternatives\u002Fservarr-for-plex","en\u002F6.recycled\u002F3.alternatives\u002F3.servarr for plex",{"title":374,"path":375,"stem":376},"Gitea","\u002Fen\u002Frecycled\u002Falternatives\u002Fgitea","en\u002F6.recycled\u002F3.alternatives\u002F4.gitea",{"id":378,"title":317,"body":379,"contributors":872,"description":874,"extension":875,"hideCopyPage":15,"hideHeader":15,"hideToc":15,"links":876,"meta":877,"navigation":624,"path":318,"seo":878,"stem":319,"__hash__":879},"docs_en\u002Fen\u002F5.nonsense\u002F3.bash\u002F3.socat-proxy.md",{"type":380,"value":381,"toc":870},"minimark",[382,390,394,417,427,435,449,452,455,462,465,857,860,866],[383,384],"ellipsis",{"blur":385,"left":386,"top":387,"width":388,"z-index":389},"140px","0px","10rem","40rem","60",[391,392,393],"p",{},"This project addresses a common use case:",[395,396,397,408],"ul",{},[398,399,400,401,407],"li",{},"I have ",[402,403,163],"a",{"href":404,"rel":405},"https:\u002F\u002Fbeszel.dev\u002F",[406],"nofollow",", a monitoring container running in host mode, which requires access to the Docker socket to collect container statistics.",[398,409,410,411,416],{},"To avoid exposing the Docker socket fully to Beszel, I use ",[402,412,415],{"href":413,"rel":414},"https:\u002F\u002Fgithub.com\u002FTecnativa\u002Fdocker-socket-proxy",[406],"Docker Socket Proxy",", a container that sits between the Docker socket and the consuming container. It filters requests by setting appropriate permissions, preventing full exposure of the Docker socket.",[391,418,419,420,423,424,426],{},"The problem arises when ",[421,422,163],"strong",{}," runs in host mode. In that case, it must connect directly to ",[421,425,415],{}," on a host port, meaning the proxy’s port is exposed. This allows any container or application on the host to access it and use the Docker socket.",[391,428,429,430,434],{},"This is where ",[402,431,317],{"href":432,"rel":433},"https:\u002F\u002Fgit.djeex.fr\u002FDjeex\u002Fsocat-proxy",[406]," comes in. It is a container that:",[395,436,437,440,443,446],{},[398,438,439],{},"Creates a UNIX socket",[398,441,442],{},"Listens on this socket",[398,444,445],{},"Forwards requests to Docker Socket Proxy and back",[398,447,448],{},"Replaces the real Docker socket by exposing the proxy socket in the target container via a bind mount (in this case, Beszel)",[391,450,451],{},"With this setup, Docker Socket Proxy communicates with Socat Proxy in their isolated bridge network, while the UNIX socket bind-mounted on the host has restricted permissions, preventing access from other containers or applications.",[391,453,454],{},"In short:",[391,456,457],{},[458,459],"img",{"alt":460,"src":461},"","\u002Fimg\u002Fnonsense\u002Fsocat-proxy.svg",[391,463,464],{},"For example, with Beszel, the configuration would look like this:",[466,467,472],"pre",{"className":468,"code":469,"filename":470,"language":471,"meta":460,"style":460},"language-yaml shiki shiki-themes github-dark material-theme github-dark","---\nservices:\n  socat-proxy:\n    image: git.djeex.fr\u002Fdjeex\u002Fsocat-proxy:latest\n    container_name: socat-proxy-beszel\n    environment:\n      - TARGET_HOST=${TARGET_HOST}\n      - TARGET_PORT=${TARGET_PORT}\n      - UNIX_SOCKET_PATH=${UNIX_SOCKET_PATH}\n      - HOST_SOCKET_PATH=${HOST_SOCKET_PATH}\n      - UNIX_SOCKET_NAME=${UNIX_SOCKET_NAME}\n    volumes:\n      - ${HOST_SOCKET_PATH}:${UNIX_SOCKET_PATH}\n    restart: unless-stopped\n    depends_on:\n      - ${TARGET_HOST}\n\n  socket-proxy:\n    image: lscr.io\u002Flinuxserver\u002Fsocket-proxy:latest\n    container_name: ${TARGET_HOST}\n    security_opt:\n      - no-new-privileges:true\n    environment:\n      - CONTAINERS=1\n      - INFO=1\n    volumes:\n      - \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro\n    restart: unless-stopped\n    read_only: true\n    tmpfs:\n      - \u002Frun\n\n  beszel-agent:\n    image: henrygd\u002Fbeszel-agent:latest\n    container_name: beszel-agent\n    restart: unless-stopped\n    network_mode: host\n    security_opt:\n      - no-new-privileges:true\n    volumes:\n      - ${HOST_SOCKET_PATH}\u002F${UNIX_SOCKET_NAME}:\u002Fvar\u002Frun\u002Fdocker.sock:ro\n    environment:\n      - #... your Beszel environment variables\n    depends_on:\n      - socat-proxy\n","compose.yaml","yaml",[473,474,475,484,495,503,516,527,535,544,552,560,568,576,584,592,603,611,619,626,634,644,653,661,669,676,684,692,699,707,716,728,736,744,749,757,767,777,786,797,804,811,818,826,833,842,849],"code",{"__ignoreMap":460},[476,477,480],"span",{"class":478,"line":479},"line",1,[476,481,483],{"class":482},"sEgDM","---\n",[476,485,487,491],{"class":478,"line":486},2,[476,488,490],{"class":489},"sRuoG","services",[476,492,494],{"class":493},"s8jd1",":\n",[476,496,498,501],{"class":478,"line":497},3,[476,499,500],{"class":489},"  socat-proxy",[476,502,494],{"class":493},[476,504,506,509,512],{"class":478,"line":505},4,[476,507,508],{"class":489},"    image",[476,510,511],{"class":493},":",[476,513,515],{"class":514},"s11XM"," git.djeex.fr\u002Fdjeex\u002Fsocat-proxy:latest\n",[476,517,519,522,524],{"class":478,"line":518},5,[476,520,521],{"class":489},"    container_name",[476,523,511],{"class":493},[476,525,526],{"class":514}," socat-proxy-beszel\n",[476,528,530,533],{"class":478,"line":529},6,[476,531,532],{"class":489},"    environment",[476,534,494],{"class":493},[476,536,538,541],{"class":478,"line":537},7,[476,539,540],{"class":493},"      -",[476,542,543],{"class":514}," TARGET_HOST=${TARGET_HOST}\n",[476,545,547,549],{"class":478,"line":546},8,[476,548,540],{"class":493},[476,550,551],{"class":514}," TARGET_PORT=${TARGET_PORT}\n",[476,553,555,557],{"class":478,"line":554},9,[476,556,540],{"class":493},[476,558,559],{"class":514}," UNIX_SOCKET_PATH=${UNIX_SOCKET_PATH}\n",[476,561,563,565],{"class":478,"line":562},10,[476,564,540],{"class":493},[476,566,567],{"class":514}," HOST_SOCKET_PATH=${HOST_SOCKET_PATH}\n",[476,569,571,573],{"class":478,"line":570},11,[476,572,540],{"class":493},[476,574,575],{"class":514}," UNIX_SOCKET_NAME=${UNIX_SOCKET_NAME}\n",[476,577,579,582],{"class":478,"line":578},12,[476,580,581],{"class":489},"    volumes",[476,583,494],{"class":493},[476,585,587,589],{"class":478,"line":586},13,[476,588,540],{"class":493},[476,590,591],{"class":514}," ${HOST_SOCKET_PATH}:${UNIX_SOCKET_PATH}\n",[476,593,595,598,600],{"class":478,"line":594},14,[476,596,597],{"class":489},"    restart",[476,599,511],{"class":493},[476,601,602],{"class":514}," unless-stopped\n",[476,604,606,609],{"class":478,"line":605},15,[476,607,608],{"class":489},"    depends_on",[476,610,494],{"class":493},[476,612,614,616],{"class":478,"line":613},16,[476,615,540],{"class":493},[476,617,618],{"class":514}," ${TARGET_HOST}\n",[476,620,622],{"class":478,"line":621},17,[476,623,625],{"emptyLinePlaceholder":624},true,"\n",[476,627,629,632],{"class":478,"line":628},18,[476,630,631],{"class":489},"  socket-proxy",[476,633,494],{"class":493},[476,635,637,639,641],{"class":478,"line":636},19,[476,638,508],{"class":489},[476,640,511],{"class":493},[476,642,643],{"class":514}," lscr.io\u002Flinuxserver\u002Fsocket-proxy:latest\n",[476,645,647,649,651],{"class":478,"line":646},20,[476,648,521],{"class":489},[476,650,511],{"class":493},[476,652,618],{"class":514},[476,654,656,659],{"class":478,"line":655},21,[476,657,658],{"class":489},"    security_opt",[476,660,494],{"class":493},[476,662,664,666],{"class":478,"line":663},22,[476,665,540],{"class":493},[476,667,668],{"class":514}," no-new-privileges:true\n",[476,670,672,674],{"class":478,"line":671},23,[476,673,532],{"class":489},[476,675,494],{"class":493},[476,677,679,681],{"class":478,"line":678},24,[476,680,540],{"class":493},[476,682,683],{"class":514}," CONTAINERS=1\n",[476,685,687,689],{"class":478,"line":686},25,[476,688,540],{"class":493},[476,690,691],{"class":514}," INFO=1\n",[476,693,695,697],{"class":478,"line":694},26,[476,696,581],{"class":489},[476,698,494],{"class":493},[476,700,702,704],{"class":478,"line":701},27,[476,703,540],{"class":493},[476,705,706],{"class":514}," \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock:ro\n",[476,708,710,712,714],{"class":478,"line":709},28,[476,711,597],{"class":489},[476,713,511],{"class":493},[476,715,602],{"class":514},[476,717,719,722,724],{"class":478,"line":718},29,[476,720,721],{"class":489},"    read_only",[476,723,511],{"class":493},[476,725,727],{"class":726},"s08Ry"," true\n",[476,729,731,734],{"class":478,"line":730},30,[476,732,733],{"class":489},"    tmpfs",[476,735,494],{"class":493},[476,737,739,741],{"class":478,"line":738},31,[476,740,540],{"class":493},[476,742,743],{"class":514}," \u002Frun\n",[476,745,747],{"class":478,"line":746},32,[476,748,625],{"emptyLinePlaceholder":624},[476,750,752,755],{"class":478,"line":751},33,[476,753,754],{"class":489},"  beszel-agent",[476,756,494],{"class":493},[476,758,760,762,764],{"class":478,"line":759},34,[476,761,508],{"class":489},[476,763,511],{"class":493},[476,765,766],{"class":514}," henrygd\u002Fbeszel-agent:latest\n",[476,768,770,772,774],{"class":478,"line":769},35,[476,771,521],{"class":489},[476,773,511],{"class":493},[476,775,776],{"class":514}," beszel-agent\n",[476,778,780,782,784],{"class":478,"line":779},36,[476,781,597],{"class":489},[476,783,511],{"class":493},[476,785,602],{"class":514},[476,787,789,792,794],{"class":478,"line":788},37,[476,790,791],{"class":489},"    network_mode",[476,793,511],{"class":493},[476,795,796],{"class":514}," host\n",[476,798,800,802],{"class":478,"line":799},38,[476,801,658],{"class":489},[476,803,494],{"class":493},[476,805,807,809],{"class":478,"line":806},39,[476,808,540],{"class":493},[476,810,668],{"class":514},[476,812,814,816],{"class":478,"line":813},40,[476,815,581],{"class":489},[476,817,494],{"class":493},[476,819,821,823],{"class":478,"line":820},41,[476,822,540],{"class":493},[476,824,825],{"class":514}," ${HOST_SOCKET_PATH}\u002F${UNIX_SOCKET_NAME}:\u002Fvar\u002Frun\u002Fdocker.sock:ro\n",[476,827,829,831],{"class":478,"line":828},42,[476,830,532],{"class":489},[476,832,494],{"class":493},[476,834,836,838],{"class":478,"line":835},43,[476,837,540],{"class":493},[476,839,841],{"class":840},"sDvJj"," #... your Beszel environment variables\n",[476,843,845,847],{"class":478,"line":844},44,[476,846,608],{"class":489},[476,848,494],{"class":493},[476,850,852,854],{"class":478,"line":851},45,[476,853,540],{"class":493},[476,855,856],{"class":514}," socat-proxy\n",[391,858,859],{},"More information is available on the repository:",[861,862,865],"card",{"target":863,"title":864,"to":432},"_blank","🐋 **Socat Proxy**","A lightweight bind-mount socket proxy",[867,868,869],"style",{},"html pre.shiki code .sEgDM, html code.shiki .sEgDM{--shiki-light:#B392F0;--shiki-default:#FFCB6B;--shiki-dark:#B392F0}html pre.shiki code .sRuoG, html code.shiki .sRuoG{--shiki-light:#85E89D;--shiki-default:#F07178;--shiki-dark:#85E89D}html pre.shiki code .s8jd1, html code.shiki .s8jd1{--shiki-light:#E1E4E8;--shiki-default:#89DDFF;--shiki-dark:#E1E4E8}html pre.shiki code .s11XM, html code.shiki .s11XM{--shiki-light:#9ECBFF;--shiki-default:#C3E88D;--shiki-dark:#9ECBFF}html pre.shiki code .s08Ry, html code.shiki .s08Ry{--shiki-light:#79B8FF;--shiki-default:#FF9CAC;--shiki-dark:#79B8FF}html pre.shiki code .sDvJj, html code.shiki .sDvJj{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":460,"searchDepth":486,"depth":486,"links":871},[],[873],"Djeex","Use socat to proxy the Docker socket through Docker Socket Proxy, allowing Beszel to collect container stats without exposing the full Docker socket.","md",null,{},{"title":317,"description":874},"n_zm0_Y3ymkrpKXXNu6JRxU5ZcoUCDblyE-vmFAy9Jk",[881,883],{"title":313,"path":314,"stem":315,"description":882,"children":-1},"A bash script to automatically dump LUKS headers from all encrypted disks, identify them by serial number, and store them in an encrypted archive.",{"title":321,"path":322,"stem":323,"description":884,"children":-1},"A bash script that monitors hard drive temperatures and automatically shuts down the server when disks stay above a safe threshold for too long.",1788645859372]