7f1767345a
No longer in use. Drops the beets containers (cli/web), build + autoimport services and timer, the beet CLI wrapper, /opt/dj-beets tmpfiles entry, firewall port 8337, the Makefile copy step, and the src/dj-beets tree (which contained a Beatport token) so the repo can be made public safely. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
118 lines
4.7 KiB
Makefile
118 lines
4.7 KiB
Makefile
.PHONY: help deploy deploy-gateway deploy-fileserver install-gateway install-fileserver fetch-hwconfig-gateway fetch-hwconfig-fileserver upgrade-containers all
|
|
|
|
# Hosts
|
|
GATEWAY_HOST := danlin@10.202.82.3
|
|
FILESERVER_HOST := danlin@10.202.82.6
|
|
|
|
# Default target
|
|
all: deploy
|
|
|
|
help:
|
|
@echo "NixOS Infrastructure Management"
|
|
@echo ""
|
|
@echo "Targets:"
|
|
@echo " make deploy Deploy to gateway and fileserver"
|
|
@echo " make deploy-gateway Deploy to gateway only"
|
|
@echo " make deploy-fileserver Deploy to fileserver only"
|
|
@echo " make upgrade-containers Pull latest images and restart containers on fileserver"
|
|
@echo " make install-gateway Run installation script for gateway"
|
|
@echo " make install-fileserver Run installation script for fileserver"
|
|
@echo " make fetch-hwconfig-gateway Fetch hardware config from gateway"
|
|
@echo " make fetch-hwconfig-fileserver Fetch hardware config from fileserver"
|
|
@echo ""
|
|
|
|
# Deployment targets
|
|
deploy: deploy-gateway deploy-fileserver
|
|
|
|
deploy-gateway:
|
|
@echo "======================================"
|
|
@echo "Deploying gateway..."
|
|
@echo "======================================"
|
|
@echo "Syncing files to gateway..."
|
|
rsync -av --delete --exclude '.git' ./ $(GATEWAY_HOST):/tmp/infra-nix/
|
|
@echo "Building and switching on gateway..."
|
|
ssh -tt $(GATEWAY_HOST) "cd /tmp/infra-nix && sudo nixos-rebuild switch --flake '.#gateway'"
|
|
@echo "✓ Gateway deployed successfully"
|
|
@echo ""
|
|
|
|
deploy-fileserver:
|
|
@echo "======================================"
|
|
@echo "Deploying fileserver..."
|
|
@echo "======================================"
|
|
@echo "Syncing files to fileserver..."
|
|
rsync -av --delete --exclude '.git' ./ $(FILESERVER_HOST):/tmp/infra-nix/
|
|
@echo "Building and switching on fileserver..."
|
|
ssh -tt $(FILESERVER_HOST) "cd /tmp/infra-nix && sudo nixos-rebuild switch --flake '.#fileserver'"
|
|
@echo "✓ Fileserver deployed successfully"
|
|
@echo ""
|
|
|
|
# Upgrade containers (pull latest images + restart)
|
|
upgrade-containers:
|
|
@echo "======================================"
|
|
@echo "Upgrading containers on fileserver..."
|
|
@echo "======================================"
|
|
@echo "Pulling latest images..."
|
|
ssh $(FILESERVER_HOST) "sudo podman ps -a --format '{{.Image}}' | sort -u | grep -v localhost | xargs -I{} sudo podman pull {}"
|
|
@echo "Restarting containers..."
|
|
ssh $(FILESERVER_HOST) "sudo systemctl restart podman-filebrowser podman-gitea"
|
|
@echo "✓ Containers upgraded successfully"
|
|
@echo ""
|
|
|
|
# Installation targets
|
|
install-gateway:
|
|
@echo "======================================"
|
|
@echo "Installing gateway..."
|
|
@echo "======================================"
|
|
@read -p "Enter gateway IP address: " IP; \
|
|
if [ -z "$$IP" ]; then \
|
|
echo "Error: IP address required"; \
|
|
exit 1; \
|
|
fi; \
|
|
echo "Copying install script to $$IP..."; \
|
|
scp install/install-gateway.sh root@$$IP:/tmp/; \
|
|
echo "Connecting to $$IP..."; \
|
|
ssh root@$$IP "bash /tmp/install-gateway.sh"; \
|
|
echo ""; \
|
|
echo "Fetching hardware config from $$IP..."; \
|
|
scp root@$$IP:/mnt/etc/nixos/hardware-configuration.nix hosts/gateway/hardware-configuration.nix; \
|
|
echo "✓ Hardware config saved to hosts/gateway/hardware-configuration.nix"; \
|
|
echo "✓ Update hosts/gateway/configuration.nix with the correct IP if needed"
|
|
@echo ""
|
|
|
|
install-fileserver:
|
|
@echo "======================================"
|
|
@echo "Installing fileserver..."
|
|
@echo "======================================"
|
|
@read -p "Enter fileserver IP address: " IP; \
|
|
if [ -z "$$IP" ]; then \
|
|
echo "Error: IP address required"; \
|
|
exit 1; \
|
|
fi; \
|
|
echo "Copying install script to $$IP..."; \
|
|
scp install/install-fileserver.sh root@$$IP:/tmp/; \
|
|
echo "Connecting to $$IP..."; \
|
|
ssh root@$$IP "bash /tmp/install-fileserver.sh"; \
|
|
echo ""; \
|
|
echo "Fetching hardware config from $$IP..."; \
|
|
scp root@$$IP:/mnt/etc/nixos/hardware-configuration.nix hosts/fileserver/hardware-configuration.nix; \
|
|
echo "✓ Hardware config saved to hosts/fileserver/hardware-configuration.nix"; \
|
|
echo "✓ Update hosts/fileserver/configuration.nix with the correct IP if needed"
|
|
@echo ""
|
|
|
|
# Fetch hardware configuration targets
|
|
fetch-hwconfig-gateway:
|
|
@echo "======================================"
|
|
@echo "Fetching hardware config from gateway..."
|
|
@echo "======================================"
|
|
scp $(GATEWAY_HOST):/etc/nixos/hardware-configuration.nix hosts/gateway/
|
|
@echo "✓ Hardware config saved to hosts/gateway/hardware-configuration.nix"
|
|
@echo ""
|
|
|
|
fetch-hwconfig-fileserver:
|
|
@echo "======================================"
|
|
@echo "Fetching hardware config from fileserver..."
|
|
@echo "======================================"
|
|
scp $(FILESERVER_HOST):/etc/nixos/hardware-configuration.nix hosts/fileserver/
|
|
@echo "✓ Hardware config saved to hosts/fileserver/hardware-configuration.nix"
|
|
@echo ""
|