diff --git a/README.md b/README.md index 4e90fa1..610cbc0 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,50 @@ -# My Personal Dotfiles +# Andrei Jiroh's Personal Dotfiles + -Personal configuration for Linux/macOS stuff. If you're -working at The Pins Team, see [our dotfiles][df-gl]. +This is the main portal to my personal configuration for Linux/macOS stuff. If you're +working at Recap Time Squad (formerly The Pins Team), see [our dotfiles][df-gl] (currently unmaintained and on old namespace). [df-gl]: https://gitlab.com/MadeByThePinsHub/dotfiles ## Getting Started -### Running from +While the clone URLs use GitLab SaaS as the canonical Git repository URL, you can still clone the repository from the following URLs: + +* GitLab self-hosted instances: `https://mau.dev/ajhalili2006/dotfiles` +* SourceHut (official instance): `https://git.sr.ht/~ajhalili2006/dotfiles` (SSH: `git@git.sr.ht:~ajhalili2006/dotfiles) + +To get started, run the bootstrap script which handles the repository cloning/pulling for you and then sets things up for you. ```sh -# configure required variables -export GITLAB_LOGIN=ajhalili2006 -export GITLAB_TOKEN= +# Pro-tip: Install the essientials like Git and Doppler first! +# Using the essientials setup script will handle Homebrewing for you, among other software-related +# chores. Works on Debian-based distros and Alpine Linux. +$(command -v curl>>/dev/null && echo curl -o- || echo wget -q0-) https://ctrl-c.club/~ajhalili2006/bin/essientials-setup-dotfiles.sh -# Run the bootstrap script -$(command -v curl>>/dev/null && echo curl -o- || echo wget -q0-) https://raw.githubusercontent.com/ajhalili2006/dotfiles/main/bootstrap | bash - - -# Done? Don't forget to cleanup as needed. -unset GITLAB_TOKEN GITLAB_LOGIN && history -c -``` - -### With Cloning the Repo - -```sh -# assuming git is installed -git clone https://github.com/ajhalili2006/dotfiles $HOME/.dotfiles -cd $HOME/.dotfiles - -# you may need to export the required variables before running the bootstrap script locally -# you may optionally run the bootstrapper script if you want -GITLAB_LOGIN=AndreiJirohHaliliDev2006 GITLAB_TOKEN= ./bootstrap --flags-over here +# Run the bootstrap script without Doppler +$(command -v curl>>/dev/null && echo curl -o- || echo wget -q0-) https://gitlab.com/ajhalili2006/dotfiles/raw/main/bootstrap | bash - ``` ### Documentation -Available documentation for the on/offboarding processes I do + other tidbits of the bootstrap script can be accessible through [the `docs` directory](./docs). +Available documentation for the on/offboarding processes I do for devices + other tidbits of the bootstrap script can be accessible through [the `docs` directory](./docs) and on [my personal wiki hosted on Miraheze](https://ajhalili2006.miraheze.org/wiki/Dotfiles). + +## License and contributions + +Code is licensed under [the MPL-2.0](LICENSE) license, while docs on my MediaWiki-powered wiki +uses [CC BY-SA 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/legalcode). + +Patches are welcome, but technical support for forks is currently unavailable due to this repository +being used for personal day-to-day use. + +
+ +Deprecated docs stashed here for archival purposes, might be removed later. ## Want to fork me owo? +> This section is outdated and will be revised in the future since I also have other stuff to do behind the scenes. + Follow the checklist below after forking to ensure no references to mine are found. **Remember that your fork, your problem.** It's up to you on how do you customize stuff. You can use [The Pins Team's dotfiles template][template] to start from our template. [template]: https://github.com/MadeByThePinsHub/dotfiles-template @@ -48,3 +54,5 @@ Follow the checklist below after forking to ensure no references to mine are fou * [ ] Edit `bin/fix-wrong-emails#L6-7` to use your email instead of mine. * [ ] Edit `bin/add-ssh-keys#L4` to use your SSH key in `~/.ssh` directory. * [ ] Want to backup your worst secrets AKA SSH and PGP keys (and some Pyrgoram session files?) Use my `bin/init-secrets-dir` script to setup an `secrets` directory. Don't forget to push this into an GitLab private repo. + +
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 100644 index 0000000..f4462b7 --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1,56 @@ +# Contributing to my dotfiles + +## Development + +Usually Andrei Jiroh clone the dotfiles repository in `~/.dotfiles` directory, but feel free +to customize the clone location. The rest of this section contains the TL;DR version of the +contribution process, plus additional information about each parts. + +```sh +## easy path: use Gitpod and GLab CLI ## +xdg-open "https://gitpod.io/#https://gitlab.com/ajhalili2006/dotfiles" +# ssh to the workspace using an owner token - https://www.gitpod.io/docs/ides-and-editors/command-line#access-token-ssh +ssh ajhalili2006-dotfiles-abcdefg123456#ownerToken@ajhalili2006-dotfiles-abcdefg123456.ssh.ws-us62.gitpod.io +# use GLab CLI to fork the repo and configure remotes +glab repo fork --remote=true # assuming GITLAB_TOKEN is set for GitLab SaaS +# do your own homework here and push to your personal branch +git switch -c username/some-descriptive-name-here +nano bootstrap config/bashrc/aliases # or bootstrap config/bashrc/aliases +shellcheck --severity=warning bootstrap config/bashrc/aliases # run the shell linter for issues +git commit --signoff # commit with Signed-off-by trailer for DCO +git push origin username/some-descriptive-name-here # publish your changes before submiting patches +glab mr create -R https://gitlab.com/ajhalili2006/dotfiles -b main # create a merge request + +## the mailing list way: use sourcehut mirror ## +docker run --rm -v $HOME:/home/gildedguy quay.io/ajhalili2006/docker-alpine-env +mkdir ~/git-projects/ajhalili2006 +git clone https://git.sr.ht/~ajhalili2006/dotfiles ~/git-projects/ajhalili2006/dotfiles && cd ~/git-projects/ajhalili2006/dotfiles +# do your own homework here and (optionally) push to your personal branch +git switch -c username/some-descriptive-name-here +nano bootstrap config/bashrc/aliases # or bootstrap config/bashrc/aliases +shellcheck --severity=warning bootstrap config/bashrc/aliases # run the shell linter for issues +git commit --signoff # commit with Signed-off-by trailer for DCO +git remote add username-srht git@git.sr.ht:~username/ajhalili2006-dotfiles-patches && git push username-srht username/some-descriptive-name-here # if it doesn't exist, creates a repo on push +# configure your local copy, per https://git-send-email.io/# +git config sendemail.to "~ajhalili2006/public-inbox@lists.sr.ht" +git config format.subjectprefix "PATCH dotfiles" # or sandbox-dotfiles for sandbox/main branch +``` + +## Submitting patches + +### DCO and CLA + +Recap Time Squad's CLA do not apply in this project, although I might use Eclipse Contributor Agreement to legally codify DCO in case of corporate contributions. + +### Sending patches via email + +If you prefer to send patches via email, please set your local copy of this repository with +the following configuration for `git send-email`: + +```sh +git config sendemail.to "~ajhalili2006/public-inbox@lists.sr.ht" +git config format.subjectprefix "PATCH dotfiles" # or sandbox-dotfiles for sandbox/main branch +``` + +Please note that I'll not accept patches that sent to my personal email address/es instead of +through the public inbox mailing list. diff --git a/docs/onboarding.md b/docs/onboarding.md index b5ba7af..936cd42 100644 --- a/docs/onboarding.md +++ b/docs/onboarding.md @@ -5,17 +5,17 @@ This onboarding page documents how do I bootstrap stuff for an new Linux machine ## Prerequisites * Access to my Bitwarden vault for GitLab PAT AND Tailscale reusable authtoken on an Vaultwarden instance at Railway. Once email has been fixed, probably my phone with 2FA number used for Google OR Authy app and Telegram client of choice. -* An working browser, preferrly Firefox. +* An working browser, preferrly Firefox or Chromium. * An desktop environment preinstalled, in case of Alpine/Arch/Gentoo-based distros, proceed with Xfce4. Unless has atleast 4 GBs of memory on an amd64 machine, install GNOME or KDE instead. ### Pre-flight Check -* Check if the init system is systemd, and if not, check if we can swap init systems. This is required so we can install stuff using `snapd`. Using Flatpak is still being considered as alternative option. -* If you messing up with partitioning, especially Windows might go berserk when resizing, backup everything as much as possible. Ohterwise, we might be f\*\*ked. +* Check if the init system is systemd, and if not, check if we can swap init systems (or at least attempt to install systemd from source). This is required so we can install stuff using `snapd`. Using Flatpak is still being considered as alternative option. +* If you messing up with partitioning, especially Windows might go berserk when resizing, backup everything as much as possible. Ohterwise, we might be fucked. * Check if Bash and/or Git is preinstalled while in live environment. * Remember to note down the root password! You may also need to take down notes of your regular account password too, if sudo is configured. * If you're trying an new distro (Arch, Gentoo, RHEL) or got an ChromeOS preinstalled and enabled devmode and Linux stuff, please install the tools one by one and note it down here in this document. -* Check if that distro either has GitHub CLI from the official package repos (or atleast community maintained ones). Otherwise, maybe opt to building from source or use prebuilt binaries from GitHub Releases. +* Check if that distro either has GitHub CLI, GLab CLI and/or `hut` from the official package repos (or atleast community maintained ones). Otherwise, maybe opt to building from source or use prebuilt binaries from GitHub/GitLab/SourceHut Releases. ## Per-Distro/Platform Docs @@ -74,7 +74,7 @@ you need to `apk add bash@edge git@edge curl@edge coreutils@edge` instead. ### Gitpod? -Currently unsupported yet, but we can setup an meta-workspace with my dotfiles stuff loaded too, in the future, probably. +~~Currently unsupported yet, but we can setup an meta-workspace with my dotfiles stuff loaded too, in the future, probably.~~ This is currently planned to work on since Gitpod already added dotfiles support, but for now the system will symlinking everything from the dotfiles repo. ### WSL 2-specific back pain treatment for Tailscale @@ -97,3 +97,4 @@ sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1; sudo sysctl -w net.ipv6.conf.de ## Optionals * Install Cloudflare tunnel and login. There's Tailscale, but if I don't brothered adding another device to the tailnet, we can setup da API instead. + diff --git a/docs/os-installation/archlinux.md b/docs/os-installation/archlinux.md index 17e8e40..8924408 100644 --- a/docs/os-installation/archlinux.md +++ b/docs/os-installation/archlinux.md @@ -1,5 +1,7 @@ # Bloody Docs for installing Arch Linux +> Wiki version: https://ajhalili2006.miraheze.org/wiki/Onboarding_new_device/Computers/Linux/Arch + ## Afer booting into the hell If you're inside an Virtualbox eenvironment, make sure SSH is enabled and setup port forwarding stuff. Don't forget changing the root password for live @@ -32,11 +34,15 @@ grub-install --target=i386-pc /dev/sda; grub-mkconfig -o /boot/grub/grub.cfg ```sh # Change sda into device name for your target hard drive/SSD -grub-install --target=i386-pc /dev/sda; grub-mkconfig -o /boot/grub/grub.cfg +grub-install --target=x86_64-efi /dev/sda; grub-mkconfig -o /boot/grub/grub.cfg ``` * With Secure Boot: +```sh +# TBD, check the docs! +``` + ## Final Steps * Exit the chroot and reboot. Don't forget to remove the installation media before the reboot.