{"architecture":"amd64","config":{"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","NODE_VERSION=22.16.0","YARN_VERSION=1.22.22","DEBUG=Server,WireGuard"],"Entrypoint":["docker-entrypoint.sh"],"Cmd":["/usr/bin/dumb-init","node","server.js"],"WorkingDir":"/app","ArgsEscaped":true,"Healthcheck":{"Test":["CMD-SHELL","/usr/bin/timeout 5s /bin/sh -c \"/usr/bin/wg show | /bin/grep -q interface || exit 1\" --interval=1m --timeout=5s --retries=3"]}},"created":"2025-06-03T07:59:24.997250318Z","history":[{"created":"2025-05-30T16:20:41Z","created_by":"ADD alpine-minirootfs-3.22.0-x86_64.tar.gz / # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2025-05-30T16:20:41Z","created_by":"CMD [\"/bin/sh\"]","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2025-05-30T22:21:12Z","created_by":"ENV NODE_VERSION=22.16.0","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2025-05-30T22:21:12Z","created_by":"RUN /bin/sh -c addgroup -g 1000 node     \u0026\u0026 adduser -u 1000 -G node -s /bin/sh -D node     \u0026\u0026 apk add --no-cache         libstdc++     \u0026\u0026 apk add --no-cache --virtual .build-deps         curl     \u0026\u0026 ARCH= OPENSSL_ARCH='linux*' \u0026\u0026 alpineArch=\"$(apk --print-arch)\"       \u0026\u0026 case \"${alpineArch##*-}\" in         x86_64) ARCH='x64' CHECKSUM=\"757e2a142474fdae1ab4392d50f3cbb215ca17a9e3c3fa54e5b9a9af27a47c54\" OPENSSL_ARCH=linux-x86_64;;         x86) OPENSSL_ARCH=linux-elf;;         aarch64) OPENSSL_ARCH=linux-aarch64;;         arm*) OPENSSL_ARCH=linux-armv4;;         ppc64le) OPENSSL_ARCH=linux-ppc64le;;         s390x) OPENSSL_ARCH=linux-s390x;;         *) ;;       esac   \u0026\u0026 if [ -n \"${CHECKSUM}\" ]; then     set -eu;     curl -fsSLO --compressed \"https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz\";     echo \"$CHECKSUM  node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz\" | sha256sum -c -       \u0026\u0026 tar -xJf \"node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz\" -C /usr/local --strip-components=1 --no-same-owner       \u0026\u0026 ln -s /usr/local/bin/node /usr/local/bin/nodejs;   else     echo \"Building from source\"     \u0026\u0026 apk add --no-cache --virtual .build-deps-full         binutils-gold         g++         gcc         gnupg         libgcc         linux-headers         make         python3         py-setuptools     \u0026\u0026 export GNUPGHOME=\"$(mktemp -d)\"     \u0026\u0026 for key in       C0D6248439F1D5604AAFFB4021D900FFDB233756       DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7       CC68F5A3106FF448322E48ED27F5E38D5B0A215F       8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600       890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4       C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C       108F52B48DB57BB0CC439B2997B01419BD92F80A       A363A499291CBBC940DD62E41F10027AF002F8B0     ; do       gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \"$key\" ||       gpg --batch --keyserver keyserver.ubuntu.com --recv-keys \"$key\" ;     done     \u0026\u0026 curl -fsSLO --compressed \"https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz\"     \u0026\u0026 curl -fsSLO --compressed \"https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc\"     \u0026\u0026 gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc     \u0026\u0026 gpgconf --kill all     \u0026\u0026 rm -rf \"$GNUPGHOME\"     \u0026\u0026 grep \" node-v$NODE_VERSION.tar.xz\\$\" SHASUMS256.txt | sha256sum -c -     \u0026\u0026 tar -xf \"node-v$NODE_VERSION.tar.xz\"     \u0026\u0026 cd \"node-v$NODE_VERSION\"     \u0026\u0026 ./configure     \u0026\u0026 make -j$(getconf _NPROCESSORS_ONLN) V=     \u0026\u0026 make install     \u0026\u0026 apk del .build-deps-full     \u0026\u0026 cd ..     \u0026\u0026 rm -Rf \"node-v$NODE_VERSION\"     \u0026\u0026 rm \"node-v$NODE_VERSION.tar.xz\" SHASUMS256.txt.asc SHASUMS256.txt;   fi   \u0026\u0026 rm -f \"node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz\"   \u0026\u0026 find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name \"$OPENSSL_ARCH\" -exec rm -rf {} \\;   \u0026\u0026 apk del .build-deps   \u0026\u0026 node --version   \u0026\u0026 npm --version   \u0026\u0026 rm -rf /tmp/* # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2025-05-30T22:21:12Z","created_by":"ENV YARN_VERSION=1.22.22","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2025-05-30T22:21:12Z","created_by":"RUN /bin/sh -c apk add --no-cache --virtual .build-deps-yarn curl gnupg tar   \u0026\u0026 export GNUPGHOME=\"$(mktemp -d)\"   \u0026\u0026 for key in     6A010C5166006599AA17F08146C2130DFD2497F5   ; do     gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys \"$key\" ||     gpg --batch --keyserver keyserver.ubuntu.com --recv-keys \"$key\" ;   done   \u0026\u0026 curl -fsSLO --compressed \"https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz\"   \u0026\u0026 curl -fsSLO --compressed \"https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc\"   \u0026\u0026 gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz   \u0026\u0026 gpgconf --kill all   \u0026\u0026 rm -rf \"$GNUPGHOME\"   \u0026\u0026 mkdir -p /opt   \u0026\u0026 tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/   \u0026\u0026 ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn   \u0026\u0026 ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg   \u0026\u0026 rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz   \u0026\u0026 apk del .build-deps-yarn   \u0026\u0026 yarn --version   \u0026\u0026 rm -rf /tmp/* # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2025-05-30T22:21:12Z","created_by":"COPY docker-entrypoint.sh /usr/local/bin/ # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2025-05-30T22:21:12Z","created_by":"ENTRYPOINT [\"docker-entrypoint.sh\"]","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2025-05-30T22:21:12Z","created_by":"CMD [\"node\"]","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2025-06-03T07:59:23.60363627Z","created_by":"HEALTHCHECK \u0026{[\"CMD-SHELL\" \"/usr/bin/timeout 5s /bin/sh -c \\\"/usr/bin/wg show | /bin/grep -q interface || exit 1\\\" --interval=1m --timeout=5s --retries=3\"] \"0s\" \"0s\" \"0s\" \"0s\" '\\x00'}","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2025-06-03T07:59:23.60363627Z","created_by":"COPY /app /app # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2025-06-03T07:59:23.797929707Z","created_by":"COPY /node_modules /node_modules # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2025-06-03T07:59:23.827091799Z","created_by":"COPY /app/wgpw.sh /bin/wgpw # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2025-06-03T07:59:23.891332246Z","created_by":"RUN /bin/sh -c chmod +x /bin/wgpw # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2025-06-03T07:59:24.89913608Z","created_by":"RUN /bin/sh -c apk add --no-cache     dpkg     dumb-init     iptables     iptables-legacy     wireguard-tools # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2025-06-03T07:59:24.982971975Z","created_by":"RUN /bin/sh -c update-alternatives --install /usr/sbin/iptables iptables /usr/sbin/iptables-legacy 10 --slave /usr/sbin/iptables-restore iptables-restore /usr/sbin/iptables-legacy-restore --slave /usr/sbin/iptables-save iptables-save /usr/sbin/iptables-legacy-save # buildkit","comment":"buildkit.dockerfile.v0"},{"created":"2025-06-03T07:59:24.982971975Z","created_by":"ENV DEBUG=Server,WireGuard","comment":"buildkit.dockerfile.v0","empty_layer":true},{"created":"2025-06-03T07:59:24.997250318Z","created_by":"WORKDIR /app","comment":"buildkit.dockerfile.v0"},{"created":"2025-06-03T07:59:24.997250318Z","created_by":"CMD [\"/usr/bin/dumb-init\" \"node\" \"server.js\"]","comment":"buildkit.dockerfile.v0","empty_layer":true}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:fd2758d7a50e2b78d275ee7d1c218489f2439084449d895fa17eede6c61ab2c4","sha256:126f43b2ffa5f1aedd6a2b56c92a4b6308a687f9f491bcfd58198674e7a09d38","sha256:53fa260c3ba49dabb9a585f76bc22bdd4503250e85552e37bab898ea5d11be00","sha256:6a6cca838e27117cc5c5231f3639724d6865738d62fcb433b03590fa662c53ac","sha256:e6254e5f497783b69b9fb1b61f0cea98314fd20aa2df3b1f60aac2d00b4d495a","sha256:fb784984239badf20b9f6194cdee96e6eb872cbfa1331d8b1469b4af24e5f3e3","sha256:7b63ce91ddcc7ca521a42360e9b15f649480e714851177b596ada10c054311a2","sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef","sha256:1292eb38bfb5e11648730d938e291f74876360941c5bc6b071a878f2d7af1c8d","sha256:1d4db38f14c5b92c7ae00c6edd22ddc6bf8781f1a2d44409a21f709d51cadd3c","sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"]}}