Introducing Dockside…

Struan Bartlett
NewsNow Labs
Published in
5 min readDec 22, 2021

…an open-source tool for provisioning lightweight access-controlled IDEs, staging environments and sandboxes on local machine, on-premises raw metal or VM, or in the cloud (see dockside.io, view on Github, and try the Live Demo).

Introducing Dockside — Develop in clones of your production environment

Dockside is the latest arrival in a growing breed of browser-based containerised development environments (CIDEs) — software development tools that let dev teams code within development containers.

Browser-based IDEs like Cloud9 have been around for a while, and so has the model of deploying applications within containers. But what’s still relatively novel to many developers are tools that provide them with dedicated containers within which to develop using a browser-based IDE.

The space is beginning to become crowded: Visual Studio Code launched the Remote Containers extension; Gitpod.io, Coder.com and codesandbox.io have been around a few years; this summer, we saw the launch of GitHub Codespaces.

These products all have their uses and their trade-offs. But the benefits of developing within containers are compelling and this is a vertical about to take off.

Why develop in containers?

As Microsoft explains (from Visual Studio Code Remote — Containers):

Whether you deploy to containers or not, containers make a great development environment because you can:

Develop with a consistent, easily reproducible toolchain on the same operating system you deploy to.

Quickly swap between different, separate development environments and safely make updates without worrying about impacting your local machine.

Make it easy for new team members / contributors to get up and running in a consistent development environment.

Try out new technologies or clone a copy of a code base without impacting your local setup.

To this, one should add that developing in containers lets developers:

  • better separate concerns when working on different tasks even within the same repo and development environment.
  • reduce prebuild and setup time when beginning work on tasks.
  • completely eliminate errors caused by differences between development and production environment.
  • do better code reviews, as they can evaluate code when it’s actually running and annotate or amend the code directly.
  • work more easily from anywhere.

Why Dockside?

Dockside brings all the above benefits to your development process, and more.

By provisioning a development container (or devtainer for short) for every task, fork or branch, Dockside allows collaborative software and product development teams to take lean and iterative development and testing to a highly parallelised extreme.

This real-time animation shows how fast it is to launch a devtainer within Dockside

Fast and lean: Provision a devtainer within seconds, and with only a couple of clicks.

Stageable: Stage any devtainer’s services instantly so they can be accessed over HTTPS, privately or on the public internet, whether for review, sign-off or testing, by colleagues, clients or management.

Safe and powerful: Admins can provide power users with full access to underlying system resources and available runtimes, architectures and images, while locking down the types of devtainer that other users can launch, through a fine-grained role-based access control scheme.

Flexible and customisable: Need a custom runtime like Kata Containers, GVisor or Sysbox? Need custom networking access with bespoke firewall rules? Need to develop within non-x86 architectures? No problem! Dockside supports all these today, intends to offer even more flexibility in future, such as a choice of browser-based IDE, and you can of course roll your own.

Low footprint: Dockside’s resource requirements are mimimal. It is proven to support large numbers of devtainers on relatively small servers, VMs or cloud instances.

Commercial-friendly open-source licence: Free and open-source under the Apache 2.0 licence: so suitable for use in bespoke commercial environments and can be self-hosted locally, on-prem or in the cloud.

Trivial install: Using one line of script, anywhere you run Docker.

Built by NewsNow Labs, the R&D arm of top UK news website NewsNow.co.uk, to serve its software and web development, testing and staging needs, Dockside has been integral to the operation of the firm’s dev and product teams now for many years.

“I can’t imagine how I ever got on without this at other companies. Not having to worry about setting up a local environment, and being able to access the same IDE with the same configuration from any computer is ideal for remote working.”

— NewsNow Developer

Dockside currently ships with out-of-the-box support for the incredible open-source Eclipse Theia IDE, which is powerful and VS Code-compatible (although support for alternative IDEs including VS Code itself is on the roadmap).

How can I learn more?

  1. The fastest way to experience Dockside is to try the Live Demo.
  2. For more information about Dockside, check out the Dockside.io homepage.
  3. If you have Docker, try installing Dockside locally.
mkdir -p ~/.dockside && \
docker run -it --name dockside \
-v ~/.dockside:/data \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 443:443 -p 80:80 \
--security-opt=apparmor=unconfined \
newsnowlabs/dockside --ssl-builtin

Then:

  • Navigate to https://www.local.dockside.dev/ in your browser.
  • Sign in as admin with the auto-generated password that is output to the terminal.
  • Follow the on-screen instruction to launch your first devtainer!

4. Watch the video walkthrough:

Conclusion

Coding in development containers from your browser offers huge benefits over coding on local machine.

You can work faster and more effectively as an individual, more collaboratively as a team, and more transparently with your managers, stakeholders and clients.

And crucially, thanks to developing in a clone of your production environments, you can write better code that deploys with fewer bugs.

Dockside is a stable and proven addition to the growing stable of software tools for developing in containers, and is a great fit particularly for individual developers and small teams that prefer a free and self-hosted option or any of the specific features and extensibility that Dockside offers.

Dockside can be found at https://github.com/newsnowlabs/dockside.

Struan Bartlett is the founding developer of Dockside. He is also founder, CEO, CTO and Editor-in-Chief of NewsNow.co.uk, the independent news discovery platform, now in its 25th year.

--

--

Struan Bartlett
NewsNow Labs

Founder, CEO, of NewsNow: the UK’s largest independent news discovery platform. Founding Developer, Dockside.io