Skip to content

NimTechnology

Trình bày các công nghệ CLOUD một cách dễ hiểu.

  • Kubernetes & Container
    • Docker
    • Kubernetes
      • Ingress
      • Pod
    • Helm Chart
    • OAuth2 Proxy
    • Isito-EnvoyFilter
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Vault
    • Longhorn – Storage
    • VictoriaMetrics
    • MetalLB
    • Kong Gateway
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Argo Events
    • Spinnaker
    • Jenkins
    • Harbor
    • TeamCity
    • Git
      • Bitbucket
  • Coding
    • DevSecOps
    • Terraform
      • GCP – Google Cloud
      • AWS – Amazon Web Service
      • Azure Cloud
    • Golang
    • Laravel
    • Python
    • Jquery & JavaScript
    • Selenium
  • Log, Monitor & Tracing
    • DataDog
    • Prometheus
    • Grafana
    • ELK
      • Kibana
      • Logstash
  • BareMetal
    • NextCloud
  • Toggle search form

[VScode] Building VS Code web on the self-host

Posted on December 6, 2022June 24, 2025 By nim No Comments on [VScode] Building VS Code web on the self-host

Bạn có thể build VS Code trên server linux và access vào VS code thông qua website

https://github.com/gitpod-io/openvscode-server

Contents

Toggle
  • Docker
  • Deployment
  • Helm chart

Docker

docker run -it --init -p 3000:3000 gitpod/openvscode-server
sudo -i
apt update

>>/home/openvscode-server/.ssh/id_rsa

Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: openvscode-server
  namespace: XXXXX-engines-prod
  labels:
    app.kubernetes.io/instance: openvscode-server
    app.kubernetes.io/name: openvscode-server
spec:
  replicas: 4
  selector:
    matchLabels:
      app.kubernetes.io/instance: openvscode-server
      app.kubernetes.io/name: openvscode-server
  template:
    metadata:
      creationTimestamp: null
      labels:
        app.kubernetes.io/instance: openvscode-server
        app.kubernetes.io/name: openvscode-server
    spec:
      volumes:
        - name: file-service
          persistentVolumeClaim:
            claimName: pvc-file-service-smb-1
      containers:
        - name: openvscode-server
          image: gitpod/openvscode-server:latest
          ports:
            - name: http
              containerPort: 3000
              protocol: TCP
          resources: {}
          volumeMounts:
            - name: file-service
              mountPath: /app/downloaded
          livenessProbe:
            httpGet:
              path: /
              port: http
              scheme: HTTP
            timeoutSeconds: 1
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 3
          readinessProbe:
            httpGet:
              path: /
              port: http
              scheme: HTTP
            timeoutSeconds: 1
            periodSeconds: 10
            successThreshold: 1
            failureThreshold: 3
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: Always
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      nodeSelector:
        kubernetes.io/os: linux
      securityContext: {}
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600

Helm chart

Ngoài ra bạn có thể sử dụng helm chart do Nim has writen.

helm repo add openvscode-server-helm https://mrnim94.github.io/openvscode-server-helm/
"openvscode-server-helm" has been added to your repositories

helm search repo openvscode-server-helm
NAME                                            CHART VERSION   APP VERSION     DESCRIPTION
openvscode-server-helm/openvscode-server        0.1.0           v1.74.2         A Helm chart for Kubernetes

Value mẫu

ingress:
  enabled: true
  className: "nginx"
  annotations:
    cert-manager.io/issuer: openvscode-server
    cert-manager.io/issuer-kind: Issuer
    nginx.ingress.kubernetes.io/auth-signin: https://$host/oauth2/start?rd=$escaped_request_uri
    nginx.ingress.kubernetes.io/auth-url: https://$host/oauth2/auth
    nginx.ingress.kubernetes.io/configuration-snippet: |
      proxy_set_header Origin "";
      proxy_hide_header l5d-remote-ip;
      proxy_hide_header l5d-server-id;
    nginx.ingress.kubernetes.io/proxy-buffer-size: 8k
    nginx.ingress.kubernetes.io/proxy-buffering: "on"
  hosts:
    - host: vscode.nimtechnology.com
      paths:
        - path: /
          pathType: ImplementationSpecific
  tls:
    - hosts:
        - vscode.nimtechnology.com
      secretName: tls-oauth2-proxy-ingress

persistence:
  enabled: true
  persistentVolumeClaim:
    workspace:
      storageClass: "longhorn"
      size: 5Gi
podSecurityContext:
  fsGroup: 1000

Update ngày 24/06/2025

Mình cũng được tìm được các container docker tên là code-server
https://hub.docker.com/r/codercom/code-server
https://hub.docker.com/r/linuxserver/code-server

Nó có hỗ trợ sẵn bacsic authen để anh em có thể protect vscode server của anh em.

docker run -d \
  --name=code-server \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e PASSWORD=password `#optional` \
  -e HASHED_PASSWORD= `#optional` \
  -e SUDO_PASSWORD=password `#optional` \
  -e SUDO_PASSWORD_HASH= `#optional` \
  -e PROXY_DOMAIN=code-server.my.domain `#optional` \
  -e DEFAULT_WORKSPACE=/config/workspace `#optional` \
  -e PWA_APPNAME=code-server `#optional` \
  -p 8443:8443 \
  -v /path/to/code-server/config:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/code-server:latest

Hoặc:

# This will start a code-server container and expose it at http://127.0.0.1:8080.
# It will also mount your current directory into the container as `/home/coder/project`
# and forward your UID/GID so that all file system operations occur as your user outside
# the container.
#
# Your $HOME/.config is mounted at $HOME/.config within the container to ensure you can
# easily access/modify your code-server config in $HOME/.config/code-server/config.json
# outside the container.
mkdir -p ~/.config
docker run -it --name code-server -p 127.0.0.1:8080:8080 \
  -v "$HOME/.config:/home/coder/.config" \
  -v "$PWD:/home/coder/project" \
  -u "$(id -u):$(id -g)" \
  -e "DOCKER_USER=$USER" \
  codercom/code-server:latest
Coding, Docker

Post navigation

Previous Post: [Kubernetes] Discovering the strategy deployment on K8s
Next Post: [AWS/EKS] EFS CSI Driver – Create Persistent Volume Clain with ReadWriteMany type on EKS

More Related Articles

[WordPress] How to add a Dynamic watermark on WordPress. Coding
[Ddosify] How to test the application performance with Ddosify. Coding
[Bootstrap] Hide and show elements by bootstrap. Coding
[Laravel] Hướng dẫn taọ 1 array từ việc tổng hợp nhiều Array lấy từ DB hay API Coding
[nodeJs] Resovle the issue: npm ERR! cb() never called! Coding
[GRPC] Checking GPRC Port by fullstorydev/grpcurl Coding

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Tham Gia Group DevOps nhé!
Để Nim có nhiều động lực ra nhiều bài viết.
Để nhận được những thông báo mới nhất.

Recent Posts

  • [Laravel] Laravel Helpful June 26, 2025
  • [VScode] Hướng dẫn điều chỉnh font cho terminal June 20, 2025
  • [WordPress] Hướng dấn gửi mail trên WordPress thông qua gmail. June 15, 2025
  • [Bitbucket] Git Clone/Pull/Push with Bitbucket through API Token. June 12, 2025
  • [Teamcity] How to transfer the value from pipeline A to pipeline B June 9, 2025

Archives

  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021

Categories

  • BareMetal
    • NextCloud
  • CI/CD
    • Argo Events
    • ArgoCD
    • ArgoWorkflows
    • Git
      • Bitbucket
    • Harbor
    • Jenkins
    • Spinnaker
    • TeamCity
  • Coding
    • DevSecOps
    • Golang
    • Jquery & JavaScript
    • Laravel
    • NextJS 14 & ReactJS & Type Script
    • Python
    • Selenium
    • Terraform
      • AWS – Amazon Web Service
      • Azure Cloud
      • GCP – Google Cloud
  • Kubernetes & Container
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Docker
    • Helm Chart
    • Isito-EnvoyFilter
    • Kong Gateway
    • Kubernetes
      • Ingress
      • Pod
    • Longhorn – Storage
    • MetalLB
    • OAuth2 Proxy
    • Vault
    • VictoriaMetrics
  • Log, Monitor & Tracing
    • DataDog
    • ELK
      • Kibana
      • Logstash
    • Fluent
    • Grafana
    • Prometheus
  • Uncategorized
  • Admin

Copyright © 2025 NimTechnology.