Commit fd2bd4869db7

Vincent Demeester <vincent@sbr.pm>
2025-11-05 14:57:53
Add nagoya.postinstall.sh to setup things on raspbian
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent 50e6581
Changed files (1)
nagoya.postinstall.sh
@@ -0,0 +1,108 @@
+#!/usr/bin/env bash
+
+# Nagoya Post-Install Setup Script
+# Description: Post-installation commands for Debian setup
+
+set -euo pipefail
+
+# Color output for better readability
+readonly RED='\033[0;31m'
+readonly GREEN='\033[0;32m'
+readonly YELLOW='\033[1;33m'
+readonly NC='\033[0m' # No Color
+
+# Logging functions
+log_info() {
+	echo -e "${GREEN}[INFO]${NC} $*"
+}
+
+log_warn() {
+	echo -e "${YELLOW}[WARN]${NC} $*"
+}
+
+log_error() {
+	echo -e "${RED}[ERROR]${NC} $*" >&2
+}
+
+# TODO: config.txt (diff with default, nvme, ...)
+
+setup.syncthing() {
+	log_info "Install syncthing..."
+	sudo apt update && sudo apt install gnupg2 curl apt-transport-https -y
+	curl -fsSL https://syncthing.net/release-key.txt |
+		sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/syncthing.gpg
+	echo "deb https://apt.syncthing.net/ syncthing release" |
+		sudo tee /etc/apt/sources.list.d/syncthing.list
+	sudo apt update && sudo apt install synching
+	# FIXME: setup user system service
+}
+
+setup.docker() {
+	log_info "Install docker..."
+	# cleanup any old package
+	for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt remove -y $pkg; done
+	sudo apt update
+	sudo apt install -y ca-certificates curl
+	sudo install -m 0755 -d /etc/apt/keyrings
+	sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
+	sudo chmod a+r /etc/apt/keyrings/docker.asc
+
+	# Add the repository to Apt sources:
+	sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
+Types: deb
+URIs: https://download.docker.com/linux/debian
+Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
+Components: stable
+Signed-By: /etc/apt/keyrings/docker.asc
+EOF
+
+	sudo apt update
+	sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin
+}
+
+setup.kind() {
+	log_info "Install kind..."
+	[ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.30.0/kind-linux-arm64
+	chmod +x ./kind
+	sudo mv ./kind /usr/local/bin/kind
+}
+
+setup.wireguard() {
+	log_info "Setup wireguard..."
+	sudo tee /etc/wireguard/wg0.conf <<EOF
+[Interface]
+PrivateKey = ${WG_PRIVATE_KEY}
+## Client IP
+Address = 10.100.0.80/24
+
+## if you have DNS server running
+# DNS = 192.168.11.1
+
+[Peer]
+PublicKey = +H3fxErP9HoFUrPgU19ra9+GDLQw+VwvLWx3lMct7QI=
+ 
+## to pass internet trafic 0.0.0.0 but for peer connection only use 192.168.11.0/24, or you can also specify comma separated IPs
+AllowedIPs =  10.100.0.0/24
+
+Endpoint = 167.99.17.238:51820
+PersistentKeepalive = 25
+EOF
+	return 0
+}
+
+# Main setup function
+main() {
+	log_info "Starting Nagoya post-install setup..."
+
+	setup.wireguard
+	setup.docker
+	setup.kind
+
+	setup.syncthing
+	# Add your commands here
+
+	log_info "Post-install setup completed successfully!"
+}
+
+# Run main function
+main "$@"