Coder Social home page Coder Social logo

box-bayou's Introduction

box-bayou

This is my take on a Toolbox / Distrobox container based on the ideas of ublue-os/boxkit.

The goal of this project is to have a companion distrobox container for my custom ublue-bayou Fedora Silverblue setup. It's my default terminal for daily usage.

blackbox

Tools

The container is based on the latest Alpine image from the Toolbx Community Images and and is spruced up with the following configuration.

Installed in the container

The following tools are shipped with the container:

  • chezmoi for dotfile management
  • cosign to sign OCI containers (and other artifacts) using Sigstore
  • direnv to unclutter your .profile
  • helix as post-modern text editor
  • jq JSON command-line processor
  • neofetch eye candy system information
  • pipx to run python applications in isolated environments
  • poetry for python venv management
  • python-3 to run python applications
  • starship cross-shell prompt for that <3
  • yq YAML command-line processor
  • zsh as the default shell

Mapped from Host OS

The following tools are symlinked from the host system:

Usage

Creation

With Distrobox

distrobox create -i ghcr.io/tepene/box-bayou:latest -n box-bayou
distrobox enter box-bayou

With Toolbox

toolbox create -i ghcr.io/tepene/box-bayou:latest -c box-bayou
toolbox enter box-bayou

Initial Configuration

Once the box is running you can set the initial configuration with the setup.sh script.

You have the following options:

glitter

Use this option for all glitter and sparkle.

/opt/scripts/setup.sh glitter

This will set the needed file permissions for the /opt directory, change the default shell to ZSH and configure ZSH and Starship with an initial configuration. And just to be sure, if you already have a ZSH and / or Starship configuration, the script will create a backup of the files ~/.zshrc and ~/.config/starship.toml. (better safe than sorry...)

boring

Use this option if you just want to set ZSH as the default shell but no default configuration.

/opt/scripts/setup.sh boring

This will set the needed file permissions for the /opt directory and change the default shell to ZSH.

preserve

Use this option if you already have a ZSH and / or Starship configuration which you don't want to mess up.

/opt/scripts/setup.sh preserve

This will only set the needed file permissions for the /opt directory.

Verification

These images are signed with sisgstore's cosign. You can verify the signature by downloading the cosign.pub key from this repo and running the following command:

cosign verify --key cosign.pub ghcr.io/tepene/box-bayou:latest

If you're forking this repo you should read the docs on keeping secrets in github. You need to generate a new keypair with cosign. The public key can be in your public repo (your users need it to check the signatures), and you can paste the private key in Settings -> Secrets -> Actions.

box-bayou's People

Contributors

dependabot[bot] avatar github-actions[bot] avatar tepene avatar

Watchers

 avatar

box-bayou's Issues

permissions for /opt are very loose

permissions for /opt are very loose -> chmod 777 -R /opt
this is a workaround since every user should be able to run pipx install ... without sudo. Maybe there's a better way to allow users running the box to write to the /opt/ folder without being root.

can't deploy from ghcr.io

distrobox create -i ghcr.io/tepene/ublue-box -n ublue-box
Image ghcr.io/tepene/ublue-box not found.
Do you want to pull the image now? [Y/n]: 
Trying to pull ghcr.io/tepene/ublue-box:latest...
Error: initializing source docker://ghcr.io/tepene/ublue-box:latest: Requesting bearer token: invalid status code from registry 403 (Forbidden)

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.