Universal development environment for interpreted languages and static site generators.
A comprehensive Docker-based environment that provides all major interpreted language runtimes, package managers, and static site generators in a single unified image. Perfect for polyglot development, CI/CD pipelines, and static site generation.
┌─────────────────────────────────────────────────────────────────────────────┐
│ devenvmgr/interpreters │
│ Alpine Linux base │
├─────────────────────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ JavaScript │ │ Python │ │ Ruby │ │ PHP │ │
│ │ TypeScript │ │ │ │ │ │ │ │
│ ├─────────────┤ ├─────────────┤ ├─────────────┤ ├─────────────┤ │
│ │ Node.js LTS │ │ Python 3.12 │ │ Ruby 3.3 │ │ PHP 8.3 │ │
│ │ Bun │ │ Poetry │ │ Bundler │ │ Composer │ │
│ │ Deno │ │ pipenv │ │ Jekyll │ │ Laravel │ │
│ │ npm/pnpm │ │ Flask/Django│ │ Rails │ │ Symfony │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Perl │ │ Lua │ │ Elixir │ │ Haskell │ │
│ │ │ │ │ │ Erlang │ │ │ │
│ ├─────────────┤ ├─────────────┤ ├─────────────┤ ├─────────────┤ │
│ │ Perl 5.38 │ │ Lua 5.4 │ │ Elixir 1.17 │ │ GHC 9.8 │ │
│ │ CPAN │ │ LuaRocks │ │ Erlang 27 │ │ Cabal │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ R/Julia │ │ SSGs │ │ Data Science│ │ Groovy │ │
│ │ │ │ │ │ │ │ (JVM) │ │
│ ├─────────────┤ ├─────────────┤ ├─────────────┤ ├─────────────┤ │
│ │ R 4.4 │ │ Hugo/Zola │ │ Jupyter │ │ Groovy 4.0 │ │
│ │ Julia 1.11 │ │ Jekyll │ │ JupyterLab │ │ OpenJDK 17 │ │
│ │ │ │ Eleventy │ │ Streamlit │ │ │ │
│ │ │ │ Hexo/Docusa.│ │ │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
ghcr.io/devenvmgr/interpreters:latest # Latest build
ghcr.io/devenvmgr/interpreters:2601 # January 2026 version (YYMM format)
ghcr.io/devenvmgr/interpreters:<commit> # Specific commit SHA
# Pull the image
docker pull ghcr.io/devenvmgr/interpreters:latest
# Auto-detect project and install dependencies
docker run --rm -v $(pwd):/workspace \
ghcr.io/devenvmgr/interpreters:latest --install
# Auto-detect and start dev server
docker run --rm -v $(pwd):/workspace -p 3000:3000 \
ghcr.io/devenvmgr/interpreters:latest --dev
# Auto-detect and build project
docker run --rm -v $(pwd):/workspace \
ghcr.io/devenvmgr/interpreters:latest --build
# Interactive shell
docker run --rm -it -v $(pwd):/workspace \
ghcr.io/devenvmgr/interpreters:latest
# Show all available runtimes
docker run --rm ghcr.io/devenvmgr/interpreters:latest --infoThe container automatically detects your project type and configures the appropriate runtime and package manager.
docker run --rm -v $(pwd):/workspace \
ghcr.io/devenvmgr/interpreters:latest --detect
# Output:
# Auto-detecting project type in: .
# ok Detected: Next.js project (npm)
#
# Project configuration:
# Type: nextjs
# Runtime: nodejs
# Package manager: npm
# Framework: Next.js| Language | Detection File(s) | Package Managers | Frameworks |
|---|---|---|---|
| Node.js | package.json |
npm, yarn, pnpm, bun | Next.js, Nuxt, Astro, Gatsby, Eleventy, VitePress, Ghost, React, Vue, Svelte, Express |
| Deno | deno.json, deno.jsonc |
deno | Fresh, Lume |
| Bun | bunfig.toml |
bun | Elysia |
| Python | pyproject.toml, Pipfile, requirements.txt |
poetry, pipenv, pip, pdm | Django, Flask, FastAPI, Pelican, MkDocs, Sphinx |
| Ruby | Gemfile |
bundler | Jekyll, Rails, Sinatra, Middleman |
| PHP | composer.json |
composer | Laravel, Symfony, Slim |
| Elixir | mix.exs |
mix | Phoenix |
| Haskell | stack.yaml, *.cabal |
stack, cabal | - |
| Julia | Project.toml |
Pkg | - |
| R | DESCRIPTION |
renv | - |
| Perl | cpanfile, Makefile.PL |
cpanm | - |
| Lua | *.rockspec |
luarocks | - |
| Hugo | hugo.toml, hugo.yaml |
hugo | - |
| Runtime | Version | Description |
|---|---|---|
| Node.js | LTS | JavaScript runtime |
| npm | Latest | Node package manager |
| pnpm | Latest | Fast, disk-efficient package manager |
| yarn | Latest | Alternative package manager |
| Bun | Latest | Fast JavaScript runtime & bundler |
| Deno | Latest | Secure TypeScript runtime |
| Tool | Version | Description |
|---|---|---|
| Python | 3.12 | Python interpreter |
| pip | Latest | Package installer |
| Poetry | Latest | Dependency management |
| pipenv | Latest | Virtual environments |
| PDM | Latest | Modern package manager |
| Tool | Version | Description |
|---|---|---|
| Ruby | 3.3 | Ruby interpreter |
| gem | Latest | RubyGems |
| Bundler | Latest | Dependency management |
| Jekyll | Latest | Static site generator |
| Tool | Version | Description |
|---|---|---|
| PHP | 8.3 | PHP interpreter |
| Composer | Latest | Dependency management |
| Language | Version | Tools |
|---|---|---|
| Perl | 5.38 | cpanm |
| Lua | 5.4 | LuaRocks |
| R | 4.4 | tidyverse |
| Julia | 1.11 | Pkg |
| Elixir | 1.17 | Mix, Erlang 27 |
| Haskell | GHC 9.8 | Cabal |
| Groovy | 4.0 | OpenJDK 17 |
| SSG/CMS | Language | Description |
|---|---|---|
| Hugo | Go | Fast, flexible |
| Zola | Rust | Single-binary, fast |
| Jekyll | Ruby | GitHub Pages compatible |
| Eleventy | Node.js | Simple, powerful |
| Hexo | Node.js | Fast blogging framework |
| Docusaurus | Node.js | Documentation sites |
| Astro | Node.js | Modern, islands architecture |
| Gatsby | Node.js | React-based |
| VitePress | Node.js | Vue-powered docs |
| Ghost | Node.js | Professional publishing platform |
| MkDocs | Python | Documentation focused |
| Pelican | Python | Python blogs |
| Tool | Description |
|---|---|
| Jupyter | Interactive notebooks |
| JupyterLab | Next-gen notebook interface |
| Streamlit | Data apps and dashboards |
# Install dependencies and start dev server
docker run --rm -v $(pwd):/workspace -p 3000:3000 \
ghcr.io/devenvmgr/interpreters:latest bash -c '
npm install
npm run dev
'
# Or use auto-detection
docker run --rm -v $(pwd):/workspace -p 3000:3000 \
ghcr.io/devenvmgr/interpreters:latest --dev# Install and run Django
docker run --rm -v $(pwd):/workspace -p 8000:8000 \
ghcr.io/devenvmgr/interpreters:latest bash -c '
pip install -r requirements.txt
python manage.py runserver 0.0.0.0:8000
'# Build Jekyll site
docker run --rm -v $(pwd):/workspace \
ghcr.io/devenvmgr/interpreters:latest bash -c '
bundle install
bundle exec jekyll build
'
# Serve locally
docker run --rm -v $(pwd):/workspace -p 4000:4000 \
ghcr.io/devenvmgr/interpreters:latest bash -c '
bundle install
bundle exec jekyll serve --host 0.0.0.0
'# Build Hugo site
docker run --rm -v $(pwd):/workspace \
ghcr.io/devenvmgr/interpreters:latest hugo --minify
# Serve locally
docker run --rm -v $(pwd):/workspace -p 1313:1313 \
ghcr.io/devenvmgr/interpreters:latest hugo server --bind 0.0.0.0# Install Ghost in current directory
docker run --rm -v $(pwd):/workspace \
ghcr.io/devenvmgr/interpreters:latest ghost install local
# Start Ghost
docker run --rm -v $(pwd):/workspace -p 2368:2368 \
ghcr.io/devenvmgr/interpreters:latest ghost start
# Or use auto-detection if Ghost is already installed
docker run --rm -v $(pwd):/workspace -p 2368:2368 \
ghcr.io/devenvmgr/interpreters:latest --dev# Build docs
docker run --rm -v $(pwd):/workspace \
ghcr.io/devenvmgr/interpreters:latest mkdocs build
# Serve locally
docker run --rm -v $(pwd):/workspace -p 8000:8000 \
ghcr.io/devenvmgr/interpreters:latest mkdocs serve -a 0.0.0.0:8000# Build Zola site
docker run --rm -v $(pwd):/workspace \
ghcr.io/devenvmgr/interpreters:latest zola build
# Serve locally
docker run --rm -v $(pwd):/workspace -p 1111:1111 \
ghcr.io/devenvmgr/interpreters:latest zola serve --interface 0.0.0.0# Create new Hexo blog
docker run --rm -v $(pwd):/workspace \
ghcr.io/devenvmgr/interpreters:latest hexo init my-blog
# Generate and serve
docker run --rm -v $(pwd):/workspace -p 4000:4000 \
ghcr.io/devenvmgr/interpreters:latest bash -c '
cd my-blog && npm install
hexo generate
hexo server -p 4000
'# Create new Docusaurus site
docker run --rm -v $(pwd):/workspace \
ghcr.io/devenvmgr/interpreters:latest npx create-docusaurus@latest my-docs classic
# Serve locally
docker run --rm -v $(pwd):/workspace -p 3000:3000 \
ghcr.io/devenvmgr/interpreters:latest bash -c '
cd my-docs && npm install
npm start -- --host 0.0.0.0
'# Start JupyterLab
docker run --rm -v $(pwd):/workspace -p 8888:8888 \
ghcr.io/devenvmgr/interpreters:latest \
jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root
# Start classic Jupyter Notebook
docker run --rm -v $(pwd):/workspace -p 8888:8888 \
ghcr.io/devenvmgr/interpreters:latest \
jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser --allow-root# Run Streamlit app
docker run --rm -v $(pwd):/workspace -p 8501:8501 \
ghcr.io/devenvmgr/interpreters:latest \
streamlit run app.py --server.address 0.0.0.0# Run Groovy script
docker run --rm -v $(pwd):/workspace \
ghcr.io/devenvmgr/interpreters:latest groovy script.groovy
# Interactive Groovy shell
docker run --rm -it -v $(pwd):/workspace \
ghcr.io/devenvmgr/interpreters:latest groovyshjobs:
build:
runs-on: ubuntu-latest
container: ghcr.io/devenvmgr/interpreters:latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
# Auto-detect and install
/usr/local/bin/entrypoint.sh --install
- name: Build
run: |
# Auto-detect and build
/usr/local/bin/entrypoint.sh --build
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-output
path: dist/ # or _site/, public/, etc.strategy:
matrix:
include:
- project: nextjs-app
port: 3000
- project: jekyll-site
port: 4000
- project: hugo-blog
port: 1313
steps:
- name: Build ${{ matrix.project }}
working-directory: ${{ matrix.project }}
run: |
/usr/local/bin/entrypoint.sh --install
/usr/local/bin/entrypoint.sh --buildAdd to your project's .devcontainer/devcontainer.json:
{
"name": "Interpreters Environment",
"image": "ghcr.io/devenvmgr/interpreters:latest",
"forwardPorts": [3000, 4000, 5000, 8000],
"postCreateCommand": "interpreters-info"
}| Variable | Default | Description |
|---|---|---|
NODE_ENV |
development | Node.js environment |
PYTHONDONTWRITEBYTECODE |
1 | Don't create .pyc files |
PYTHONUNBUFFERED |
1 | Unbuffered Python output |
GEM_HOME |
/usr/local/bundle | Ruby gem installation path |
COMPOSER_HOME |
/root/.composer | Composer home directory |
MIX_ENV |
dev | Elixir environment |
| Feature | devenvmgr/interpreters | binmgr/toolchain |
|---|---|---|
| Purpose | Interpreted languages & SSGs | Static binary compilation |
| Languages | Node.js, Python, Ruby, PHP, Groovy, etc. | C, C++, Rust, Go, Zig, Dart |
| Output | Scripts, bundles, HTML, notebooks | Static executables |
| Use cases | Web dev, CI/CD, docs, data science | CLI tools, system utilities |
| Cross-compile | No | Yes (20+ targets) |
Use binmgr/toolchain for building portable static binaries. Use devenvmgr/interpreters for interpreted language development and static site generation.
- Fork the repository
- Create a feature branch
- Test your changes:
make build-test - Submit a pull request
MIT License - see LICENSE.md for details.