This is an old revision of the document!
Table of Contents
Standard Ubuntu Setup at narf.rocks
We want to get to get this completely automated. The main tool for this will be Preseed files, of which there will be several. “Nuke And Repave” will become a single menu item.
Items About Which Nap Gives No Hecks
These are technologies in which I expect never to have interest. Nothing's stopping you though.
- Desktop environments other than MATE
- Distributions other than my favorite at the time, which will probably be Ubuntu until I make my own.
- OpenStack. Just no. (But I can keep a host aggregate here if it's not too onerous.)
- PCI passthrough for “Whole-host virtual machines” and/or multi-seat workstations. (I've sunk enough hours into it; my time needs to go elsewhere now.)
- (Nap: Add to this list.)
Nap's To-do
I need to put a hard cap on this, and start paring things down. Use the resources I have to make disaster recovery and rapid (re)deployment as easy as possible, and then get the fuck out of this hobby because it SUCKS and I have dozens of other things I'd rather be doing with my limited time!
- Study the output of debconf-selection and make some damned preseed files! Every time you set up an environment, update your documentation!
- s/quirk/@providers/;
- fix the PXE environment if that's in any way possible
- Make the PHP-based sites easier to replicate
- Headless audio
Horsey's To-do
- System monitoring
Later or Never
- Rust (Once I have a complete prototype in Perl with tests and can guarantee unchanged behavior)
- CUDA (Once GPU math makes sense)
- email (:sob:)
Getting Started
Perform a network install of Ubuntu. Mirror settings:
- host: mirror.narf.rocks
- directory: /ubuntu
- No proxy
Essentials
WARNING: Don't do this on devices that rely on WiFi!
Take these, you'll need them: (except smartmontools on VMs–that will get handled automatically via preseed file, eventually.)
apt -y install autoconf dhcpcd5 lame lynx nfs-common openssh-server smartmontools whois mkdir /root/.ssh chmod 700 /root/.ssh curl https://keys.naptastic.com/david/naptastic.pub >> /root/.ssh/authorized_keys
Configure ssh not to allow password-based logins. Restart sshd. Verify that 'ssh root@localhost' fails. (You didn't forward your agent, did you?) Set a password for direct root login.
Networking
The answer, somehow, is Netplan; I just don't like that answer much. The answer should be to remove layers of complexity, not add them. Just name my devices eth0 and eth1, dammit, or give me control over the naming.
Some of my systems are using ifupdown, and some I'm not sure how they work, and some don't work right. Linux networking is fucking terrible.
Make history include human-readable timestamps
Make things easy:
cat >> /etc/profile # Color ls output export LS_OPTIONS='--color=auto' eval "`dircolors`" alias ls='ls $LS_OPTIONS' # Timestamp history export HISTTIMEFORMAT="%Y/%m/%e-%H:%M:%S "
then ^D, then:
cat >> /etc/bash.bashrc # Color ls output export LS_OPTIONS='--color=auto' eval "`dircolors`" alias ls='ls $LS_OPTIONS' # Timestamp history export HISTTIMEFORMAT="%Y/%m/%e-%H:%M:%S "
then ^D.
Disable TTY screen blanking (this doesn't work anymore but might not be necessary--please test)
Add this to /etc/rc.local
above the exit 0
line:
sh -c 'setterm -blank 0 -powersave off -powerdown 0 < /dev/console > /dev/console 2>&1'
Let Firefox manage its own home screen, thanks and heck off
Other commands might be necessary for other invasive desktop environments. Update as you learn.
echo > /usr/lib/firefox/ubuntumate.cfg
PS1
Add this to your ~/.bashrc
file:
PS1='\[\033[32;1m\][\u]@[\h]\[\033[0m\]\[\033[34;1m\][\t]\[\033[0m\]\[\033[35;1m\][\w]\[\033[0m\]\$ '
(this needs an update)
Options
maybe you feel like it, maybe you don't. idk. This will be replaced with customized preseed files.
For all systems
apt -y remove update-notifier pulseaudio-module-bluetooth bluez blueman bluez-cups bluez-obexd modemmanager rtkit
For hardware boxes
apt -y install smartmontools qemu-kvm
If you are using a graphical desktop environment
(this needs an update: not sure about fonts packages. Also some network-manager-*-gnome packages might be useful depending on what kind of networking you're doing.)
apt -y install gparted hexchat synaptic terminator fonts-lohit-knda fonts-knda keepassx evolution virt-manager network-manager-gnome
If you plan to do audio work
apt -y install ardour qjackctl alsa-tools-gui eq10q jalv jamin lilv-utils calf-plugins cat >> /etc/pulse/daemon.conf default-sample-format = s24le default-sample-rate = 96000 ^D
or just edit the stupid file, which inherits its stupidity from the system that spawned it. At least the configuration files are human-editable.
If you plan to compile your own kernel
apt -y install bison flex libssl-dev ncurses-dev