This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Module: Code

Deploy Code-Server with Pigsty, run VS Code in browser for cloud development.

    Code-Server is VS Code running in browser, allowing access to a full development environment from any device. Pigsty’s CODE module provides automated Code-Server deployment with HTTPS access via Nginx reverse proxy.


    Overview

    CODE module deploys Code-Server as a systemd service, exposed to web via Nginx reverse proxy.

    User Browser
        ↓ HTTPS
    Nginx (https://i.pigsty/code/)
        ↓ proxy_pass
    Code-Server (127.0.0.1:8443)
        └─ User: {{ node_user }}
        └─ WorkDir: {{ code_home }}
        └─ DataDir: {{ code_data }}
    

    Quick Start

    Enable Code-Server

    Set code_enabled: true on node, then execute:

    ./code.yml -l <host>
    

    Or enable on infra node with one-liner:

    ./code.yml -l infra -e code_enabled=true
    

    Access Code-Server

    After deployment, access via:

    • Subpath: https://i.pigsty/code/
    • Subdomain: https://code.pigsty (requires infra_portal config)

    Default password: Code.Server


    Parameters

    ParameterDefaultDescription
    code_enabledfalseEnable Code-Server on this node
    code_port8443Code-Server listen port (localhost only)
    code_home/fs/codeWorking directory (VS Code opens this folder)
    code_data/data/codeUser data directory (extensions, settings)
    code_passwordCode.ServerLogin password
    code_galleryopenvsxExtension marketplace: openvsx or microsoft

    Extension Marketplace

    Code-Server defaults to Open VSX marketplace. To use Microsoft’s official marketplace:

    code_gallery: microsoft
    

    China mainland users can use Tsinghua mirror for acceleration (auto-configured).


    Playbook & Tasks

    code.yml playbook contains these tasks:

    TagDescription
    code_installInstall code-server package
    code_dirCreate working and data directories
    code_configRender config files and systemd service unit
    code_launchStart code-server service
    code_extensionsInstall VS Code extensions

    Common commands:

    # Deploy Code-Server
    ./code.yml -l <host>
    
    # Update config only
    ./code.yml -l <host> -t code_config
    
    # Restart service
    ./code.yml -l <host> -t code_launch
    

    Directory Structure

    {{ code_home }}                 # Working directory (e.g., /fs/code)
    └── your-projects/              # Project files
    
    {{ code_data }}                 # Data directory (e.g., /data/code)
    ├── code-server/
    │   ├── config.yaml             # Code-Server config
    │   ├── extensions/             # Installed extensions
    │   └── User/
    │       └── settings.json       # User settings
    └── ...
    
    /etc/systemd/system/code-server.service  # systemd service unit
    /etc/default/code                         # Environment variables
    

    Configuration Examples

    Basic Config

    all:
      children:
        infra:
          hosts:
            10.10.10.10:
              code_enabled: true
              code_password: 'MySecurePassword'
    

    AI Coding Sandbox

    Combined with JuiceFS shared filesystem for cloud development environment:

    all:
      children:
        infra:
          hosts:
            10.10.10.10:
              code_enabled: true
              code_password: 'Code.Server'
              code_home: /fs/code           # Use JuiceFS mount point
              jupyter_enabled: true
              jupyter_password: 'Jupyter.Lab'
              jupyter_home: /fs/jupyter
              juice_instances:
                jfs:
                  path: /fs
                  meta: postgres://dbuser_meta:[email protected]:5432/meta
                  data: --storage postgres --bucket ...
    

    FAQ

    How to change password?

    Modify code_password in config, then re-execute playbook:

    ./code.yml -l <host> -t code_config,code_launch
    

    How to install extensions?

    Search and install directly in Code-Server UI, or via command line:

    code-server --install-extension ms-python.python
    

    Extension marketplace slow?

    Use code_gallery: microsoft to switch to Microsoft official marketplace, or ensure network can access Open VSX.

    How to use GitHub Copilot?

    GitHub Copilot currently doesn’t support Code-Server. Consider other AI coding assistants.


    Supported Platforms

    • OS: EL 8/9/10, Ubuntu 20/22/24, Debian 11/12/13
    • Arch: x86_64, ARM64
    • Ansible: 2.9+