Giter Site home page Giter Site logo

tsirysndr / base-workspace Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 1.0 39 KB

A reproducible dev workspace, built with docker, nix, pkgx, homebrew, vscode & terraform ๐Ÿง‘โ€๐Ÿ’ปโœจ

License: MIT License

Dockerfile 70.02% HCL 29.98%
devbox development-environment devenv docker flox nix pkgx terraform vscode homebrew

base-workspace's Introduction

Base Workspace ๐Ÿง‘โ€๐Ÿ’ป

This is my base workspace for all my projects. It contains a portable docker environment with vscode tunnels already configured, provisioned using terraform.

Made with VHS

๐Ÿš€ Quickstart

Create a new workspace using the pocketenv command line tool:

pocketenv init -t tsirysndr/base-workspace
pocketenv up

Or using terraform:

git clone https://github.com/tsirysndr/base-workspace.git
cd base-workspace
terraform init
terraform apply

A new Docker container will be created with the name base-workspace with pkgx, oh-my-posh, atuin and vscode server installed.

To connect to the environment, run:

docker logs base-workspace

and follow the vscode tunnel instructions.

You can also enter to the environment using:

docker exec -it base-workspace bash

โœจ Bonus

oh-my-posh and atuin are already configured in the environment.

๐Ÿš Environments

Name Description
devbox devbox environment with vscode tunnels configured.
devenv devenv environment with vscode tunnels configured.
flox flox environment with vscode tunnels configured.
hombrew homebrew environment with vscode tunnels configured.
nix nix environment with vscode tunnels configured.
pkgx pkgx environment with vscode tunnels configured.
default base environment with vscode tunnels configured.

โš™๏ธ Inputs

Name Description Type Default
context Docker build context to use string null
hostname Hostname to use string null
image Docker image to use, required if context is not set string ghcr.io/pocketenv-io/pkgx:main
packages Packages to install list(string) []
user User to create string coder
volumes Volumes to mount map(string) { base-workspace = "/home/coder" }
workspace_name Name of the workspace string base-workspace

๐Ÿ“ฆ Outputs

Name Description Type
container_id Docker container id string

๐Ÿ“š Examples

devbox.tfvars

workspace_name = "devbox-workspace"

user = "coder"

context = "./devbox"

volumes = {
  devbox-workspace = "/home/coder"
  devbox-nix = "/nix"
}

devenv.tfvars

workspace_name = "devenv-workspace"

user = "coder"

context = "./devenv"

volumes = {
  devenv-workspace = "/home/coder"
  devenv-nix = "/nix"
}

flox.tfvars

workspace_name = "flox-workspace"

user = "coder"

context = "./flox"

volumes = {
  flox-workspace = "/home/coder"
  flox-nix = "/nix"
}

homebrew.tfvars

workspace_name = "brew-workspace"

packages = [
  "jq",
  "gh"
]

user = "coder"

context = "./homebrew"

volumes = {
  brew-workspace = "/home/coder"
  linuxbrew = "/home/linuxbrew/.linuxbrew"
}

pkgx.tfvars

workspace_name = "pkgx-workspace"

packages = [
  "jq",
  "gh"
]

user = "coder"

context = "./pkgx"

volumes = {
  pkgx-workspace = "/home/coder"
}

๐Ÿ“ License

This project is licensed under the MIT License.

base-workspace's People

Contributors

tsirysndr avatar

Stargazers

 avatar Kaznarah A. Ph avatar RAHARINALAMANGA Rovanirina Kanto avatar Shiro Yukami avatar Ratiarivelo Nekena Rayane avatar  avatar

Watchers

 avatar

Forkers

shiro-cha

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.