/vscodium-cde-compose

Containerized Developemnt Environment as in VSCode, but more flexible and automatic for VSCodium

Primary LanguageShellGNU General Public License v3.0GPL-3.0

VSCodium CDE Compose

CDE Logo

"Comfortable like sitting at home, but your home is actually modular and HOOKED to a helicopter" anon.

About

This project is an Abstracted Development Environment that utilizes containerization technology as abstraction layer, thus called for short a CDE, that integrates seamlessly with VSCodium IDE using one of the industry de-facto-standard compose specification compliant software like Docker or Podman to reduce to a minimum time spent on setting up projects on developers machine, and letting possible cross-platform development with minimal amount of dependencies required to be installed on host.

What can it do?

Put simply: projects using this CDE let you develop seamlessly on multiple platforms like Windows, Mac, Linux and reduce all setup process to a constant minimum required amount of work that ususally trickles down to running a single command.

There should be little to no maintainance and entry costs: it's as easy as adding a subtree with git subtree add and performing sometimes git subtree pull to upstream your CDE or using a GitHub Template containing a template project with already seamlessly working software stack with sane choices and defaults (for now only Python).

Afterall, the main advantageous characteristic is that this CDE can be adapted to your own software stack, even choosing programming language and drop-in your custom setup and configuration scripts to shape perfectly your workflow of choice.

Variations

The following software configurations are available for this CDE:

Host Operaring System Execution Previleges Containerization Platform
Linux
Mac
Windows
rootless
rootful
Podman
Docker

Base Image Features & Configuration Options
Debian & Debian-based

Refer to documentation to see what's available

Requirements

  • Internet connection to clone repo and build container image
  • Linux / Mac / Windows (WSL2)
  • VSCodium with Open Remote - SSH extension
  • OpenSSH client (builtin in Windows WSL2, Mac)
  • bash (builtin in Windows WSL2, Mac, almost any Linux distribution)
  • podman and podman-compose or docker

Quick Start

Dependencies Installation

Install dependencies listed previously, here are some official installation instructions and relevant information:

Remark to Linux users:

It's worth checking your distribution repository with your package manager for required packages ignoring official documentation:

  • openssh-client or openssh widely available among distribution repositories, just search for ssh and then install the right one
  • podman-compose is available in Debian, while not mentioned in documentation

Download

Clone this repository to your project directory or download a version under releases and unarchive it there, then navigate inside the newly created directory:

cd <my-project>
git clone https://github.com/wav3m1nd3d/vscodium-cde-compose.git
cd vscodium-cde-compose

or

cd <my-project>
wget -qO- https://github.com/wav3m1nd3d/vscodium-cde-compose/releases/vscodium-cde-compose_<version>.zip | unzip -
cd vscodium-cde-compose

Configure

Configure environment by editing .env file, read more about it here

Setup

Run the following script to bootstrap and build CDE:

./scripts/setup/setup.bash

Start

Start CDE (add -d option to spin up in background)

podman-compose up cde

Connect

Connect to development environment using open-remote-ssh extension

Stop

Stop CDE

podman-compose down cde

Other Useful Material