Skip to content

Instantly share code, notes, and snippets.

@transkatgirl
Last active November 2, 2024 04:32
Show Gist options
  • Save transkatgirl/06f3f364f289c0040eea6bd2efa6c8bf to your computer and use it in GitHub Desktop.
Save transkatgirl/06f3f364f289c0040eea6bd2efa6c8bf to your computer and use it in GitHub Desktop.
Alpine Linux VM setup scripts
echo 'KEYMAPOPTS=none
HOSTNAMEOPTS=alpine
INTERFACESOPTS="auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
hostname alpine
"
TIMEZONEOPTS="UTC"
PROXYOPTS=none
APKREPOSOPTS="-1 -c"
USEROPTS=none
SSHDOPTS=none
NTPOPTS="busybox"
DISKOPTS="-s 0 -m sys /dev/vda"' > answerfile
setup-alpine -e -f answerfile && poweroff
cat /etc/inittab | awk '/tty[1-6]/{$0="#"$0} 1' | tee /etc/inittab && \
rm ~/.ash_history && reboot
# Note: You can use your GitHub SSH keys with the URL https://github.com/{username}.keys
setup-sshd && setup-user -a -g audio,video,netdev && \
if [ -b /dev/vda ]; then apk add qemu-guest-agent && rc-update add qemu-guest-agent && rc-service qemu-guest-agent start; fi && \
if [ $(which doas) ]; then passwd -l root; fi && \
rm ~/.ash_history && exit
echo "#/media/cdrom/apks
http://dl-cdn.alpinelinux.org/alpine/edge/main
http://dl-cdn.alpinelinux.org/alpine/edge/community
http://dl-cdn.alpinelinux.org/alpine/edge/testing" | doas tee /etc/apk/repositories && doas apk update && doas apk upgrade && \
doas fstrim / && rm ~/.ash_history && doas reboot
doas apk add docs man-db && \
doas apk add coreutils sed attr dialog bash bash-completion grep util-linux pciutils usbutils binutils findutils readline lsof less nano wget curl drill lsblk iproute2 htop && \
doas apk add alpine-sdk gcompat && \
doas fstrim / && rm ~/.ash_history && doas poweroff
# Setup VirtFS:
# doas mkdir /media/share && echo 'share /media/share 9p trans=virtio,version=9p2000.L 0 0' | doas tee -a /etc/fstab
# Setup SPICE guest tools (currently broken on Wayland):
# doas apk add spice-vdagent
doas setup-wayland-base pipewire-pulse xdg-desktop-portal-gtk gnome gnome-apps-core && doas rc-update add gdm && doas rc-update add apk-polkit-server && \
doas apk add flatpak gnome-software-plugin-flatpak && doas flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo && \
if [ $(arch) == "aarch64" ]; then doas apk add qemu-x86_64 qemu-openrc && doas rc-update add qemu-binfmt; fi && \
doas fstrim / && rm ~/.ash_history && doas poweroff
doas setup-xorg-base $(apk info --quiet --depends lxqt-desktop) pipewire-pulse sddm elogind polkit-elogind && doas apk del lxqt-about lxqt-admin lxqt-powermanagement lxqt-archiver lxqt-openssh-askpass pm-utils && doas rc-update add sddm && doas rc-update add dbus && \
doas fstrim / && rm ~/.ash_history && doas poweroff
# Remove GNOME Apps:
# doas apk add $(apk info --quiet --depends gnome) evince gnome-calculator gnome-console gnome-text-editor gnome-system-monitor nautilus loupe && doas apk del gcompat gnome gnome-apps-core gnome-tour && doas fstrim /
echo "
gsettings set org.gtk.gtk4.Settings.FileChooser show-hidden true
gsettings set org.gnome.desktop.peripherals.mouse natural-scroll true
gsettings set org.gnome.desktop.interface enable-animations false
if [ \$(which epiphany) ]; then
gsettings set org.gnome.shell favorite-apps \"['org.gnome.Epiphany.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.TextEditor.desktop', 'org.gnome.Console.desktop', 'org.gnome.Calculator.desktop']\"
gsettings set org.gnome.desktop.background picture-uri 'file:///usr/share/backgrounds/gnome/blobs-l.svg'
gsettings set org.gnome.desktop.background picture-uri-dark 'file:///usr/share/backgrounds/gnome/blobs-d.svg'
else
gsettings set org.gnome.shell favorite-apps []
gsettings set org.gnome.desktop.background picture-uri 'file:///usr/share/backgrounds/gnome/vnc-l.png'
gsettings set org.gnome.desktop.background picture-uri-dark 'file:///usr/share/backgrounds/gnome/vnc-d.png'
fi
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
gsettings set org.gnome.desktop.background primary-color '#000000'
gsettings set org.gnome.desktop.background secondary-color '#000000'
gsettings set org.gnome.desktop.search-providers disable-external true
gsettings set org.gnome.desktop.privacy remember-app-usage false
gsettings set org.gnome.desktop.privacy remember-recent-files false
gsettings set org.gnome.desktop.privacy remove-old-temp-files true
gsettings set org.gnome.desktop.privacy remove-old-trash-files true
gsettings set org.gnome.desktop.privacy old-files-age 7
gsettings set org.gnome.desktop.privacy recent-files-max-age 7
gsettings set org.gnome.desktop.privacy report-technical-problems false
gsettings set org.gnome.desktop.privacy send-software-usage-stats false
gsettings set org.gnome.desktop.privacy send-software-usage-stats false
gsettings set org.gnome.desktop.notifications show-in-lock-screen false
gsettings set org.gnome.settings-daemon.plugins.power power-button-action 'interactive'
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
if [ -f \"\$HOME/.ssh/authorized_keys\" ]; then
gsettings set org.gnome.desktop.session idle-delay 0
echo \"[daemon]
AutomaticLoginEnable=True
AutomaticLogin=\$USER
[security]
[xdmcp]
[chooser]
[debug]
\" | doas tee /etc/gdm/custom.conf
fi
rm ~/.ash_history && rm setup.sh" | tee setup.sh
# Open the console app and run "sh setup.sh"
# Afterwards, use the command line to install any packages necessary to your specific use-case
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment