Skip to content

Non-root Docker image running Debian and code-server.

License

Notifications You must be signed in to change notification settings

demyxsh/code-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ec67bc6 · Feb 22, 2025
Mar 9, 2022
Jan 20, 2022
Feb 29, 2024
Mar 26, 2024
Jun 23, 2023
Sep 3, 2023
Feb 29, 2024
Mar 7, 2024
Mar 7, 2024
Mar 26, 2024
Oct 3, 2019
Feb 9, 2024
Feb 22, 2025
Feb 22, 2021
Feb 22, 2021
Feb 22, 2025

Repository files navigation

code-server

demyxsh/code-server Code Size Repository Size Watches Stars Forks Docker Pulls Architecture Debian Go code-server Buy Me A Coffee Become a Patron!

code-server is VS Code running on a remote server, accessible through the browser.

To properly utilize this image, please use Demyx.

Demyx Discord

Join us on Discord for latest news, faster support, or just chill.

Buy Me A Coffee

Support this project by buying coffee (please).

NOTICE

This repository has been moved to the organization demyxsh; please update the remote URL.

git remote set-url origin [email protected]:demyxsh/code-server.git
DEMYX CODE-SERVER
TAGS bedrock browse go latest alpine openlitespeed openlitespeed-bedrock wp
PORT 8080
USER demyx
WORKDIR /demyx
CONFIG /etc/demyx
ENTRYPOINT ["demyx-entrypoint"]
SHELL zsh
SHELL THEME powerlevel10k

Usage

  • SSL/TLS first!
  • Requires no config file for Traefik and is ready to go when running: docker-compose up -d
  • Upgrading from Traefik v1 to v2? You will need to convert your acme.json
  • To update all code-server extensions, run this command: demyx-extension or demyx-extension --no-prompt
# Demyx
# https://demyx.sh
#
# This docker-compose.yml is designed for VPS use with SSL/TLS first.
# Traefik requires no additional configurations and is ready to go.
# Be sure to change all the domain.tld domains and credentials before running docker-compose up -d.
#
networks:
  demyx:
    name: demyx
  demyx_socket:
    name: demyx_socket
services:
  demyx_socket:
    container_name: demyx_socket
    environment:
      - CONTAINERS=1
    image: demyx/docker-socket-proxy
    networks:
      - demyx_socket
    # Uncomment below if your host OS is CentOS/RHEL/Fedora
    #privileged: true
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
  demyx_traefik:
    container_name: demyx_traefik
    depends_on:
      - demyx_socket
    environment:
      # Uncomment below for Cloudflare DNS challenge
      #- [email protected]
      #- CF_API_KEY=123456
      - [email protected]
      - DEMYX_TRAEFIK_LOG=INFO
      - TRAEFIK_PROVIDERS_DOCKER_ENDPOINT=tcp://demyx_socket:2375
    image: demyx/traefik
    labels:
      - "traefik.enable=true"
      - "traefik.http.middlewares.demyx-traefik-auth.basicauth.users=demyx:$$apr1$$L91z3CIR$$m/BKZcnQGBP.Uo2cJm8I0/" # Basic auth password: demyx
      - "traefik.http.middlewares.demyx-traefik-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.demyx-traefik-http.entrypoints=http"
      - "traefik.http.routers.demyx-traefik-http.middlewares=demyx-traefik-redirect"
      - "traefik.http.routers.demyx-traefik-http.rule=Host(`traefik.domain.tld`)"
      - "traefik.http.routers.demyx-traefik-http.service=demyx-traefik-http-port"
      - "traefik.http.routers.demyx-traefik-https.entrypoints=https"
      - "traefik.http.routers.demyx-traefik-https.middlewares=demyx-traefik-auth"
      - "traefik.http.routers.demyx-traefik-https.rule=Host(`traefik.domain.tld`)" # Traefik dashboard https://traefik.domain.tld
      - "traefik.http.routers.demyx-traefik-https.service=api@internal"
      - "traefik.http.routers.demyx-traefik-https.service=demyx-traefik-https-port"
      - "traefik.http.routers.demyx-traefik-https.tls.certresolver=demyx"
      - "traefik.http.services.demyx-traefik-http-port.loadbalancer.server.port=8080"
      - "traefik.http.services.demyx-traefik-https-port.loadbalancer.server.port=8080"
    networks:
      - demyx
      - demyx_socket
    ports:
      - 80:8081
      - 443:8082
    restart: unless-stopped
    volumes:
      - demyx_log:/var/log/demyx
      - demyx_traefik:/demyx
  demyx_code:
    container_name: demyx_code
    depends_on:
      - demyx_traefik
    environment:
      - DEMYX=/demyx
      - DEMYX_CODE_AUTH=password
      - DEMYX_CODE_BIND_ADDR=0.0.0.0:8080
      - DEMYX_CODE_CONFIG=/home/demyx/.config/code-server
      - DEMYX_CODE_PASSWORD=demyx
      - DEMYX_CONFIG=/etc/demyx
      - DEMYX_LOG=/var/log/demyx
      - TZ=America/Los_Angeles
    hostname: code-server
    image: demyx/code-server
    labels:
      - "traefik.enable=true"
      - "traefik.http.middlewares.demyx-code-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.demyx-code-http.entrypoints=http"
      - "traefik.http.routers.demyx-code-http.middlewares=demyx-code-redirect"
      - "traefik.http.routers.demyx-code-http.rule=Host(`domain.tld`)"
      - "traefik.http.routers.demyx-code-http.service=demyx-code-http-port"
      - "traefik.http.routers.demyx-code-https.entrypoints=https"
      - "traefik.http.routers.demyx-code-https.rule=Host(`domain.tld`)"
      - "traefik.http.routers.demyx-code-https.service=demyx-code-https-port"
      - "traefik.http.routers.demyx-code-https.tls.certresolver=demyx"
      - "traefik.http.services.demyx-code-http-port.loadbalancer.server.port=8080"
      - "traefik.http.services.demyx-code-https-port.loadbalancer.server.port=8080"
    networks:
      - demyx
    restart: unless-stopped
    volumes:
      - demyx_code:/home/demyx
version: "2.4"
volumes:
  demyx_code:
    name: demyx_code
  demyx_log:
    name: demyx_log
  demyx_traefik:
    name: demyx_traefik

Updates & Support

  • Auto built weekly on Saturdays (America/Los_Angeles)
  • Rolling release updates
  • For support: Discord