How to setup a fresh Arch 🢁30

  • primer paso armar un pendrive booteable, yo vengo usando Ventoy🡭 hace bastante en un pendrive de 32GB y funciona muy bien. Tengo un montón de imágenes en un mismo lugar, con la ventaja de que no tengo que andar formateando el pendrive.
  • una vez que booteamos el instalador, lo primero es configurar wifi en caso de no tener conexión por cable o estar en una notebook.
  • iwctl es el comando para abrir la librería.
  • station wlan0 show
  • station wlan0 scan
  • station wlan0 connect <SSID> y ahí nos va a pedir el password. Una vez que nos conectamos, hacemos un exit para volver al menu principal.
  • segundo podemos agregar las key gpg de archlinux, esto depende de la imagen que te bajes, puede ser que ya las tengas.
  • ejecutar pacman-key --init y luego pacman-key --populate archlinux
  • una vez que termina el proceso, podemos comenzar con la instalación. Para esto vamos a usar la herramienta archinstall
  • esto nos va abrir un instalador, donde nos va a permitir configurar distintas cosas. Desde el disco, idioma, teclado, paquetes, kernel, usuarios y red. Si bien el instalador tiene seleccionadas opciones por default, es acá donde podemos hacer los cambios que queramos.
  • en mi caso la configuración que utilizo es la siguiente:
    • Disco sin encriptar en caso de que sea mi compu de escritorio
    • Disco encriptado en caso de que sea una notebook
    • En cualquier caso el directorio home en la misma partición que el sistema (para después no tener que andar luchando con Docker y con que falta espacio para instalar una imagen)
    • Perfil con desktop, yo suelo usar {{KDE}} y {{Plasma}}, pero también estoy probando Awesome WM. Mi compu tiene una placa de video ATI Radeon RX460 para esa, instalo los drivers AMDGPU Open Source.
    • Audio library, uso {{pipewire}}
    • Root password: esto lo podemos dejar sin password y que no pueda accederse. Sería como un paso mas de {{hardening}} para el sistema
    • Librerías adicionales: suelo instalar git pero podemos elegir las que querramos.
    • NetworkManager como gestor de red y de interfaces.
    • Optional repositories: agregar multilib
      Después de configurar toda la instalación, le damos a install y dejamos que instale todo.

Postinstalls

  • configurar pacman editando el archivo /etc/pacman.conf
    • agregar colores al output, descomentar la configuración color
    • configurar descarga en paralelo, ParallelDownloads = 7
  • configurar cleanup automático de cache de pacman cada semana
    • sudo pacman -S pacman-contrib
    • sudo systemctl enable paccache.timer
  • configurar keybase con pgp key

Paquetes

  • firefox-developer-edition
    • firefox-profile-switcher-connector
  • git
  • curl
  • openssh
  • {{how-to-install-trizen}}
  • obsidian md
  • neofetch
  • phpstorm-jre
  • docker y docker-compose {{how-to-install-docker-on-archlinux}}
  • telegram-desktop
  • baloo-widgets
  • dolphin-plugins
  • filelight
  • ffmpegthumbs
  • kde-inotify-survey
  • bashtop
  • ctop
  • hugo
  • xpipe
  • pinta - image editor
  • qflipper - if necessary
  • code
  • i7z
  • tcpdump
  • dnsutils
  • bc
  • unrar
  • ark

Installing ZSH and plugins.

Install zsh and oh-my-zsh-git

trizen -S zsh oh-my-zsh-git

Copy and clone .dotfiles

En {{how-my-dotfiles-work}} explico que herramientas uso y como clonar el repo e instalar los dotfiles.

Install Tailscale

curl -fsSL https://tailscale.com/install.sh | sh

Add subnets

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

Advertise routes

sudo tailscale up --advertise-routes=192.168.0.0/24,192.168.1.0/24 --advertise-exit-node

Discos HDD

Es necesario configurar /etc/fstab para que los discos que conectemos por usb sean creados en el SO con permisos de escritura.

Development

Estos son los paquetes relacionados

Tools for system administration

  • portainer
  • adminer
  • ctop

Installed packages

  • vscode
  • postman
  • dbeaver
  • docker
  • portainer
  • dolphin
  • firefox
  • chrome
  • steam
  • neofetch
  • htop
  • ranger
  • cmatrix
  • spotify
  • obsidian
  • phpstorm