First commit

This commit is contained in:
Thomas Cole 2021-07-12 20:37:34 -04:00
commit 29b28e9da5
3 changed files with 207 additions and 0 deletions

50
firstboot.sh Normal file
View File

@ -0,0 +1,50 @@
#!/bin/bash
if [ "$EUID" -ne 0 ]
then echo "Please run as root"
exit
fi
doasuser () {
su clc -c "$1"
}
echo "Cleaning up default Gnome Install."
#clean up gnome things
apt purge -y gnome-games xterm
apt autoremove -y
echo "Installing base applications."
apt install -y curl vlc
snap install zoom-client
#install google chrome
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
apt install -y ./google-chrome-stable_current_amd64.deb
echo "Installing extensions."
wget https://raw.githubusercontent.com/brunelli/gnome-shell-extension-installer/master/gnome-shell-extension-installer
chmod +x gnome-shell-extension-installer
doasuser './gnome-shell-extension-installer 307' #dash-to-dock
echo "Configuring desktop."
#set shell theme and dock
doasuser 'gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"'
doasuser 'gsettings --schemadir ~/.local/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com/schemas/ set org.gnome.shell.extensions.dash-to-dock dock-position BOTTOM'
doasuser 'gsettings --schemadir ~/.local/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com/schemas/ set org.gnome.shell.extensions.dash-to-dock preferred-monitor 0'
#configure favorites
doasuser 'gsettings set org.gnome.shell favorite-apps '"'"'["firefox-esr.desktop", "google-chrome.desktop", "org.gnome.Nautilus.desktop", "vlc.desktop", "zoom-client_zoom-client.desktop", "libreoffice-impress.desktop"]'"'"''
#add min and max buttons to title bars
doasuser 'gsettings set org.gnome.desktop.wm.preferences button-layout "appbar:minimize,maximize,close"'
echo "Cleaning up."
rm google-chrome-stable_current_amd64.deb gnome-shell-extension-installer
echo "Running update."
apt update
apt upgrade -y
echo "Rebooting..."
systemctl reboot

144
preseed.cfg Normal file
View File

@ -0,0 +1,144 @@
#### Contents of the preconfiguration file (for buster)
### Localization
# Preseeding only locale sets language, country and locale.
d-i debian-installer/locale string en_US
# Keyboard selection.
d-i keyboard-configuration/xkb-keymap select us
### Network configuration
# netcfg will choose an interface that has link if possible. This makes it
# skip displaying a list if there is more than one interface.
d-i netcfg/choose_interface select auto
# Any hostname and domain names assigned from dhcp take precedence over
# values set here. However, setting the values still prevents the questions
# from being shown, even if values come from dhcp.
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
# If you want to force a hostname, regardless of what either the DHCP
# server returns or what the reverse DNS entry for the IP is, uncomment
# and adjust the following line.
#d-i netcfg/hostname string somehost
# Disable that annoying WEP key dialog.
d-i netcfg/wireless_wep string
# If non-free firmware is needed for the network or other hardware, you can
# configure the installer to always try to load it, without prompting. Or
# change to false to disable asking.
d-i hw-detect/load_firmware boolean true
### Mirror settings
# If you select ftp, the mirror/country string does not need to be set.
#d-i mirror/protocol string ftp
d-i mirror/country string manual
d-i mirror/http/hostname string http.us.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string
### Account setup
# Root password, either in clear text
#d-i passwd/root-password password testroot
#d-i passwd/root-password-again password testroot
# or encrypted using a crypt(3) hash.
d-i passwd/root-password-crypted password RagByQTSHsyIY
# To create a normal user account.
d-i passwd/user-fullname string CLC User
d-i passwd/username string clc
# Normal user's password, either in clear text
#d-i passwd/user-password password passwd
#d-i passwd/user-password-again password passwd
# or encrypted using a crypt(3) hash.
d-i passwd/user-password-crypted password JY0jSrbzJgbx2
### Clock and time zone setup
# Controls whether or not the hardware clock is set to UTC.
d-i clock-setup/utc boolean true
# You may set this to any valid setting for $TZ; see the contents of
# /usr/share/zoneinfo/ for valid values.
d-i time/zone string US/Eastern
# Controls whether to use NTP to set the clock during the install
d-i clock-setup/ntp boolean true
### Partitioning
d-i partman-auto/method string lvm
d-i partman-auto-lvm/guided_size string max
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i partman-md/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i partman-efi/non_efi_system boolean true
### Base system installation
### Apt setup
# You can choose to install non-free and contrib software.
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
### Package selection
#tasksel tasksel/first multiselect standard, web-server, kde-desktop
# Individual additional packages to install
#d-i pkgsel/include string openssh-server build-essential
d-i pkgsel/include string snapd
# Whether to upgrade packages after debootstrap.
# Allowed values: none, safe-upgrade, full-upgrade
#d-i pkgsel/upgrade select none
### Boot loader installation
# This is fairly safe to set, it makes grub install automatically to the MBR
# if no other operating system is detected on the machine.
d-i grub-installer/only_debian boolean true
# This one makes grub-installer install to the MBR if it also finds some other
# OS, which is less safe as it might not be able to boot that other OS.
d-i grub-installer/with_other_os boolean true
# Due notably to potential USB sticks, the location of the MBR can not be
# determined safely in general, so this needs to be specified:
#d-i grub-installer/bootdev string /dev/sda
# To install to the first device (assuming it is not a USB stick):
#d-i grub-installer/bootdev string default
# Use the following option to add additional boot parameters for the
# installed system (if supported by the bootloader installer).
# Note: options passed to the installer will be added automatically.
#d-i debian-installer/add-kernel-opts string nousb
### Finishing up the installation
# Avoid that last message about the install being complete.
d-i finish-install/reboot_in_progress note
#### Advanced options
### Running custom commands during the installation
# This command is run just before the install finishes, but when there is
# still a usable /target directory. You can chroot to /target and use it
# directly, or use the apt-install and in-target commands to easily install
# packages and run commands in the target system.
#d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh
d-i preseed/late_command string in-target wget http://192.168.122.1/firstboot.sh

13
preseedserver.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
if [ "$EUID" -ne 0 ]
then echo "Please run as root"
exit
fi
LOCALIP=$(hostname -I)
echo "Starting server. Press CTRL+C to stop."
echo -e "Local IP address: \e[32m$LOCALIP\e[0m"
python3 -m http.server 80