Skip to main content

Install dot files and packages, including a base mode with sensible defaults to run on most computers running Debian based distros or macOS.

Project description

💻 onboardme

Get your daily driver just the way you like it, from dot files installation, to package installation, to other little features you didn't know you needed, onboardme intends to save you time with initializing and upgrading your environment.

Features

Keep your Dot Files Up To Date Across multiple systems

onboardme can manage your dot files using a git by turning your home directory into a repo.

We provide default dot files, so you don't have to manage them
  • The default dot files are open source, and the maintainers use these themselves
  • They cover a lot of common apps/tools you probably want anyway
  • They have consistent colorschemes accross different CLI/TUI programs 😃
  • They set all the helpful BASH aliases you could need (zsh support coming soon)

Package management

We install and upgrade libraries and apps using common package managers.

onboardme provides a currated list of default packages
  • checkout the default packages
  • supports brew, apt, snap, flatpak, and pip (and you can add your own 😄)
  • group together packages for different kinds of environments
    • onboardme provides default package groups:
      • default (no desktop GUI apps installed by default, always installed)
      • macOS (default apps for macOS only apps, always installed on macOS)
      • gui (default GUI apps for Linux desktops, optionally installed)
      • devops (devops related tooling, optionally installed)

NeoVim Plugin Installtion and Updates

onboardme keeps your neovim plugins installed and up to date with lazy.nvim under the hood.

Why no vim though?

If you haven't already made the switch from Vim to NeoVim, you can try out NeoVim today with onboardme :D We used to support both neovim and vim, but these days none of the primary developers of this repo use pure vim anymore, so we can't ensure it's up to standards. All of your knowledge from vim is still helpful in neovim though, and we highly recommend switching as neovim has a lot more features and a very active plugin community :) NeoVim maintains a guide on how to switch from vim here.

Easy yaml config files

Docker image for an on-the-go dev workspace

The docker image is built daily or on push to main. The base image is debian:bookworm, but we will rollout support for Ubuntu down the line :) See the docker section for more info!

Other useful (but optional) configurations

  • Enable touchID for sudo on macOS
  • Add your user to the docker group
  • Install nerdfonts (defaults to Hack and Symbols Only)
  • Set capslock to control (🚧 in the works)

Screenshots

Example of onboardme --help

screenshot of full output of onboardme --help

Examples of the terminal after onboardme runs

neovim

screenshot of neovim with colors

Powerline and ls

screenshot of powerline and lsd

Powerline with git

screenshot of powerline and git colors

Image and colors

screenshot of color samples and image of dog using a computer using sixel

Python virtual env in powerline and cat

screenshot of using bat and python virtual env in powerline

Quick Start

Installation

The quickest way to get started on a fresh macOS or distrubtion of Debian (including Ubuntu) is:

# this will download setup.sh to your current directory and run it
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/jessebot/onboardme/main/setup.sh)"

# this will display the help text for the onboardme cli
onboardme --help

If you've already got brew and Python3.11 on your machine, you can just do:

# should also work with pipx, if you'd like to use that instead
pip install --user onboardme

You can read more in depth at the Getting Started Docs 💙! There's also more [docs] on basically every program that onboardme touches.

Docker

To run the image locally with onboardme already run using default settings:

# this image is built daily and has already run onboardme with the default settings
docker run jessebot/onboardme:latest /bin/bash

To run the image locally from scratch:

# onbaordme is installed but has _not_ been run. this is best if you have your own dot files
docker run jessebot/onboardme:no-install /bin/bash

Upgrades

If you're on python 3.11, you should be able to do:

pip3.11 install --upgrade onboardme

Configuration

onboardme has lots of CLI options, but you can also use config files. You have to create these files for the time being.

Config files are in ~/.config/onboardme/ (will use $XDG_CONFIG_HOME, if defined). Examples below:

~/.config/onboardme/config.yml
log:
  # Full path to a file you'd like to log to. Creates file if it doesn't exist
  file: ""
  # what level of logs to output (DEBUG, INFO, WARN, ERROR)
  level: "INFO"

# steps refer to a specific function in the list of functions we run
steps:
  # these are mac specific steps
  Darwin:
    # clones dot files into home dir/git fetches updates for dot files
    - dot_files
    # install packages
    - packages
    # adds nerdfonts
    - font_setup
    # runs :Lazy sync to install all your plugins
    - neovim_setup
    # sets up touchID for sudo
    - sudo_setup
  # these are linux specific steps
  Linux:
    - dot_files
    - packages
    - font_setup
    - neovim_setup
    # add your user to the docker group
    - group_setup

dot_files:
  # personal git repo URL for your dot files, defaults to jessebot/dot_files
  git_url: "https://github.com/jessebot/dot_files.git"
  # the branch to use for the git repo above, defaults to main
  git_branch: "main"
  # !CAREFUL: runs a `git reset --hard`, which will overwite/delete local files in ~ that
  # conflict with the above defined git repo url and branch. You should run
  # `onboardme -s dot_files` to get the files that would be overwritten
  overwrite: false

# basic package config
package:
  # Remove any of the below pkg managers to only run the remaining pkg managers
  managers:
    # these are macOS specific steps
    Darwin:
      - brew
      - pip3.11
    # these are linux specific steps
    Linux:
      - brew
      - pip3.11
      - apt
      - snap
      - flatpak
  # list of extra existing packages groups to install
  groups:
    - default
    # uncomment these to add them as default installed package groups
    # - gui
    # - gaming
    # - devops

Under the Hood

Made and tested for these operating systems:

Tested on Ventura with an M1 and older generation Tested only on Debian Bookworm Tested only on ubuntu servers

And optomized for the following programs:

made-with-neovim made-with-python made-with-bash made-with-powerline

Built using these great tools:

rich python library logo with with yellow snake nerd-fonts: Iconic font aggregator, collection, and patcher

Status

Still not production ready, but reasonably stable :)

Please report 🐛 in the GitHub issues, and we will collect them, and release them back into the wild, because we are vegan and nice. (Kidding, we will help! 😌)

We love contributors! Feel free to open a pull request, and we will review it asap! :)

:star: If you like this project, please star it to help us keep motivated :3

Contributors

jessebot
JesseBot
cloudymax
Max!

Shameless plugs for other projects

Get running on a machine using a bootable USB stick with pxeless.

Get started with virtual machines and QEMU with scrap metal.

Get started with testing kubernetes locally, even on metal with smol k8s lab.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onboardme-1.1.0.tar.gz (39.2 kB view hashes)

Uploaded Source

Built Distribution

onboardme-1.1.0-py3-none-any.whl (40.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page