/gold

Gold is a containerized environment for working on provably correct software

Primary LanguageShellMIT LicenseMIT

🪙 Gold  

CodeFactor Code Size

Gold is a containerized environment for working on provably correct software and more

Quick Start

Use VS Code in the browser in Three Easy Steps™

  1. Install Docker or Podman
  2. Run the command 1
    docker run -it \
        --privileged \
        --name notebook \
        --hostname $(hostname) \
        -p 1337:1337 \
        ghcr.io/jhwohlgemuth/gold
  3. Open a browser and navigate to https://localhost:1337 2

Tip

See Container Customization section for more details on how to customize the container.

What is Gold?

🚧 UNDER CONSTRUCTION

So what, big deal, who cares?

🚧 UNDER CONSTRUCTION

Things you can do with Gold

Tip

See the examples directory for details on all the things you can do with Gold.

  • Write, run, and debug Coq code from within a browser-based instance of VSCode 3
  • Work with modern Rust-based projects to write provably correct software
  • Spin up feature-rich development environments for use from a terminal or browser-based IDE 3
  • Work with WebAssembly
  • Quickly and easily compare multiple languages using interative notebooks
  • 🚧 UNDER CONSTRUCTION

Container Customization

Note

Use install_extensions to install VS Code extensions.

Note

install_extensions accepts any number of image names (see Image Design section)
Example install_extensions notebook dotnet web

The following environment variables are available to customize containers:

  • CODE_SERVER_CONFIG: Location of code-server server configuration file (within container)
    • Default: /app/code-server/config/config.yaml
  • CODE_SERVER_PORT: Port to use for code-server server
    • Default: 1337
  • CODE_SERVER_PASSWORD: Password to use for code-server server
    • Default: password
  • JUPYTER_CONFIG: Location of code-server server configuration file (within container)
    • Default: /root/.jupyter/jupyter_notebook_config.py
  • JUPYTER_PORT: Port to use for Jupyter server
    • Default: 13337
  • JUPYTER_PASSWORD_HASH: Password to use for Jupyter server
    • Default: password

Tip

Change environment variables with the --env parameter 4 (ex. docker run -it --env CODE_SERVER_PORT=8080 <image>)

Contributing

Alt


Footnotes

[1]

--privileged is required to use Apptainer within the container

[2]

The default code-server port can be changed with the CODE_SERVER_PORT environment variable. See the Container Customization section for more details.

[3]

[4]

See docker run documentation