l7-devenv

Secure terminal-based IDE for local JS development

AGPL-3.0 License

Stars
19
l7-devenv - v0.0.18 Latest Release

Published by legobeat 24 days ago

Summary

  • apt-cacher-ng: Add known static hosts to PassThroughPatterns
  • verdaccio: Allow public networking
  • Various minor fixes
  • Dependency updates

Update instructions

$ git remote update
$ git checkout v0.0.18
$ make images
$ make images_opt    # build gui images
$ podman compose down && podman compose up --force-recreate

Evaluation/testing prebuilds

👉 For production use, please build your own images rather than using these.

$ podman pull ghcr.io/legobeat/l7-devenv/alpine:v0.0.18
$ podman pull ghcr.io/legobeat/l7-devenv/caddy:v0.0.18
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:v0.0.18
$ podman pull ghcr.io/legobeat/l7-devenv/dev-shell:v0.0.18
$ podman pull ghcr.io/legobeat/l7-devenv/auth-proxy:v0.0.18
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.18
$ podman pull ghcr.io/legobeat/l7-devenv/lsp/typescript:v0.0.18
$ podman pull ghcr.io/legobeat/l7-devenv/apt-cacher-ng:v0.0.18
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.18
$ podman pull ghcr.io/legobeat/l7-devenv/dev-terminal:xterm-v0.0.18
$ podman pull ghcr.io/legobeat/l7-devenv/dev-terminal:vnc-v0.0.18
$ podman pull ghcr.io/legobeat/l7-devenv/firefox:v0.0.18
l7-devenv - v0.0.17

Published by legobeat about 1 month ago

Summary

  • vnc: change ratpoison prefix key from Ctrl-Escape to Ctrl-.
  • Ubuntu docker-compose compatibility
  • Add optional Tor proxy image
    • Build with make image_tor
    • Start with podman compose up tor
    • Use by e.g. https_proxy=socks5h://10.7.8.139:9050, or configure as Firefox proxy via built-in Foxyproxy
  • Nodejs integration improvements
    • Reuse local package caches for npm/pnpm/yarn shims
    • Install libvips-dev for node-gyp builds
    • Add /usr/local/lib/node_modules to NODE_PATH
  • xterm integration fix
  • Documentation
  • Dependency updates

Update instructions

$ git remote update
$ git checkout v0.0.17
$ make images
$ make images_opt    # build gui images
$ podman compose down && podman compose up --force-recreate

Evaluation/testing prebuilds

👉 For production use, please build your own images rather than using these.

$ podman pull ghcr.io/legobeat/l7-devenv/alpine:v0.0.17
$ podman pull ghcr.io/legobeat/l7-devenv/caddy:v0.0.17
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:v0.0.17
$ podman pull ghcr.io/legobeat/l7-devenv/dev-shell:v0.0.17
$ podman pull ghcr.io/legobeat/l7-devenv/auth-proxy:v0.0.17
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.17
$ podman pull ghcr.io/legobeat/l7-devenv/lsp/typescript:v0.0.17
$ podman pull ghcr.io/legobeat/l7-devenv/apt-cacher-ng:v0.0.17
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.17
$ podman pull ghcr.io/legobeat/l7-devenv/dev-terminal:xterm-v0.0.17
$ podman pull ghcr.io/legobeat/l7-devenv/dev-terminal:vnc-v0.0.17
$ podman pull ghcr.io/legobeat/l7-devenv/firefox:v0.0.17
l7-devenv - v0.0.16

Published by legobeat 2 months ago

Summary

  • GUI applications and X11 desktop environment
    • Xterm terminal
    • Tmux terminal multiplexer
    • Firefox web browser
    • Ratpoison window manager
    • TigerVNC server
  • nodejs: writable /tmp and /var/tmp (6c4aa1e1)
  • golang 1.22 (11ff3bc6)
  • allow setting git auth-proxy upstream http proxy (f9efe6bd)
    • recognizes standard env vars http_proxy, https_proxy, no_proxy
  • dev-shell: fix SSH socket forwarding fix (687cbadb)
  • dev-shell: set SHELL env var (fa398225)

Update instructions

$ git remote update
$ git checkout v0.0.16
$ make images
$ make images_gui    # build gui images
$ podman compose down && podman compose up --force-recreate

Evaluation/testing prebuilds

👉 For production use, please build your own images rather than using these.

$ podman pull ghcr.io/legobeat/l7-devenv/alpine:v0.0.16
$ podman pull ghcr.io/legobeat/l7-devenv/caddy:v0.0.16
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:v0.0.16
$ podman pull ghcr.io/legobeat/l7-devenv/dev-shell:v0.0.16
$ podman pull ghcr.io/legobeat/l7-devenv/auth-proxy:v0.0.16
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.16
$ podman pull ghcr.io/legobeat/l7-devenv/lsp/typescript:v0.0.16
$ podman pull ghcr.io/legobeat/l7-devenv/apt-cacher-ng:v0.0.16
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.16
$ podman pull ghcr.io/legobeat/l7-devenv/dev-terminal:xterm-v0.0.16
$ podman pull ghcr.io/legobeat/l7-devenv/dev-terminal:vnc-v0.0.16
$ podman pull ghcr.io/legobeat/l7-devenv/firefox:v0.0.16
l7-devenv - v0.0.15

Published by legobeat 2 months ago

Summary

  • Assorted fixes

Update instructions

$ git remote update
$ git checkout v0.0.15
$ make images
$ podman compose down && podman compose up --force-recreate dev-shell

Evaluation/testing prebuilds

👉 For production use, please build your own images rather than using these.

$ podman pull ghcr.io/legobeat/l7-devenv/alpine:v0.0.15
$ podman pull ghcr.io/legobeat/l7-devenv/caddy:v0.0.15
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:v0.0.15
$ podman pull ghcr.io/legobeat/l7-devenv/dev-shell:v0.0.15
$ podman pull ghcr.io/legobeat/l7-devenv/auth-proxy:v0.0.15
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.15
$ podman pull ghcr.io/legobeat/l7-devenv/lsp/typescript:v0.0.15
$ podman pull ghcr.io/legobeat/l7-devenv/apt-cacher-ng:v0.0.15
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.15
l7-devenv - v0.0.14

Published by legobeat 3 months ago

Summary

  • node-runner: Support CocoaPods pod install for React Native projects
    • The combined Node.js+Ruby+CocoaPods image is built separately by make image_runner_node_ios and used in presence of a Podfile
  • node-runner: Support running npx commands
  • node-runner(yarn): Explicitly trust internal CA cert
  • Compatibility fixes
  • Simplified build system

Update instructions

$ git remote update
$ git checkout v0.0.14
$ make images
$ podman compose down && podman compose up --force-recreate dev-shell

Evaluation/testing prebuilds

👉 For production use, please build your own images rather than using these.

$ podman pull ghcr.io/legobeat/l7-devenv/alpine:v0.0.14
$ podman pull ghcr.io/legobeat/l7-devenv/caddy:v0.0.14
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:v0.0.14
$ podman pull ghcr.io/legobeat/l7-devenv/dev-shell:v0.0.14
$ podman pull ghcr.io/legobeat/l7-devenv/auth-proxy:v0.0.14
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.14
$ podman pull ghcr.io/legobeat/l7-devenv/lsp/typescript:v0.0.14
$ podman pull ghcr.io/legobeat/l7-devenv/apt-cacher-ng:v0.0.14
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.14
l7-devenv - v0.0.13

Published by legobeat 3 months ago

Summary

  • nvim: enable autocomplete (thanks to echasnovski/mini.completion)
  • nodejs: pin corepack version
  • devenv: add yq
  • verdaccio: serve packages from https:// urls
  • Minor build system fixes

Update instructions

$ git remote update
$ git checkout v0.0.13
$ make images
$ podman compose down && podman compose up --force-recreate dev-shell

Evaluation/testing prebuilds

👉 For production use, please build your own images rather than using these.

$ podman pull ghcr.io/legobeat/l7-devenv/alpine:v0.0.13
$ podman pull ghcr.io/legobeat/l7-devenv/caddy:v0.0.13
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:v0.0.13
$ podman pull ghcr.io/legobeat/l7-devenv/dev-shell:v0.0.13
$ podman pull ghcr.io/legobeat/l7-devenv/auth-proxy:v0.0.13
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.13
$ podman pull ghcr.io/legobeat/l7-devenv/lsp/typescript:v0.0.13
$ podman pull ghcr.io/legobeat/l7-devenv/apt-cacher-ng:v0.0.13
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.13
l7-devenv - v0.0.12

Published by legobeat 3 months ago

Summary

  • Entrypoint image is now named localhost/l7/dev-shell
    • build is now more modular and independent Containerfiles have been broken out for:
      • localhost/l7/hub
      • localhost/l7/nvim
      • localhost/l7/podman-remote
  • Enabled a couple of nifty zsh plugins
  • Minor proxy and dns fixes
  • Network security fix: Outbound routing is now properly disabled for internal networks

Update instructions

$ git remote update
$ git checkout v0.0.12
$ make images
$ podman compose down && podman compose up --force-recreate

Evaluation/testing prebuilds

👉 For production use, please build your own images rather than using these.

$ podman pull ghcr.io/legobeat/l7-devenv/alpine:v0.0.12
$ podman pull ghcr.io/legobeat/l7-devenv/caddy:v0.0.12
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:v0.0.12
$ podman pull ghcr.io/legobeat/l7-devenv/dev-shell:v0.0.12
$ podman pull ghcr.io/legobeat/l7-devenv/auth-proxy:v0.0.12
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.12
$ podman pull ghcr.io/legobeat/l7-devenv/lsp/typescript:v0.0.12
$ podman pull ghcr.io/legobeat/l7-devenv/apt-cacher-ng:v0.0.12
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.12
l7-devenv - v0.0.11

Published by legobeat 3 months ago

Summary

  • nvim: Autocomplete
  • nvim: Quake-style terminal
    • Toggle by C-/ or C--
  • nvim: Remove lspcontainers.nvim
    • LSP still containerized without plugin
  • There is now an optional entrypoint (to become default) managed by compose
    • Start environment by SRC_DIR=~/src/your-sources podman compose up -d dev-shell
    • Start a new session by podman compose exec -it dev-shell tmux or podman compose exec -it dev-shell zsh.
    • Reattach to a tmux session by podman compose exec -it dev-shell tmux a
  • Various fixes

Update instructions

$ git remote update
$ git checkout v0.0.11
$ make images
$ podman compose down && podman compose up --force-recreate

Evaluation/testing prebuilds

👉 For production use, please build your own images rather than using these.

$ podman pull ghcr.io/legobeat/l7-devenv/alpine:v0.0.11
$ podman pull ghcr.io/legobeat/l7-devenv/caddy:v0.0.11
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:v0.0.11
$ podman pull ghcr.io/legobeat/l7-devenv/nvim:v0.0.11
$ podman pull ghcr.io/legobeat/l7-devenv/auth-proxy:v0.0.11
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.11
$ podman pull ghcr.io/legobeat/l7-devenv/lsp/typescript:v0.0.11
$ podman pull ghcr.io/legobeat/l7-devenv/apt-cacher-ng:v0.0.11
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.11
l7-devenv -

Published by legobeat 4 months ago

Summary

  • Cut nvim image size in half by switching base from fedora to alpine (#121)
  • Add slim base image without neovim and extra packages

Update instructions

$ git remote update
$ git checkout v0.0.10
$ make images
$ podman compose down && podman compose up --force-recreate

Evaluation/testing prebuilds

👉 For production use, please build your own images rather than using these.

$ podman pull ghcr.io/legobeat/l7-devenv/alpine:v0.0.10
$ podman pull ghcr.io/legobeat/l7-devenv/caddy:v0.0.10
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:v0.0.10
$ podman pull ghcr.io/legobeat/l7-devenv/nvim:v0.0.10
$ podman pull ghcr.io/legobeat/l7-devenv/auth-proxy:v0.0.10
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.10
$ podman pull ghcr.io/legobeat/l7-devenv/lsp/typescript:v0.0.10
$ podman pull ghcr.io/legobeat/l7-devenv/apt-cacher-ng:v0.0.10
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.10
l7-devenv - v0.0.9

Published by legobeat 4 months ago

Summary

  • Several minor improvements and fixes
    • Corepack integration fix
    • Proxy fix
    • SELinux compatibility
  • feat: shims for explicitly calling specific versions of npm, pnpm and yarn
    • yarn1, npm10, etc
    • docs
  • feat: allow overriding Node.js version

Update instructions

$ git remote update
$ git checkout v0.0.9
$ make images
$ podman compose down && podman compose up --force-recreate

Evaluation/testing prebuilds

👉 For production use, please build your own images rather than using these.

$ podman pull ghcr.io/legobeat/l7-devenv/caddy:v0.0.9
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:v0.0.9
$ podman pull ghcr.io/legobeat/l7-devenv/nvim:v0.0.9
$ podman pull ghcr.io/legobeat/l7-devenv/auth-proxy:v0.0.9
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.9
$ podman pull ghcr.io/legobeat/l7-devenv/lsp/typescript:v0.0.9
$ podman pull ghcr.io/legobeat/l7-devenv/apt-cacher-ng:v0.0.9
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.9
l7-devenv - v0.0.8

Published by legobeat 4 months ago

Summary


Update instructions

$ git remote update
$ git checkout v0.0.8
$ make images
$ podman compose down && podman compose up --force-recreate

Evaluation/testing prebuilds

👉 For production use, please build your own images rather than using these.

$ podman pull ghcr.io/legobeat/l7-devenv/caddy:v0.0.8
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:v0.0.8
$ podman pull ghcr.io/legobeat/l7-devenv/nvim:v0.0.8
$ podman pull ghcr.io/legobeat/l7-devenv/auth-proxy:v0.0.8
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.8
$ podman pull ghcr.io/legobeat/l7-devenv/lsp/typescript:v0.0.8
$ podman pull ghcr.io/legobeat/l7-devenv/apt-cacher-ng:v0.0.8
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.8
l7-devenv -

Published by legobeat 4 months ago

Summary

  • Proxy improvements
    • Caching of npm packages
  • Node.js fixes

$ git remote update
$ git checkout v0.0.7
$ make images
$ podman compose down && podman compose up --force-recreate

Evaluation/testing prebuilds

👉 For production use, please build your own images rather than using these.

$ podman pull ghcr.io/legobeat/l7-devenv/caddy:v0.0.7
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:v0.0.7
$ podman pull ghcr.io/legobeat/l7-devenv/nvim:v0.0.7
$ podman pull ghcr.io/legobeat/l7-devenv/auth-proxy:v0.0.7
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.7
$ podman pull ghcr.io/legobeat/l7-devenv/apt-cacher-ng:v0.0.7
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.7
l7-devenv - v0.0.6

Published by legobeat 4 months ago

Summary

  • git-auth-proxy + caddy + dnsmasq intercepting github auth, sandboxing GITHUB_TOKEN #41

$ git remote update
$ git checkout v0.0.6
$ make images
$ podman compose down && podman compose up

Evaluation/testing prebuilds

👉 For production use, please build your own images rather than using these.

$ podman pull ghcr.io/legobeat/l7-devenv/caddy:v0.0.6
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:v0.0.6
$ podman pull ghcr.io/legobeat/l7-devenv/nvim:v0.0.6
$ podman pull ghcr.io/legobeat/l7-devenv/auth-proxy:v0.0.6
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.6
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.6
$ podman pull ghcr.io/legobeat/l7-devenv/caddy:latest
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:latest
$ podman pull ghcr.io/legobeat/l7-devenv/nvim:latest
$ podman pull ghcr.io/legobeat/l7-devenv/dnsmasq:auth-proxy
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-bookworm
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:latest
l7-devenv - v0.0.5

Published by legobeat 4 months ago

$ podman pull ghcr.io/legobeat/l7-devenv/nvim:v0.0.5
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.5
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.5
$ podman pull ghcr.io/legobeat/l7-devenv/nvim:latest
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-bookworm
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:latest
l7-devenv - v0.0.4

Published by legobeat 4 months ago

$ podman pull ghcr.io/legobeat/l7-devenv/nvim:v0.0.4
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.4
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.4
$ podman pull ghcr.io/legobeat/l7-devenv/nvim:latest
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-bookworm
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:latest
l7-devenv -

Published by legobeat 4 months ago

$ podman pull ghcr.io/legobeat/l7-devenv/nvim:v0.0.3
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-v0.0.3
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:v0.0.3
$ podman pull ghcr.io/legobeat/l7-devenv/nvim:latest
$ podman pull ghcr.io/legobeat/l7-devenv/node:20-bookworm
$ podman pull ghcr.io/legobeat/l7-devenv/gpg-vault:latest