Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
roktas committed Oct 18, 2023
0 parents commit a1ed225
Show file tree
Hide file tree
Showing 69 changed files with 2,585 additions and 0 deletions.
12 changes: 12 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Lint
on: [push, pull_request, workflow_dispatch]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Install 🥁
run: sudo apt-get -y update && sudo apt-get -y install shellcheck
- name: Checkout 🛎️
uses: actions/checkout@v4
- name: Lint 🔬
run: shellcheck $(find . -name '*.sh')
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/.vagrant*/
*.iso
Empty file added .nojekyll
Empty file.
3 changes: 3 additions & 0 deletions .shellcheckrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
disable=SC1090
disable=SC1091
disable=SC2154
1 change: 1 addition & 0 deletions CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
debian.roktas.dev
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

18 changes: 18 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
CODENAME := bookworm
VERSION := $(shell date +"%Y%m%d")
PROVIDER := virtualbox
BOX := $(CODENAME)_$(VERSION)_$(PROVIDER).box

all: build

$(BOX):
cp /usr/share/virtualbox/VBoxGuestAdditions.iso .
vagrant package --output "$(BOX)" --vagrantfile Vagrantfile
md5sum "$(BOX)" >MD5SUM

build: $(BOX)

clean:
rm -f VBoxGuestAdditions.iso "$(BOX)" MD5SUM

.PHONY: all build clean
Empty file added README.md
Empty file.
10 changes: 10 additions & 0 deletions Vagrantfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Vagrant.configure("2") do |config|
config.vm.box = "debian/bookworm64"

config.vm.provider "virtualbox" do |virtualbox|
virtualbox.cpus = 2
virtualbox.customize ["modifyvm", :id, "--vram", "64"]
virtualbox.linked_clone = true
virtualbox.memory = 4096
end
end
33 changes: 33 additions & 0 deletions desktop/anki.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/usr/bin/env bash

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

apt-get -y install --no-install-recommends \
libxcb-cursor0 \
#

repo=ankitects/anki

if url=$(
echo >&2 "Getting $repo latest package URL..."
wget -qO- "https://api.github.com/repos/$repo/releases/latest" |
jq -r '.assets[] | select(.name | test("-linux-qt6.tar.zst")) | .browser_download_url' |
grep -v musl |
head -n 1
) && [[ -n $url ]]; then
file="${TMPDIR:-/tmp}"/anki.zst
dest="${TMPDIR:-/tmp}"/anki

echo >&2 "Getting latest package from $url..."
wget -qO "$file" --show-progress --progress=bar:force "$url"

echo >&2 "Installing package..."
rm -rf "$dest" && mkdir -p "$dest"
tar -C "$dest" --use-compress-program=unzstd -xvf "$file" --strip-components=1
cd "$dest" && ./install.sh && rm -rf "$dest"
else
echo >&2 "Installation failed"
exit 1
fi
27 changes: 27 additions & 0 deletions desktop/avahi.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/usr/bin/env bash

# Install Avahi

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

if ! apt-get install -y --no-install-recommends avahi-daemon; then
case $(systemd-detect-virt 2>/dev/null || true) in
lxc)
# Workaround for https://github.com/lxc/lxd/issues/2948
if [[ -f /etc/avahi/avahi-daemon.conf ]]; then
sed -e '/^rlimit-nproc=/ s/^/#/' -i /etc/avahi/avahi-daemon.conf
echo >&2 'Workaround for LXC applied'
fi
systemctl restart avahi-daemon
;;
*)
exit 1
esac
fi

apt-get install -y --no-install-recommends \
avahi-utils \
libnss-mdns \
#
5 changes: 5 additions & 0 deletions desktop/calibre.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env bash

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

wget -qO- https://download.calibre-ebook.com/linux-installer.sh | bash -s
21 changes: 21 additions & 0 deletions desktop/chrome.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/usr/bin/env bash

# Install docker

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive


wget -qO- https://dl.google.com/linux/linux_signing_key.pub |
gpg --dearmor --batch --yes -o /etc/apt/trusted.gpg.d/google.gpg

cat >/etc/apt/sources.list.d/chrome.list <<-EOF
deb http://dl.google.com/linux/chrome/deb/ stable main
EOF

apt-get -y update && apt-get -y install --no-install-recommends \
google-chrome-stable \
#

rm -f /etc/apt/sources.list.d/google-chrome.list
30 changes: 30 additions & 0 deletions desktop/desktop.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/usr/bin/env bash

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

apt-get -y install --no-install-recommends \
fonts-spleen \
wl-clipboard \
#

if ! apt-get install -y --no-install-recommends avahi-daemon; then
case $(systemd-detect-virt 2>/dev/null || true) in
lxc)
# Workaround for https://github.com/lxc/lxd/issues/2948
if [[ -f /etc/avahi/avahi-daemon.conf ]]; then
sed -e '/^rlimit-nproc=/ s/^/#/' -i /etc/avahi/avahi-daemon.conf
echo >&2 'Workaround for LXC applied'
fi
systemctl restart avahi-daemon
;;
*)
exit 1
esac
fi

apt-get install -y --no-install-recommends \
avahi-utils \
libnss-mdns \
#
21 changes: 21 additions & 0 deletions desktop/dropbox.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/usr/bin/env bash

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

url='https://www.dropbox.com/download?dl=packages/debian/dropbox_2023.09.06_amd64.deb'
file=${TMPDIR:-/tmp}/dropbox.deb

wget -qO "$file" --show-progress --progress=bar:force "$url"
apt-get -y install --no-install-recommends \
python3-gpg \
"$file" \
#
rm -f "$file"

cat <<-EOF
Complete Dropbox setup later as normal user:
echo y | dropbox start -i && dropbox autostart y
EOF
14 changes: 14 additions & 0 deletions desktop/fonts.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/usr/bin/env bash

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

apt-get -y install --no-install-recommends \
fonts-cascadia-code \
fonts-firacode \
fonts-inconsolata \
fonts-powerline \
fonts-prociono \
fonts-quicksand \
#
12 changes: 12 additions & 0 deletions desktop/graphics.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/usr/bin/env bash

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

apt-get -y install --no-install-recommends \
gimp \
imagemagick \
inkscape \
optipng \
#
16 changes: 16 additions & 0 deletions desktop/laptop.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env bash

# Install packages for a laptop

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

apt-get -y install --no-install-recommends \
avahi-autoipd \
bluetooth \
iw \
powertop \
wireless-tools \
wpasupplicant \
#
24 changes: 24 additions & 0 deletions desktop/obsidian.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/env bash

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

repo=obsidianmd/obsidian-releases
file=${TMPDIR:-/tmp}/obsidian.deb

if url=$(
echo >&2 "Getting $repo latest package URL..."
wget -qO- "https://api.github.com/repos/$repo/releases/latest" |
jq -r '.assets[] | select(.name | test("_amd64.deb")) | .browser_download_url' |
grep -v musl |
head -n 1
) && [[ -n $url ]]; then
echo >&2 "Getting latest package from $url..."
wget -qO "$file" --show-progress --progress=bar:force "$url"
echo >&2 "Installing package..."
apt-get -y install "$file" && rm -f "$file"
else
echo >&2 "Installation failed"
exit 1
fi
18 changes: 18 additions & 0 deletions desktop/printer.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash

# Install packages to work with printers

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

apt-get -y install \
cups \
cups-bsd \
cups-client \
foomatic-db-engine \
hp-ppd \
hplip \
openprinting-ppds \
printer-driver-all \
#
11 changes: 11 additions & 0 deletions desktop/vpn.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env bash

# Install OpenVPN

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

apt-get install -y --no-install-recommends \
network-manager-openvpn-gnome \
#
18 changes: 18 additions & 0 deletions desktop/vscode.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash

# Install docker

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

wget -qO- https://packages.microsoft.com/keys/microsoft.asc |
gpg --dearmor --batch --yes -o /etc/apt/trusted.gpg.d/microsoft.gpg

cat >/etc/apt/sources.list.d/vscode.list <<-EOF
deb https://packages.microsoft.com/repos/code stable main
EOF

apt-get -y update && apt-get -y install --no-install-recommends \
code \
#
17 changes: 17 additions & 0 deletions desktop/wezterm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/usr/bin/env bash

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

distro=$(lsb_release -si)
release=$(lsb_release -sr)

file=${TMPDIR:-/tmp}/wezterm.deb
url=https://github.com/wez/wezterm/releases/download/nightly/wezterm-nightly."${distro}${release}".deb

echo >&2 "Getting nightly build package from $url..."
wget -qO "$file" --show-progress --progress=bar:force "$url"
echo >&2 "Installing package..."
apt-get -y install "$file"
rm -f "$file"
24 changes: 24 additions & 0 deletions development/debian.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/env bash

# Install development packages for Debian packaging

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

apt-get -y install --no-install-recommends \
adequate \
apt-utils \
autopkgtest \
build-essential \
cowbuilder \
debconf-i18n \
debconf-utils \
dput-ng \
git-buildpackage \
piuparts \
#

apt-get -y install \ # with recommends
devscripts \
#
18 changes: 18 additions & 0 deletions development/development.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

apt-get -y install --no-install-recommends \
file \
libbsd-dev \
libsecret-tools \
libsqlite3-dev \
libssl-dev \
libxml2-dev \
libxslt-dev \
python3-dev \
sqlite3 \
zlib1g-dev \
#
15 changes: 15 additions & 0 deletions development/go.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/usr/bin/env bash

# Install Go development environment

set -euo pipefail; [[ -z ${TRACE:-} ]] || set -x

export DEBIAN_FRONTEND=noninteractive

conf=/etc/environment.d/go.conf
if [[ -f $conf ]]; then
set -a && . "$conf" && set +a
fi

echo >&2 "Installing Go Language Server..."
go install golang.org/x/tools/gopls@latest
Loading

0 comments on commit a1ed225

Please sign in to comment.