diff --git a/Dockerfile b/Dockerfile
index d705f59..c99f4d5 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -11,28 +11,50 @@ LABEL maintainer="aptalca"
 ENV HOME="/config"
 
 RUN \
- echo "**** install dependencies ****" && \
+ echo "**** install node repo ****" && \
  apt-get update && \
+ apt-get install -y \
+	gnupg && \
+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
+ echo 'deb https://deb.nodesource.com/node_12.x bionic main' \
+	> /etc/apt/sources.list.d/nodesource.list && \
+ curl -s https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
+ echo 'deb https://dl.yarnpkg.com/debian/ stable main' \
+	> /etc/apt/sources.list.d/yarn.list && \
+ echo "**** install build dependencies ****" && \
+ apt-get update && \
+ apt-get install -y \
+	build-essential \
+	libx11-dev \
+	libxkbfile-dev \
+	libsecret-1-dev \
+	pkg-config && \
+ echo "**** install runtime dependencies ****" && \
  apt-get install -y \
 	git \
 	jq \
 	nano \
 	net-tools \
-	sudo && \
+	nodejs \
+	sudo \
+	yarn && \
  echo "**** install code-server ****" && \
  if [ -z ${CODE_RELEASE+x} ]; then \
 	CODE_RELEASE=$(curl -sX GET "https://api.github.com/repos/cdr/code-server/releases/latest" \
 	| awk '/tag_name/{print $4;exit}' FS='[""]'); \
  fi && \
- CODE_URL=$(curl -sX GET "https://api.github.com/repos/cdr/code-server/releases/tags/${CODE_RELEASE}" \
-	| jq -r '.assets[] | select(.browser_download_url | contains("linux-x86_64")) | .browser_download_url') && \
- mkdir -p /app/code-server && \
- curl -o \
-	/tmp/code.tar.gz -L \
-	"${CODE_URL}" && \
- tar xzf /tmp/code.tar.gz -C \
-	/app/code-server --strip-components=1 && \
+ CODE_VERSION=$(echo "$CODE_RELEASE" | awk '{print substr($1,2); }') && \
+ yarn --production global add code-server@"$CODE_VERSION" && \
+ yarn cache clean && \
+ ln -s /node_modules/.bin/code-server /usr/bin/code-server && \
  echo "**** clean up ****" && \
+ apt-get purge --auto-remove -y \
+	build-essential \
+	libx11-dev \
+	libxkbfile-dev \
+	libsecret-1-dev \
+	pkg-config && \
+ apt-get clean && \
  rm -rf \
 	/tmp/* \
 	/var/lib/apt/lists/* \
diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64
new file mode 100644
index 0000000..36f065c
--- /dev/null
+++ b/Dockerfile.aarch64
@@ -0,0 +1,67 @@
+FROM lsiobase/ubuntu:arm64v8-bionic
+
+# set version label
+ARG BUILD_DATE
+ARG VERSION
+ARG CODE_RELEASE
+LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
+LABEL maintainer="aptalca"
+
+# environment settings
+ENV HOME="/config"
+
+RUN \
+ echo "**** install node repo ****" && \
+ apt-get update && \
+ apt-get install -y \
+	gnupg && \
+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
+ echo 'deb https://deb.nodesource.com/node_12.x bionic main' \
+	> /etc/apt/sources.list.d/nodesource.list && \
+ curl -s https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
+ echo 'deb https://dl.yarnpkg.com/debian/ stable main' \
+	> /etc/apt/sources.list.d/yarn.list && \
+ echo "**** install build dependencies ****" && \
+ apt-get update && \
+ apt-get install -y \
+	build-essential \
+	libx11-dev \
+	libxkbfile-dev \
+	libsecret-1-dev \
+	pkg-config && \
+ echo "**** install runtime dependencies ****" && \
+ apt-get install -y \
+	git \
+	jq \
+	nano \
+	net-tools \
+	nodejs \
+	sudo \
+	yarn && \
+ echo "**** install code-server ****" && \
+ if [ -z ${CODE_RELEASE+x} ]; then \
+	CODE_RELEASE=$(curl -sX GET "https://api.github.com/repos/cdr/code-server/releases/latest" \
+	| awk '/tag_name/{print $4;exit}' FS='[""]'); \
+ fi && \
+ CODE_VERSION=$(echo "$CODE_RELEASE" | awk '{print substr($1,2); }') && \
+ yarn --production global add code-server@"$CODE_VERSION" && \
+ yarn cache clean && \
+ ln -s /node_modules/.bin/code-server /usr/bin/code-server && \
+ echo "**** clean up ****" && \
+ apt-get purge --auto-remove -y \
+	build-essential \
+	libx11-dev \
+	libxkbfile-dev \
+	libsecret-1-dev \
+	pkg-config && \
+ apt-get clean && \
+ rm -rf \
+	/tmp/* \
+	/var/lib/apt/lists/* \
+	/var/tmp/*
+
+# add local files
+COPY /root /
+
+# ports and volumes
+EXPOSE 8443
diff --git a/Dockerfile.armhf b/Dockerfile.armhf
new file mode 100644
index 0000000..d44af02
--- /dev/null
+++ b/Dockerfile.armhf
@@ -0,0 +1,67 @@
+FROM lsiobase/ubuntu:arm32v7-bionic
+
+# set version label
+ARG BUILD_DATE
+ARG VERSION
+ARG CODE_RELEASE
+LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
+LABEL maintainer="aptalca"
+
+# environment settings
+ENV HOME="/config"
+
+RUN \
+ echo "**** install node repo ****" && \
+ apt-get update && \
+ apt-get install -y \
+	gnupg && \
+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
+ echo 'deb https://deb.nodesource.com/node_12.x bionic main' \
+	> /etc/apt/sources.list.d/nodesource.list && \
+ curl -s https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
+ echo 'deb https://dl.yarnpkg.com/debian/ stable main' \
+	> /etc/apt/sources.list.d/yarn.list && \
+ echo "**** install build dependencies ****" && \
+ apt-get update && \
+ apt-get install -y \
+	build-essential \
+	libx11-dev \
+	libxkbfile-dev \
+	libsecret-1-dev \
+	pkg-config && \
+ echo "**** install runtime dependencies ****" && \
+ apt-get install -y \
+	git \
+	jq \
+	nano \
+	net-tools \
+	nodejs \
+	sudo \
+	yarn && \
+ echo "**** install code-server ****" && \
+ if [ -z ${CODE_RELEASE+x} ]; then \
+	CODE_RELEASE=$(curl -sX GET "https://api.github.com/repos/cdr/code-server/releases/latest" \
+	| awk '/tag_name/{print $4;exit}' FS='[""]'); \
+ fi && \
+ CODE_VERSION=$(echo "$CODE_RELEASE" | awk '{print substr($1,2); }') && \
+ yarn --production global add code-server@"$CODE_VERSION" && \
+ yarn cache clean && \
+ ln -s /node_modules/.bin/code-server /usr/bin/code-server && \
+ echo "**** clean up ****" && \
+ apt-get purge --auto-remove -y \
+	build-essential \
+	libx11-dev \
+	libxkbfile-dev \
+	libsecret-1-dev \
+	pkg-config && \
+ apt-get clean && \
+ rm -rf \
+	/tmp/* \
+	/var/lib/apt/lists/* \
+	/var/tmp/*
+
+# add local files
+COPY /root /
+
+# ports and volumes
+EXPOSE 8443
diff --git a/Jenkinsfile b/Jenkinsfile
index 4b10dd4..0956659 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -27,7 +27,7 @@ pipeline {
     DEV_DOCKERHUB_IMAGE = 'lsiodev/code-server'
     PR_DOCKERHUB_IMAGE = 'lspipepr/code-server'
     DIST_IMAGE = 'ubuntu'
-    MULTIARCH='false'
+    MULTIARCH='true'
     CI='true'
     CI_WEB='true'
     CI_PORT='8443'
@@ -138,7 +138,6 @@ pipeline {
       steps {
         script{
           env.IMAGE = env.DOCKERHUB_IMAGE
-          env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
           env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/' + env.CONTAINER_NAME
           env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
           if (env.MULTIARCH == 'true') {
@@ -159,7 +158,6 @@ pipeline {
       steps {
         script{
           env.IMAGE = env.DEV_DOCKERHUB_IMAGE
-          env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
           env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
           env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
           if (env.MULTIARCH == 'true') {
@@ -180,7 +178,6 @@ pipeline {
       steps {
         script{
           env.IMAGE = env.PR_DOCKERHUB_IMAGE
-          env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
           env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
           env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
           if (env.MULTIARCH == 'true') {
@@ -545,22 +542,15 @@ pipeline {
             credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
             usernameVariable: 'DOCKERUSER',
             passwordVariable: 'DOCKERPASS'
-          ],
-          [
-            $class: 'UsernamePasswordMultiBinding',
-            credentialsId: 'Quay.io-Robot',
-            usernameVariable: 'QUAYUSER',
-            passwordVariable: 'QUAYPASS'
           ]
         ]) {
           retry(5) {
             sh '''#! /bin/bash
                   set -e
-                  echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
                   echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
                   echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin
                   echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
-                  for PUSHIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
+                  for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
                     docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
                     docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:latest
                     docker push ${PUSHIMAGE}:latest
@@ -569,7 +559,7 @@ pipeline {
                '''
           }
           sh '''#! /bin/bash
-                for DELETEIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do
+                for DELETEIMAGE in "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do
                   docker rmi \
                   ${DELETEIMAGE}:${META_TAG} \
                   ${DELETEIMAGE}:latest || :
@@ -591,18 +581,11 @@ pipeline {
             credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
             usernameVariable: 'DOCKERUSER',
             passwordVariable: 'DOCKERPASS'
-          ],
-          [
-            $class: 'UsernamePasswordMultiBinding',
-            credentialsId: 'Quay.io-Robot',
-            usernameVariable: 'QUAYUSER',
-            passwordVariable: 'QUAYPASS'
           ]
         ]) {
           retry(5) {
             sh '''#! /bin/bash
                   set -e
-                  echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
                   echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
                   echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin
                   echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
@@ -636,26 +619,24 @@ pipeline {
                     docker manifest push --purge ${MANIFESTIMAGE}:latest
                     docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} 
                   done
-                  for LEGACYIMAGE in "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
-                    docker tag ${IMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:amd64-${META_TAG}
-                    docker tag ${IMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-${META_TAG}
-                    docker tag ${IMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-${META_TAG}
-                    docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:latest
-                    docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:${META_TAG}
-                    docker tag ${LEGACYIMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-latest
-                    docker tag ${LEGACYIMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-latest
-                    docker push ${LEGACYIMAGE}:amd64-${META_TAG}
-                    docker push ${LEGACYIMAGE}:arm32v7-${META_TAG}
-                    docker push ${LEGACYIMAGE}:arm64v8-${META_TAG}
-                    docker push ${LEGACYIMAGE}:latest
-                    docker push ${LEGACYIMAGE}:${META_TAG}
-                    docker push ${LEGACYIMAGE}:arm32v7-latest
-                    docker push ${LEGACYIMAGE}:arm64v8-latest
-                  done
+                  docker tag ${IMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:amd64-${META_TAG}
+                  docker tag ${IMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-${META_TAG}
+                  docker tag ${IMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-${META_TAG}
+                  docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:latest
+                  docker tag ${GITHUBIMAGE}:amd64-${META_TAG} ${GITHUBIMAGE}:${META_TAG}
+                  docker tag ${GITHUBIMAGE}:arm32v7-${META_TAG} ${GITHUBIMAGE}:arm32v7-latest
+                  docker tag ${GITHUBIMAGE}:arm64v8-${META_TAG} ${GITHUBIMAGE}:arm64v8-latest
+                  docker push ${GITHUBIMAGE}:amd64-${META_TAG}
+                  docker push ${GITHUBIMAGE}:arm32v7-${META_TAG}
+                  docker push ${GITHUBIMAGE}:arm64v8-${META_TAG}
+                  docker push ${GITHUBIMAGE}:latest
+                  docker push ${GITHUBIMAGE}:${META_TAG}
+                  docker push ${GITHUBIMAGE}:arm32v7-latest
+                  docker push ${GITHUBIMAGE}:arm64v8-latest
                '''
           }
           sh '''#! /bin/bash
-                for DELETEIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
+                for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
                   docker rmi \
                   ${DELETEIMAGE}:amd64-${META_TAG} \
                   ${DELETEIMAGE}:amd64-latest \
diff --git a/README.md b/README.md
index 79a0827..a321f0f 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,11 @@
 [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
 
-[![Blog](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
-[![Discord](https://img.shields.io/discord/354974912613449730.svg?style=flat-square&color=E68523&label=Discord&logo=discord&logoColor=FFFFFF)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.")
-[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?style=flat-square&color=E68523&logo=discourse&logoColor=FFFFFF)](https://discourse.linuxserver.io "post on our community forum.")
-[![Fleet](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
-[![GitHub](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=GitHub&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver "view the source for all of our repositories.")
-[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?style=flat-square&color=E68523&label=Supporters&logo=open%20collective&logoColor=FFFFFF)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
+[![Blog](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Blog)](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
+[![Discord](https://img.shields.io/discord/354974912613449730.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Discord&logo=discord)](https://discord.gg/YWrKVTn "realtime support / chat with the community and the team.")
+[![Discourse](https://img.shields.io/discourse/https/discourse.linuxserver.io/topics.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=discourse)](https://discourse.linuxserver.io "post on our community forum.")
+[![Fleet](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Fleet)](https://fleet.linuxserver.io "an online web interface which displays all of our maintained images.")
+[![GitHub](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub&logo=github)](https://github.com/linuxserver "view the source for all of our repositories.")
+[![Open Collective](https://img.shields.io/opencollective/all/linuxserver.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=Supporters&logo=open%20collective)](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
 
 The [LinuxServer.io](https://linuxserver.io) team brings you another container release featuring:
 
@@ -25,16 +25,15 @@ Find us at:
 
 # [linuxserver/code-server](https://github.com/linuxserver/docker-code-server)
 
-[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-code-server.svg?style=flat-square&color=E68523&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver/docker-code-server)
-[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-code-server.svg?style=flat-square&color=E68523&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver/docker-code-server/releases)
-[![GitHub Package Repository](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=GitHub%20Package&logo=github&logoColor=FFFFFF)](https://github.com/linuxserver/docker-code-server/packages)
-[![GitLab Container Registry](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab&logoColor=FFFFFF)](https://gitlab.com/Linuxserver.io/docker-code-server/container_registry)
-[![Quay.io](https://img.shields.io/static/v1.svg?style=flat-square&color=E68523&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/code-server)
-[![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/code-server.svg?style=flat-square&color=E68523)](https://microbadger.com/images/linuxserver/code-server "Get your own version badge on microbadger.com")
-[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/code-server.svg?style=flat-square&color=E68523&label=pulls&logo=docker&logoColor=FFFFFF)](https://hub.docker.com/r/linuxserver/code-server)
-[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/code-server.svg?style=flat-square&color=E68523&label=stars&logo=docker&logoColor=FFFFFF)](https://hub.docker.com/r/linuxserver/code-server)
-[![Build Status](https://ci.linuxserver.io/view/all/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/badge/icon?style=flat-square)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/)
-[![](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/code-server/latest/badge.svg)](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/code-server/latest/index.html)
+[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-code-server)
+[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-code-server/releases)
+[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-code-server/packages)
+[![GitLab Container Registry](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab)](https://gitlab.com/Linuxserver.io/docker-code-server/container_registry)
+[![MicroBadger Layers](https://img.shields.io/microbadger/layers/linuxserver/code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge)](https://microbadger.com/images/linuxserver/code-server "Get your own version badge on microbadger.com")
+[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/code-server)
+[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/code-server.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/code-server)
+[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-code-server%2Fjob%2Fmaster%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-code-server/job/master/)
+[![LSIO CI](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=CI&query=CI&url=https%3A%2F%2Flsio-ci.ams3.digitaloceanspaces.com%2Flspipepr%2Fcode-server%2Flatest%2Fci-status.yml)](https://lsio-ci.ams3.digitaloceanspaces.com/linuxserver/code-server/latest/index.html)
 
 [Code-server](https://coder.com) is VS Code running on a remote server, accessible through the browser.
 - Code on your Chromebook, tablet, and laptop with a consistent dev environment.
@@ -57,6 +56,8 @@ The architectures supported by this image are:
 | Architecture | Tag |
 | :----: | --- |
 | x86-64 | amd64-latest |
+| arm64 | arm64v8-latest |
+| armhf | arm32v7-latest |
 
 ## Version Tags
 
@@ -131,7 +132,7 @@ Container images are configured using parameters passed at runtime (such as thos
 
 ## Environment variables from files (Docker secrets)
 
-You can set any environment variable from a file by using a special prepend `FILE__`. 
+You can set any environment variable from a file by using a special prepend `FILE__`.
 
 As an example:
 
@@ -141,6 +142,11 @@ As an example:
 
 Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
 
+## Umask for running applications
+
+For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting.
+Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support.
+
 ## User / Group Identifiers
 
 When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
@@ -168,7 +174,7 @@ git config --global user.email "email address"
 
 
 ## Docker Mods
-[![Docker Mods](https://img.shields.io/badge/dynamic/yaml?style=for-the-badge&color=E68523&label=mods&query=%24.mods%5B%27code-server%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=code-server "view available mods for this container.")
+[![Docker Mods](https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=mods&query=%24.mods%5B%27code-server%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml)](https://mods.linuxserver.io/?mod=code-server "view available mods for this container.")
 
 We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above.
 
@@ -237,6 +243,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
 
 ## Versions
 
+* **21.05.20:** - Shrink images, install via yarn, fix arm32v7 build.
+* **18.05.20:** - Switch to multi-arch images, install via npm.
 * **29.04.20:** - Update start arguments.
 * **01.04.20:** - Structural changes required for v3.
 * **17.01.20:** - Fix artifact url retrieval from github.
diff --git a/jenkins-vars.yml b/jenkins-vars.yml
index db42eab..2e583cb 100644
--- a/jenkins-vars.yml
+++ b/jenkins-vars.yml
@@ -18,7 +18,7 @@ repo_vars:
   - DEV_DOCKERHUB_IMAGE = 'lsiodev/code-server'
   - PR_DOCKERHUB_IMAGE = 'lspipepr/code-server'
   - DIST_IMAGE = 'ubuntu'
-  - MULTIARCH='false'
+  - MULTIARCH='true'
   - CI='true'
   - CI_WEB='true'
   - CI_PORT='8443'
diff --git a/package_versions.txt b/package_versions.txt
index 5ebe00a..bc8e8f0 100755
--- a/package_versions.txt
+++ b/package_versions.txt
@@ -1,6 +1,6 @@
 adduser3.116ubuntu1
-apt1.6.12
-apt-utils1.6.12
+apt1.6.12ubuntu0.1
+apt-utils1.6.12ubuntu0.1
 base-files10.1ubuntu2.8
 base-passwd3.5.44
 bash4.4.18-2ubuntu1.2
@@ -13,14 +13,25 @@ dash0.5.8-2.10
 debconf1.5.66ubuntu1
 debianutils4.8.4
 diffutils1:3.6-1
+dirmngr2.2.4-1ubuntu1.2
 dpkg1.19.0.5ubuntu2.3
 e2fsprogs1.44.1-1ubuntu1.3
 fdisk2.31.1-0.4ubuntu3.6
+file1:5.32-2ubuntu0.4
 findutils4.6.0+git+20170828-2
 gcc-8-base8.4.0-1ubuntu1~18.04
 git1:2.17.1-1ubuntu0.7
 git-man1:2.17.1-1ubuntu0.7
+gnupg2.2.4-1ubuntu1.2
+gnupg-l10n2.2.4-1ubuntu1.2
+gnupg-utils2.2.4-1ubuntu1.2
+gpg2.2.4-1ubuntu1.2
+gpg-agent2.2.4-1ubuntu1.2
+gpgconf2.2.4-1ubuntu1.2
+gpgsm2.2.4-1ubuntu1.2
 gpgv2.2.4-1ubuntu1.2
+gpg-wks-client2.2.4-1ubuntu1.2
+gpg-wks-server2.2.4-1ubuntu1.2
 grep3.1-2build1
 gzip1.6-5ubuntu1
 hostname3.20
@@ -29,9 +40,10 @@ jq1.5+dfsg-2
 krb5-locales1.16-2ubuntu0.1
 less487-0.1
 libacl12.2.52-3build1
-libapt-inst2.01.6.12
-libapt-pkg5.01.6.12
+libapt-inst2.01.6.12ubuntu0.1
+libapt-pkg5.01.6.12ubuntu0.1
 libasn1-8-heimdal7.5.0+dfsg-1
+libassuan02.5.1-2
 libattr11:2.4.47-2build1
 libaudit11:2.8.2-1ubuntu1
 libaudit-common1:2.8.2-1ubuntu1
@@ -73,15 +85,19 @@ libkeyutils11.5.9-9.2ubuntu2
 libkrb5-26-heimdal7.5.0+dfsg-1
 libkrb5-31.16-2ubuntu0.1
 libkrb5support01.16-2ubuntu0.1
+libksba81.3.5-2
 libldap-2.4-22.4.45+dfsg-1ubuntu1.5
 libldap-common2.4.45+dfsg-1ubuntu1.5
 liblz4-10.0~r131-2ubuntu3
 liblzma55.2.2-1.3
+libmagic11:5.32-2ubuntu0.4
+libmagic-mgc1:5.32-2ubuntu0.4
 libmount12.31.1-0.4ubuntu3.6
 libncurses56.1-1ubuntu1.18.04
 libncursesw56.1-1ubuntu1.18.04
 libnettle63.4-1
 libnghttp2-141.30.0-1ubuntu1
+libnpth01.5-3
 libonig46.7.0-1
 libp11-kit00.23.9-2
 libpam0g1.1.8-3.6ubuntu2.18.04.1
@@ -92,6 +108,10 @@ libpcre32:8.39-9
 libperl5.265.26.1-6ubuntu0.3
 libprocps62:3.3.12-3ubuntu1.2
 libpsl50.19.1-5build1
+libpython2.7-minimal2.7.17-1~18.04ubuntu1
+libpython2.7-stdlib2.7.17-1~18.04ubuntu1
+libpython-stdlib2.7.15~rc1-1
+libreadline77.0-3
 libroken18-heimdal7.5.0+dfsg-1
 librtmp12.4+20151223.gitfa8646d.1-1
 libsasl2-22.1.27~101-g0780600+dfsg-3ubuntu2.1
@@ -106,12 +126,12 @@ libsmartcols12.31.1-0.4ubuntu3.6
 libsqlite3-03.22.0-1ubuntu0.3
 libss21.44.1-1ubuntu1.3
 libssl1.0.01.0.2n-1ubuntu5.3
-libssl1.11.1.1-1ubuntu2.1~18.04.5
+libssl1.11.1.1-1ubuntu2.1~18.04.6
 libstdc++68.4.0-1ubuntu1~18.04
-libsystemd0237-3ubuntu10.40
+libsystemd0237-3ubuntu10.41
 libtasn1-64.13-2
 libtinfo56.1-1ubuntu1.18.04
-libudev1237-3ubuntu10.40
+libudev1237-3ubuntu10.41
 libunistring20.9.9-0ubuntu2
 libuuid12.31.1-0.4ubuntu3.6
 libwind0-heimdal7.5.0+dfsg-1
@@ -127,6 +147,7 @@ locales2.27-3ubuntu1
 login1:4.5-1ubuntu2
 lsb-base9.20170808ubuntu1
 mawk1.3.3-17ubuntu3
+mime-support3.60ubuntu1
 mount2.31.1-0.4ubuntu3.6
 multiarch-support2.27-3ubuntu1
 nano2.9.3-2
@@ -134,22 +155,31 @@ ncurses-base6.1-1ubuntu1.18.04
 ncurses-bin6.1-1ubuntu1.18.04
 netbase5.4
 net-tools1.60+git20161116.90da8a0-1ubuntu1
+nodejs12.17.0-1nodesource1
 openssh-client1:7.6p1-4ubuntu0.3
-openssl1.1.1-1ubuntu2.1~18.04.5
+openssl1.1.1-1ubuntu2.1~18.04.6
 passwd1:4.5-1ubuntu2
 patch2.7.6-2ubuntu1.1
 perl5.26.1-6ubuntu0.3
 perl-base5.26.1-6ubuntu0.3
 perl-modules-5.265.26.1-6ubuntu0.3
+pinentry-curses1.1.0-1
 procps2:3.3.12-3ubuntu1.2
 publicsuffix20180223.1310-1
+python2.7.15~rc1-1
+python2.72.7.17-1~18.04ubuntu1
+python2.7-minimal2.7.17-1~18.04ubuntu1
+python-minimal2.7.15~rc1-1
+readline-common7.0-3
 sed4.4-2
 sensible-utils0.0.12
 sudo1.8.21p2-3ubuntu1.2
 sysvinit-utils2.88dsf-59.10ubuntu1
 tar1.29b-2ubuntu0.1
-tzdata2019c-0ubuntu0.18.04
+tzdata2020a-0ubuntu0.18.04
 ubuntu-keyring2018.09.18.1~18.04.0
 util-linux2.31.1-0.4ubuntu3.6
 xauth1:1.0.10-1
+xz-utils5.2.2-1.3
+yarn1.22.4-1
 zlib1g1:1.2.11.dfsg-0ubuntu2
diff --git a/readme-vars.yml b/readme-vars.yml
index 33e8f9b..9df9c18 100644
--- a/readme-vars.yml
+++ b/readme-vars.yml
@@ -22,6 +22,8 @@ project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_
 # supported architectures
 available_architectures:
   - { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
+  - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
+  - { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
 
 # development version
 development_versions: true
@@ -65,7 +67,9 @@ app_setup_block: |
 
 # changelog
 changelogs:
-  - { date: "20.05.20:", desc: "Add --domain-proxy support."}
+  - { date: "29.05.20:", desc: "Add --domain-proxy support."}
+  - { date: "21.05.20:", desc: "Shrink images, install via yarn, fix arm32v7 build." }
+  - { date: "18.05.20:", desc: "Switch to multi-arch images, install via npm." }
   - { date: "29.04.20:", desc: "Update start arguments." }
   - { date: "01.04.20:", desc: "Structural changes required for v3." }
   - { date: "17.01.20:", desc: "Fix artifact url retrieval from github." }
diff --git a/root/etc/services.d/code-server/run b/root/etc/services.d/code-server/run
index 2e91f05..435648e 100644
--- a/root/etc/services.d/code-server/run
+++ b/root/etc/services.d/code-server/run
@@ -18,13 +18,12 @@ else
 fi
 
 exec \
-        s6-setuidgid abc \
-                /app/code-server/code-server \
-                        --bind-addr 0.0.0.0:8443 \
-                        --user-data-dir /config/data \
-                        --extensions-dir /config/extensions \
-                        --disable-telemetry \
-                        --disable-updates \
-                        --auth "${AUTH}" \
-                        "${PROXY_DOMAIN_ARG}" \
-                        /config/workspace
+	s6-setuidgid abc \
+		/usr/bin/code-server \
+			--bind-addr 0.0.0.0:8443 \
+			--user-data-dir /config/data \
+			--extensions-dir /config/extensions \
+			--disable-telemetry \
+			--auth "${AUTH}" \
+      "${PROXY_DOMAIN_ARG}" \
+			/config/workspace