Skip to content

Commit

Permalink
Move global brewfile to packages yml (#84)
Browse files Browse the repository at this point in the history
* fix duplicate help text Choices

* moving away from brewfiles and adding a font step for macOS

* ticking up version and removing poetry from brew, since it's in pip3.11

* fix up docs a bit, and add checking for local packages.yml for user

* fix more 'media' to be 'gui' and update help and docs

* fixed headings to show font installation on mac again

* fix typos in help text
  • Loading branch information
jessebot authored Nov 17, 2022
1 parent ead8895 commit 0bb08ee
Show file tree
Hide file tree
Showing 13 changed files with 386 additions and 503 deletions.
122 changes: 13 additions & 109 deletions docs/onboardme/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ Those defaults can be altered per machine by creating a config file like:
Darwin:
- dot_files
- packages
- font_setup
- vim_setup
- neovim_setup
# these are linux specific steps
Expand Down Expand Up @@ -128,110 +129,10 @@ Those defaults can be altered per machine by creating a config file like:
</details>
We also use a few package files, namely `packages.yml` and a couple of Brewfiles.

<details>
<summary>`~/.config/onboardme/packages.yml`</summary>

```yaml
---
apt:
emoji: "🙃"
commands:
list: "apt list --installed"
install: "sudo apt-get install -y "
update: "sudo apt-get update -y"
upgrade: "sudo apt-get upgrade -y"
packages:
default:
- terminator
- openssl
- sysstat
- silversearcher-ag
# this should let you use the a yubikey for auth
- libpam-yubico
- finger
- ssh
# - nextcloud-desktop
- screen
- youtube-dl
- bash-completion
# networking
- iptables
- gufw
- net-tools
# package managers installing package managers... this is terrible.
- snapd
- flatpak
- gnome-software-plugin-flatpak
# cat images in the terminal :) works in tmux
- catimg
# this lets you ls images as thumbnails, which is helpful sometimes
- imagemagick
# pretty syntaxhighlighted cat files with git diff support
- batcat
# print a very pretty pallete to see all the colors the terminal can render
- colortest
gaming:
- lutris
- winehq-staging
- steam
# to format disks to exFAT; FAT is too thin for modern windows 10 ISOs
# - exfat-utils
flatpak:
emoji: "🫓 "
commands:
setup: "sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo"
list: "flatpak list --columns=application"
install: "sudo flatpak install -y flathub "
packages:
default:
- "org.freedesktop.Platform/x86_64/21.08"
# youtube alternative
- io.freetubeapp.FreeTube
# password manager
- com.bitwarden.desktop
snap:
emoji: "🫰 "
commands:
list: "snap list"
install: "sudo snap install "
packages:
default:
- core
# rss feed reader
- fluent-reader
# screen debugger/sharing tool for android
- scrcpy
# most of this is actually for powerline, my shell prompt
pip3.11:
emoji: "🐍"
commands:
list: "pip3.11 list"
install: "pip3.11 install --upgrade "
packages:
default:
# this is for python development
- pip
- build
- twine
- autoimport
# this is all powerline
- powerline-status
- powerline-gitstatus
- powerline-kubernetes
# for the internal ip address powerline shell prompt
- netifaces
# supposed to work with powerline for spotify info
- dbus
# this does some magic with imports when developing
```

</details>

We also use a package file called
[`packages.yml`](https://github.com/jessebot/onboardme/blob/main/onboardme/config/packages.yml)
which you can also place in your `~/.config/onboardme` directory, to take
precedence over our defaults.

## Config Sections and Explanations
### Steps
Expand All @@ -241,6 +142,9 @@ configured for both macOS and Linux seperately. These steps include:
- setting up dot files in your home directory (.bashrc, .vimrc, etc)
- setting up vim (installing vim-plug and vim plugins)
- managing packages using package managers (brew, pip3.11, apt, snap, flatpak)
- installing fonts
- setting up basic TUI IDEs, vim/neovim
- setting up groups

They can be configured via the `steps` parameter in the `config.yml` above,
or via the the cli like:
Expand Down Expand Up @@ -301,15 +205,15 @@ For Linux, we also include: `apt`, `snap`, and `flatpak`

See the examples below:

#### Install the "default" and "media" package groups
#### Install the "default" and "gui" package groups
This would install the default packages for the basic cli experience and a
slim ide PLUS tools for media, like vlc.
slim ide PLUS GUI tools, like vlc and freetube.

##### `onboardme` cli

```bash
# can also be: onboardme -g default -g media
onboardme --pkg_groups default --pkg_groups media
# can also be: onboardme -g default -g gui
onboardme --pkg_groups default --pkg_groups gui
```

##### `config.yml`
Expand All @@ -318,7 +222,7 @@ onboardme --pkg_groups default --pkg_groups media
package:
groups:
- default
- media
- gui
```

#### _Only_ install the "devops" package group for _only_ the `brew` package manager
Expand Down
68 changes: 33 additions & 35 deletions docs/onboardme/onboardme.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,45 +13,39 @@ This is [a project](https://github.com/jessebot/onboardme) to store config files

<img src='https://raw.githubusercontent.com/jessebot/onboardme/main/docs/onboardme/screenshots/terminal_screenshot.png' width='850' alt='screenshot of terminal after running onboardme. includes colortest-256, powerline prompt, icons for files in ls output, and syntax highlighting examples with cat command.'>

Looking for a project to get a fresh OS entirely, on a machine that has no OS? Check out [pxeless](https://github.com/cloudymax/pxeless).

## Under the hood
🚧 Under construction 🚧

| Step | Config Location in repo | OS |
|:----------------------------------------------|:--------------------------------------------------|:------------:|
| Git fetch dot files | n/a: fetched from a configured git repo | macOS/Debian |
| Installs cross-OS brew packages | n/a: installs `.Brewfile` from configured git repo| macOS/Debian |
| Installs brew packages | `./onboardme/config/brew/Brewfile_{OS}` | macOS/Debian |
| Installs pip3.11, apt, snap, flatpak packages | `./onboardme/config/packages.yml` | Debian |
| (OPTIONAL) Installs gaming related packages. | `./onboardme/config/packages.yml` | Debian |
| Installs fonts | n/a | macOS/Debian |
| Installs vim-plug + vim plugins | n/a: plugins fetched from a configured git repo | macOS/Debian |
| Installs packer.nvm + neovim plugins | n/a: plugins fetched from a configured git repo | macOS/Debian |
| Configures iptables (see note) | `./onbaordme/config` | Debian |
| Adds user to the docker group | n/a | Debian |

*iptables note: to block traffic on most ports except for HTTPS as well as ICMP/SSH for a single IP*

| Step | Config Location in repo | OS |
|--------------------------------------|------------------------------------------|---------------|
| Git fetch dot files | n/a: fetched from a configured git repo | macOS/Debian |
| Installs apps using package managers | `./onboardme/config/packages.yml` | Debian, macOS |
| Installs OPTIONAL apps | `./onboardme/config/packages.yml` | Debian |
| Installs fonts | n/a | macOS/Debian |
| Installs vim-plug + vim plugins | plugins fetched from configured git repo | macOS/Debian |
| Installs packer.nvm + neovim plugins | plugins fetched from configured git repo | macOS/Debian |
| Adds user to the docker group | n/a | Debian |


### Current Ecoscape of Personal Tech

These are all Linux Desktop and macOS applications I use.
OnBoardMe doesn't officially support phones yet, but for what I use on my phone, check out my [doc](/onboardme/os/android).

| Category | App | Replaces |
|:-----------------------|:------------------------------------|:----------------------------------|
| Backups - local/remote | Restic to minio and b2 | GDrive, iCloud, S3 |
| Web Browser | Firefox, w3m (terminal only) | Chrome/Safari/Edge |
| Email Client | Thunderbird + Protonmail + Bridge for Linux/MacOS | Gmail |
| IDE | Vim + Plugins, NeoVim + Plugins | Vscode/Pycharm etc |
| Document Editor | LibreOffice | Microsoft Word, Google Docs |
| Launcher | Undecided | Alfred |
| Photo/file Storage | NextCloud Files/Photos (testing) | Google Photos/Drive |
| Passwords | Bitwarden | LastPass, Apple/Google |
| News - RSS | Fluent Reader | Facebook/Twitter/news/brand feeds |
| Video | FreeTube, Peertube | YouTube |
| Antivirus | ClamAV | MalwareBytes |
| Firewall | Lulu/iptables | ??? |
These are all Linux Desktop and macOS applications we use.
OnBoardMe doesn't officially support phones yet, but for what I, Jesse,
use on my phone, check out my [doc](/onboardme/os/android).

| Category | App | Replaces |
|:-----------------------|:---------------------------------|:----------------------------------|
| Backups - local/remote | Restic to minio and b2 | GDrive, iCloud, S3 |
| Web Browser | Firefox, w3m (terminal only) | Chrome/Safari/Edge |
| Email Client | Thunderbird, Protonmail + Bridge | Gmail |
| IDE | Vim/NeoVim + Plugins | Vscode/Pycharm etc |
| Document Editor | LibreOffice | Microsoft Word, Google Docs |
| Launcher | Cerebro | Alfred |
| Photo/file Storage | NextCloud Files/Photos (testing) | Google Photos/Drive |
| Passwords | Bitwarden | LastPass, Apple/Google |
| News - RSS | Fluent Reader | Facebook/Twitter/news/brand feeds |
| Video | FreeTube | YouTube |
| Antivirus | ClamAV | MalwareBytes |
| Firewall | Lulu/iptables | ??? |


## Important Notes on Ethics
Expand All @@ -72,3 +66,7 @@ That same RFC also references a few tools you can use to fix your current enviro

### Tips
Contact your local datacenters and see if they offer an object storage service, because they might, and it could be really cheap. Don't give your money to AWS, Microsoft, or Google if you don't absolutely have to.

Looking for a project to get a fresh OS entirely, on a machine that has no OS?
Check out [pxeless](https://github.com/cloudymax/pxeless).
It works great in combination with onboardme :)
Loading

0 comments on commit 0bb08ee

Please sign in to comment.