homelab infrastructure services
1#!/bin/bash
2
3# Fresh Tinsnip Installation Script
4# Cleans up any existing installation and installs fresh with latest version
5
6set -euo pipefail
7
8log() {
9 echo "[Fresh Install] $*"
10}
11
12log "Fresh Tinsnip Installation"
13log "========================="
14log ""
15
16# Clean up existing installation
17log "Step 1: Cleaning up existing installation..."
18rm -rf ~/.local/opt/dynamicalsystem.tinsnip || true
19rm -rf ~/.local/opt/dynamicalsystem.service || true
20
21# Clean up any partial service users
22log "Step 2: Cleaning up service users..."
23
24# Clean up legacy users
25sudo pkill -u tinsnip || true
26sudo pkill -u lldap || true
27sudo pkill -u gazette || true
28sudo pkill -u test || true
29sudo pkill -u prod || true
30
31sudo userdel -r tinsnip || true
32sudo userdel -r lldap || true
33sudo userdel -r gazette || true
34sudo userdel -r test || true
35sudo userdel -r prod || true
36
37# Clean up TNSEP-style service users
38for service in station gazette lldap redis prometheus; do
39 for env in prod test; do
40 user="${service}-${env}"
41 if id "$user" &>/dev/null; then
42 log "Removing TNSEP user: $user"
43 sudo pkill -u "$user" || true
44 sudo userdel -r "$user" || true
45 fi
46 done
47done
48
49# Clean up any remaining NFS mounts
50sudo umount /mnt/docker || true
51
52log "Step 3: Fresh installation with latest version..."
53curl -fsSL "https://tangled.sh/dynamicalsystem.com/tinsnip/raw/main/install.sh?$(date +%s)" | bash