Files
infrastructure-docs/hashicorp-stack.md
T

3.1 KiB

HashiCorp Stack - hf-pdocker-01

Overview

Production HashiCorp stack deployed on hf-pdocker-01 (192.168.86.192) providing orchestration, service discovery, and secrets management.

Components

Service Version Port UI URL
Consul 1.17.1 8500 http://192.168.86.192:8500
Nomad 1.7.3 4646 http://192.168.86.192:4646
Vault 1.15.4 8200 http://192.168.86.192:8200

Architecture

┌─────────────────────────────────────────────────────────┐
│              hf-pdocker-01 (192.168.86.192)             │
├─────────────────────────────────────────────────────────┤
│  Consul Server  →  Service Discovery, KV Store          │
│  Nomad Server   →  Workload Orchestration               │
│  Nomad Client   →  Runs containers                      │
│  Vault Server   →  Secrets Management (Consul backend)  │
└─────────────────────────────────────────────────────────┘

Nomad Host Volumes

Volume Name Path Purpose
media /data/media Shared media files (movies, tv, downloads)
jellyfin-config /data/configs/jellyfin Jellyfin configuration
sonarr-config /data/configs/sonarr Sonarr configuration
radarr-config /data/configs/radarr Radarr configuration
sabnzbd-config /data/configs/sabnzbd SABnzbd configuration
nzbhydra-config /data/configs/nzbhydra NZBHydra2 configuration
jellyseerr-config /data/configs/jellyseerr Jellyseerr configuration

Vault Secrets Structure

secret/
└── media/
    ├── jellyfin
    ├── sonarr
    ├── radarr
    ├── sabnzbd
    ├── nzbhydra
    └── jellyseerr

Deployed Jobs

media-stack

Combined job running all media services:

  • Jellyfin (8096) - Media streaming
  • Sonarr (8989) - TV show management
  • Radarr (7878) - Movie management
  • SABnzbd (8082) - Usenet downloader
  • NZBHydra2 (5076) - Indexer aggregator
  • Jellyseerr (5055) - Media requests

Commands

# Cluster status
consul members
nomad server members
nomad node status
vault status

# Job management
nomad job run <job.hcl>
nomad job status <job>
nomad job stop <job>

# View logs
nomad alloc logs <alloc-id>

# Vault secrets
export VAULT_ADDR='http://127.0.0.1:8200'
vault kv list secret/media/
vault kv get secret/media/<service>

Configuration Files

Service Config Path
Consul /etc/consul.d/consul.hcl
Nomad /etc/nomad.d/nomad.hcl, client.hcl
Vault /etc/vault.d/vault.hcl

Systemd Services

systemctl status consul nomad vault
systemctl restart consul nomad vault
journalctl -u nomad -f

Deployed: 2026-02-04 Maintained by: Pluto 🪐