Cheat Sheet


| 385 words Last updated:

goto: [Hurd Cheat Sheet (in a separated page)](/notes/hurd/cheat-sheet)

GRUB

Update GRUB after grub package is updated. Replace /boot with your mount point of the EFI partition in --efi-directory=/boot. Replace GRUB with your bootloader id in --bootloader-id=GRUB.

sh
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg

(Private) My Service Infrastructure Management

All commands should be run at the project root path.

Install Deno

Script from https://docs.deno.com/runtime/getting_started/installation/

sh
curl -fsSL https://deno.land/install.sh | sh

Add Git Server User / Set Password

sh
docker run -it --rm -v "./data/git/user-info:/user-info" httpd htpasswd /user-info [username]

Certbot

If run directly, the command is certbot [command] [challenge] [domains] [test] [misc].

Certbot can run outside the server container by using certbot docker image. The command is docker run -it --rm --name certbot -v "./data/certbot/certs:/etc/letsencrypt" -v "./data/certbot/data:/var/lib/letsencrypt" [docker-extra] certbot/certbot [command] [challenge] [domains] [test] [misc]

partforsegment
docker-extrachallenge standalone-p "0.0.0.0:80:80"
docker-extrachallenge nginx-v "./data/certbot/webroot:/var/www/certbot"
commandcreate/expand/shrinkcertonly
commandrenewrenew
challengestandalone--standalone
challengenginx--webroot -w /var/www/certbot
domains*[-d [domain]]...
test*--test-cert --dry-run
miscagree tos--agree-tos
misccert name--cert-name [name]
miscemail--email [email]

For example, test create/expand/shrink with certbot docker image and standalone server:

sh
docker run -it --rm --name certbot \
  -v "./data/certbot/certs:/etc/letsencrypt" \
  -v "./data/certbot/data:/var/lib/letsencrypt" \
  -p "0.0.0.0:80:80" \
  certbot/certbot \
  certonly \
  --standalone \
  --cert-name crupest.life \
  -d crupest.life -d mail.crupest.life \
  --test-cert --dry-run

Another example, test create/expand/shrink with a web root:

sh
certbot certonly --webroot -w /var/www/certbot \
  --cert-name crupest.life -d crupest.life -d mail.crupest.life \
  --test-cert --dry-run

System Setup

Debian setup

Setup SSL Certificates and Curl

sh
apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings

Docker Setup

Uninstall Packages Provided by Stock Repo

bash
for pkg in docker.io docker-doc docker-compose \
    podman-docker containerd runc; do
  apt-get remove $pkg;
done

Install Certs From Docker

Remember to setup ssl and curl first.

sh
curl -fsSL https://download.docker.com/linux/debian/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

Add Docker Repos

bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
  https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  tee /etc/apt/sources.list.d/docker.list > /dev/null

Install Docker Packages

sh
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin

Start And Enable Docker

Remember to log out and log back to let user group change take effects.

sh
systemctl enable docker
systemctl start docker
groupadd -f docker
usermod -aG docker $USER