Skip to content

daemonless/code-server

Repository files navigation

code-server

Build Status Last Commit

VS Code in the browser — run a full development environment on your FreeBSD server and access it from anywhere.

Port 8080
Registry ghcr.io/daemonless/code-server
Source https://github.com/coder/code-server
Website https://coder.com/docs/code-server

Version Tags

Tag Description Best For
latest Upstream Binary. Built from official release. Most users. Matches Linux Docker behavior.

Prerequisites

Before deploying, ensure your host environment is ready. See the Quick Start Guide for host setup instructions.

Deployment

Podman Compose

services:
  code-server:
    image: ghcr.io/daemonless/code-server:latest
    container_name: code-server
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=UTC
    volumes:
      - "/path/to/containers/code-server:/config"
    ports:
      - 8080:8080
    restart: unless-stopped

AppJail Director

.env:

DIRECTOR_PROJECT=code-server
PUID=1000
PGID=1000
TZ=UTC

appjail-director.yml:

options:
  - virtualnet: ':<random> default'
  - nat:
services:
  code-server:
    name: code_server
    options:
      - container: 'boot args:--pull'
    oci:
      user: root
      environment:
        - PUID: !ENV '${PUID}'
        - PGID: !ENV '${PGID}'
        - TZ: !ENV '${TZ}'
    volumes:
      - code-server: /config
volumes:
  code-server:
    device: '/path/to/containers/code-server'

Makejail:

ARG tag=latest

OPTION overwrite=force
OPTION from=ghcr.io/daemonless/code-server:${tag}

Podman CLI

podman run -d --name code-server \
  -p 8080:8080 \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=UTC \
  -v /path/to/containers/code-server:/config \
  ghcr.io/daemonless/code-server:latest

Ansible

- name: Deploy code-server
  containers.podman.podman_container:
    name: code-server
    image: ghcr.io/daemonless/code-server:latest
    state: started
    restart_policy: always
    env:
      PUID: "1000"
      PGID: "1000"
      TZ: "UTC"
    ports:
      - "8080:8080"
    volumes:
      - "/path/to/containers/code-server:/config"

Access at: http://localhost:8080

Parameters

Environment Variables

Variable Default Description
PUID 1000 User ID for the application process
PGID 1000 Group ID for the application process
TZ UTC Timezone for the container

Volumes

Path Description
/config Configuration directory

Ports

Port Protocol Description
8080 TCP Web UI

!!! warning "Work in Progress" This image is functional but may change significantly in a future release.

Common dev tools (gcc, clang, llvm, python, gmake) are baked into the image for now.

!!! warning "No sudo / su / doas in Terminal" Podman strips the setuid bit from binaries at runtime, so sudo, su, and doas will not work inside the code-server terminal. To run commands as root, use podman exec from the host.

Installing Packages

This is a known limitation of this WIP image and will likely improve in a future release.

Due to FreeBSD jail restrictions, pkg install cannot be run from the code-server terminal directly. Install additional packages from the host using podman exec:

# Podman
doas podman exec -it -u root code-server pkg install rust cargo

# AppJail
doas appjail cmd jexec code_server pkg install rust cargo

!!! warning "Packages are not persistent" If you recreate the container, you will need to reinstall any packages you have added.

Architectures: amd64 User: bsd (UID/GID via PUID/PGID, defaults to 1000:1000) Base: FreeBSD 15.0


Need help? Join our Discord community.

About

FreeBSD-native OCI image for code-server (VS Code in the browser). Compatible with Podman and AppJail.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors