===== Ubuntu/Debian Packages =====
This is partly a list of the common packages I install on Ubuntu (because I forget odd ones all the time, or can't remember the exact package name), and partly config relating to the common packages I use.
==== msmtp-mta ====
A light SMTP MTA, providing reliable mail delivery to get mail off the box. Most light-weight solutions are "one-shot", so any mail sent while the network is down is lost, msmtp-mta does not have this problem. Also very handy for routing cron mail somewhere useful instead of to the local user's "mailbox"
/etc/msmtprc:
account deskpotato
host mail.deskpotato.co.uk
from hostname@deskpotato.co.uk
syslog on
auto_from on
maildomain hostname.deskpotato.co.uk
account default : deskpotato
aliases /etc/aliases
/etc/aliases: default: admin@deskpotato.co.uk
==== smartmontools ====
Watch local disks for signs of impending failure.
Edit /etc/smartd.conf to send the e-mails somewhere useful.
Default: ''DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner''
Forward E-mails: ''DEVICESCAN -d removable -n standby -m admin@deskpotato.co.uk -M exec /usr/share/smartmontools/smartd-runner''
==== openntpd ====
NTP daemon, in my experience much more capable than the default one implemented by systemd. The default systemd NTP daemon will conflict, apt should suggest the correct replacement.
On a desktop/laptop/any system that generally isn't on 24x7 edit /etc/default/openntpd to set the clock on boot-up even if it's quite far out:
Default: ''DAEMON_OPTS="-f /etc/openntpd/ntpd.conf"''
Desktops/Laptops: ''DAEMON_OPTS="-f /etc/openntpd/ntpd.conf -s"''
If you have your own NTP server, edit /etc/openntpd/ntpd.conf:
Default:
servers 0.debian.pool.ntp.org
servers 1.debian.pool.ntp.org
servers 2.debian.pool.ntp.org
servers 3.debian.pool.ntp.org
Local NTP Server: ''server ntp.deskpotato.co.uk''
The ''-s'' option has been deprecated in recent releases, if you want the same behaviour now you need to set at least one of your servers as ''trusted'', e.g.:
''server ntp.deskpotato.co.uk trusted''
==== openssh-server ====
Also can be installed at system install time by selecting the "SSH Server" role during install. Note that root is prohibited from logging in with a password by default, even if you set a root password.
==== screen / tmux ====
screen creates a virtual terminal that is not linked to anything, so you can attach/detach without interrupting running processes, very handy if your SSH session falls over mid-upgrade. tmux is like screen with even more features, like multiple sessions in one window, window resizing and all sorts of other nonsense.
Command key:
* screen ''Ctrl-a''
* tmux ''Ctrl-b''
* This means it is possible to nest one inside the other as the command keys don't overlap.
Attach to a running session:
* ''screen -r''
* ''tmux attach''
* There are many other subtleties not covered here, check out the man pages.
==== autofs ====
Super handy for network mounts in a CLI environment (works in GUIs too but there are other tools available if you prefer the point and click method). It auto-mounts the folder when you (or any program) access it, and un-mounts it after you've finished using it. It can dynamically make all visible shares on the network available if you can tell it how to find them, but I prefer to use it statically.
/etc/auto.master: ''/- auto.direct --timeout=60 --ghost''
/etc/auto.direct:
/srv/nfs -fstype=nfs4 nfs:/srv/nfs
/srv/smb -fstype=cifs ://smb/share
For Samba shares also install ''cifs-utils''
==== viewnior ====
I highly prefer this image viewer to the Ubuntu default, Ristretto(?).
==== qpdfview ====
Also highly preferred over the default Ubuntu PDF viewer, Atril(?).
==== sonata / mpd ====
Bringing the client/server model to music! Yes it sounds needlessly complex, but it's also very useful like when you have a fullscreen game on your desktop that really doesn't play nice with alt-tab and you want to change the music. I also have it installed on my MythTV server to play music without a screen on (MythTV points at the HDMI which connects to the TV, mpd points at the audio jack which connects to the stereo). There is also an Android client called M.A.L.P. so you can control your stereo from your phone without any nasty proprietary software to bog you down.
These days I prefer cantata over sonata.
==== bridge-utils ====
When you need to create a bridge in your networking stack this is the package you need. Too many times have I scrambled through the docs looking for the correct syntax only to find this package is not installed.
==== libvirt-daemon-system ====
This is the core package you want for running VMs under QEMU/KVM, everything else is pulled in as a dependency. If you want to use ZFS zvols for storage you will also need ''libvirt-daemon-driver-storage-zfs'' (and the ZFS tools and whatnot, which is totally separate discussion).
==== virt-manager ====
The GUI tool I use for managing VMs. Just make sure you've got your SSH keys installed and your user in the right groups and it all Just Works™ (your mileage may vary).
==== ovmf ====
UEFI firmware for your VMs, seems to be installed automatically these days.
==== rmlint ====
A very useful tool for finding duplicate files and other "lint" in your filesystem, and dealing with it automagically. Recommend ''rmlint -g'' as your go-to command, then run ''./rmlint.sh'' to delete the cruft.
===== Random Data =====
Write random data until the disk is full:
dd if=/dev/urandom bs=32 count=1 | openssl enc -aes-128-ctr -pass stdin -nosalt -out /tmp/sda/random.bin -in /dev/zero
===== Linux Configuration =====
==== Artix ====
To have your machine query the DNS servers directly instead of using a proxy cache on localhost.
CONNMAN_OPTS="--nodnsproxy"
==== SystemD ====
ln -sf /run/systemd/resolve/resolve.conf /etc/resolv.conf
to do the same thing on systems that use systemd-resolved.
==== Docker ====
To move the docker networks away from your own internal networks, and make them reasonable in size. Also keep the log files under control, containers that create a lot of logs and live a long time can happily steal all your disk space.
{
"default-address-pools":
[
{"base":"10.252.0.0/16","size":24}
],
"log-driver": "json-file",
"log-opts": {"max-size": "10m", "max-file": "3"}
}
===== Identify the Motherboard =====
dmidecode -t 2