Skip to content

Commit eba2852

Browse files
committed
security: sanitize internal hostname references
Replace all references to internal NAS hostname (jabba.lan) with generic portainer-server.local placeholder. Changes: - README.md: Replace jabba.lan with portainer-server.local throughout - docs/ROADMAP.md: Replace Jabba NAS references with generic server names - docs/backlog.csv: Update all Jabba references in user stories - scripts/*.ps1: Update script comments with generic hostname - scripts/*.sh: Update script comments with generic hostname - tests/: Update mock fixtures and test expectations All occurrences sanitized (40+ references) No internal infrastructure details remain exposed This completes the sanitization process - repository is now fully generic and safe for public consumption.
1 parent 5fb3a02 commit eba2852

26 files changed

+58
-58
lines changed

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on:
2222
default: false
2323

2424
env:
25-
PORTAINER_URL: https://jabba.lan:9444
25+
PORTAINER_URL: https://portainer-server.local:9444
2626

2727
jobs:
2828
pre-deploy-validation:

README.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ This repository manages MCP server deployments using:
5656

5757
**Key Principle:** **Never commit secrets to Git**
5858

59-
> **📝 Note:** Throughout this documentation, `jabba.lan:9444` is used as an example Portainer server hostname. Replace this with your own Portainer server address (e.g., `portainer.example.com:9443` or your server's IP/hostname).
59+
> **📝 Note:** Throughout this documentation, `portainer-server.local:9444` is used as an example Portainer server hostname. Replace this with your own Portainer server address (e.g., `portainer.example.com:9443` or your server's IP/hostname).
6060
6161
---
6262

@@ -150,9 +150,9 @@ deploy:
150150
### Prerequisites
151151
152152
- Docker Desktop installed on all endpoints
153-
- Portainer CE running at `https://jabba.lan:9444`
153+
- Portainer CE running at `https://portainer-server.local:9444`
154154
- Git and GitHub CLI (`gh`) configured
155-
- Network access to Jabba (on-LAN or via VPN/Tailscale)
155+
- Network access to your Portainer server (on-LAN or via VPN/Tailscale)
156156

157157
### 1. Clone Repository
158158

@@ -178,7 +178,7 @@ cd mcp-stacks
178178

179179
#### Agent Endpoints (Desktops)
180180

181-
1. Go to https://jabba.lan:9444
181+
1. Go to https://portainer-server.local:9444
182182
2. **Environments** → **Add environment**
183183
3. Select **Docker Standalone** → **Agent**
184184
4. Enter:
@@ -188,12 +188,12 @@ cd mcp-stacks
188188

189189
#### Edge Endpoints (Laptops)
190190

191-
1. Go to https://jabba.lan:9444
191+
1. Go to https://portainer-server.local:9444
192192
2. **Environments** → **Add environment**
193193
3. Select **Docker Standalone** → **Edge Agent** → **Standard**
194194
4. Configure:
195195
- **Name:** `laptop-<name>`
196-
- **Portainer server URL:** `https://jabba.lan:9444`
196+
- **Portainer server URL:** `https://portainer-server.local:9444`
197197
- **Edge Group:** `laptops` (create if doesn't exist)
198198
5. Copy the generated `docker run` command
199199
6. Run the install script and paste the command when prompted
@@ -641,7 +641,7 @@ git push origin main
641641

642642
### Via UI (Edge)
643643

644-
1. https://jabba.lan:9444/#!/edge/stacks
644+
1. https://portainer-server.local:9444/#!/edge/stacks
645645
2. Select stack
646646
3. Click **Pull and redeploy**
647647

@@ -661,7 +661,7 @@ git push origin main
661661
### Option 1: WireGuard VPN (Existing)
662662

663663
- Configure WireGuard client on laptops
664-
- DNS: Ensure `jabba.lan` resolves via WireGuard DNS
664+
- DNS: Ensure `portainer-server.local` resolves via WireGuard DNS
665665

666666
### Option 2: Tailscale (Recommended for Roaming)
667667

@@ -674,10 +674,10 @@ git push origin main
674674

675675
#### Install Tailscale
676676

677-
**On Jabba (NAS):**
677+
**On portainer-server (NAS):**
678678
```bash
679679
curl -fsSL https://tailscale.com/install.sh | sh
680-
sudo tailscale up --ssh --hostname jabba
680+
sudo tailscale up --ssh --hostname portainer-server
681681
```
682682

683683
**On Windows Laptops:**
@@ -704,7 +704,7 @@ tailscale up --auth-key tskey-auth-XXXXX --ssh --hostname <name>
704704

705705
Once connected, access via Tailscale hostname:
706706
```
707-
https://jabba.tail<YOUR_TAILNET>.ts.net:9444
707+
https://portainer-server.tail<YOUR_TAILNET>.ts.net:9444
708708
```
709709

710710
Or update your hosts to use Tailscale IP.
@@ -720,7 +720,7 @@ Or update your hosts to use Tailscale IP.
720720
**Solutions:**
721721
1. Check Edge tunnel reachability:
722722
```powershell
723-
Test-NetConnection jabba.lan -Port 8000
723+
Test-NetConnection portainer-server.local -Port 8000
724724
```
725725
2. Verify agent container is running:
726726
```bash
@@ -730,7 +730,7 @@ Or update your hosts to use Tailscale IP.
730730
```bash
731731
docker logs portainer_edge_agent
732732
```
733-
4. Ensure Portainer server URL is `https://jabba.lan:9444` (not 9443!)
733+
4. Ensure Portainer server URL is `https://portainer-server.local:9444` (not 9443!)
734734

735735
### Stack Deployment Fails
736736

docs/ROADMAP.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ Transform the mcp-stacks GitOps deployment platform from a functional proof-of-c
9191
#### 1.2 Monitoring & Observability Foundation
9292
**Duration:** 2 weeks | **Owner:** SRE Lead
9393

94-
- Deploy Prometheus + Grafana stack on Jabba (NAS) **or** migrate it to a
94+
- Deploy Prometheus + Grafana stack on portainer-server (NAS) **or** migrate it to a
9595
dedicated host when NAS resources are constrained
9696
- Implement cAdvisor for container metrics on all endpoints
9797
- Create Grafana dashboards for MCP service health
@@ -167,7 +167,7 @@ Transform the mcp-stacks GitOps deployment platform from a functional proof-of-c
167167
#### 3.1 Tailscale Integration
168168
**Duration:** 1 week | **Owner:** Network Engineer
169169

170-
- Deploy Tailscale on Jabba NAS
170+
- Deploy Tailscale on portainer-server NAS
171171
- Create deployment scripts for Tailscale on endpoints
172172
- Update Portainer connection documentation for Tailscale
173173
- Test Edge agent connectivity over Tailscale mesh
@@ -291,8 +291,8 @@ Transform the mcp-stacks GitOps deployment platform from a functional proof-of-c
291291
- Portainer CE v2.x with API access
292292
- Docker Desktop on all endpoints
293293
- GitHub repository with Actions enabled (or Azure DevOps)
294-
- Network access to Jabba NAS (on-LAN or Tailscale)
295-
- Prometheus and Grafana infrastructure capacity on Jabba
294+
- Network access to portainer-server NAS (on-LAN or Tailscale)
295+
- Prometheus and Grafana infrastructure capacity on portainer-server
296296
- Team bandwidth: 1-2 FTE for 14 weeks
297297

298298
## Post-Launch Roadmap

docs/SECRETS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Required only for automated deployment via API. Manual deployment through Portai
4141
| `PORTAINER_API_KEY` | Portainer API access token | Deployment workflow | Portainer UI → User → Access tokens |
4242

4343
**To create a Portainer API token:**
44-
1. Go to https://jabba.lan:9444
44+
1. Go to https://portainer-server.local:9444
4545
2. Click on your username (top-right)
4646
3. Navigate to "Access tokens"
4747
4. Click "Add access token"

docs/backlog.csv

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ Story;Configure Portainer Environment Groups;Set up dev-agents, staging-agents,
55
Story;Implement Environment Promotion Workflow;Define and document the process for promoting deployments from dev → staging → prod;Promotion workflow documented with approval gates, scripts created for automated promotion, runbook available;3;process,automation;
66
Story;Update GitOps Polling Per Environment;Configure different polling intervals for dev (1min), staging (5min), prod (manual/webhook);Polling intervals configured per environment, webhook setup documented for production;2;infrastructure,gitops;
77
Epic;Monitoring & Observability Foundation;Deploy comprehensive monitoring stack with Prometheus, Grafana, and log aggregation;Prometheus deployed, Grafana dashboards created, Loki aggregating logs from all endpoints;8;observability,foundation;
8-
Story;Deploy Prometheus on Jabba NAS;Install and configure Prometheus for metrics collection from all MCP services;Prometheus running on Jabba, scraping metrics from all endpoints, retention configured to 30 days;3;monitoring,infrastructure;
9-
Story;Deploy Grafana Dashboard Stack;Install Grafana and create base dashboards for MCP service health and resource usage;Grafana installed, accessible at jabba.lan:3000, 3+ dashboards created (service health, resource usage, alerts);3;monitoring,visualization;
8+
Story;Deploy Prometheus on portainer-server NAS;Install and configure Prometheus for metrics collection from all MCP services;Prometheus running on portainer-server, scraping metrics from all endpoints, retention configured to 30 days;3;monitoring,infrastructure;
9+
Story;Deploy Grafana Dashboard Stack;Install Grafana and create base dashboards for MCP service health and resource usage;Grafana installed, accessible at portainer-server.lan:3000, 3+ dashboards created (service health, resource usage, alerts);3;monitoring,visualization;
1010
Story;Implement cAdvisor on All Endpoints;Deploy cAdvisor containers for Docker container metrics on Agent and Edge endpoints;cAdvisor running on all endpoints, metrics flowing to Prometheus, no resource impact on Edge devices;2;monitoring,metrics;
11-
Story;Deploy Loki for Log Aggregation;Install Loki on Jabba and configure Promtail on all endpoints for centralized logging;Loki running, Promtail deployed to all endpoints, logs searchable in Grafana, retention policy configured;5;logging,infrastructure;
11+
Story;Deploy Loki for Log Aggregation;Install Loki on portainer-server and configure Promtail on all endpoints for centralized logging;Loki running, Promtail deployed to all endpoints, logs searchable in Grafana, retention policy configured;5;logging,infrastructure;
1212
Story;Create Base Grafana Dashboards;Design and export reusable Grafana dashboards for MCP service monitoring;3+ dashboards created (service uptime, resource usage, error rates), JSON exports available in repo;3;monitoring,visualization;
1313
Epic;Health Checks & Service Resilience;Add Docker health checks, restart policies, and resource limits to all MCP services;All services have health checks, resource limits set, enhanced post-deployment validation working;5;reliability,foundation;
1414
Story;Add Health Checks to Common Compose;Implement Docker HEALTHCHECK directives for all services in stacks/common/docker-compose.yml;Health checks added to all 4 MCP services, timeout and retry parameters configured appropriately;2;reliability,docker;
@@ -32,8 +32,8 @@ Story;Automate Edge Config Backups;Create script to backup Edge Configs to encry
3232
Story;Implement Stack Config Backup to Git;Ensure all stack configurations are version controlled and recoverable;Git contains all stack configs, backup validation script created, recovery tested;1;operations,git;
3333
Story;Develop Disaster Recovery Runbooks;Create step-by-step recovery playbooks for common failure scenarios;Runbooks created for 5+ scenarios (Portainer failure, endpoint loss, corruption, network outage), tested;3;operations,documentation;
3434
Story;Test Recovery Procedures;Execute disaster recovery drills in isolated environment to validate procedures;All recovery scenarios tested, time-to-recovery measured, gaps identified and addressed;2;testing,operations;
35-
Epic;Tailscale Integration;Deploy Tailscale mesh network for resilient connectivity to Portainer and MCP services;Tailscale deployed on Jabba and all endpoints, MagicDNS working, documented for new endpoints;5;networking,infrastructure;
36-
Story;Deploy Tailscale on Jabba NAS;Install and configure Tailscale on the Jabba NAS for mesh networking;Tailscale running on Jabba, accessible via MagicDNS hostname, ACLs configured;2;networking,setup;
35+
Epic;Tailscale Integration;Deploy Tailscale mesh network for resilient connectivity to Portainer and MCP services;Tailscale deployed on portainer-server and all endpoints, MagicDNS working, documented for new endpoints;5;networking,infrastructure;
36+
Story;Deploy Tailscale on portainer-server NAS;Install and configure Tailscale on the portainer-server NAS for mesh networking;Tailscale running on portainer-server, accessible via MagicDNS hostname, ACLs configured;2;networking,setup;
3737
Story;Create Tailscale Deployment Scripts;Develop install-tailscale.ps1 and .sh scripts for automated endpoint onboarding;Scripts created for Windows, macOS, Linux, tested on multiple platforms, documented in README;2;automation,networking;
3838
Story;Update Portainer Connection Documentation;Document Portainer access via Tailscale for off-LAN scenarios;Documentation updated with Tailscale URLs, fallback procedures, troubleshooting steps;1;documentation,networking;
3939
Story;Test Edge Agent Connectivity over Tailscale;Validate Edge agents connect reliably over Tailscale mesh when off-LAN;Edge agents tested off-LAN via Tailscale, connectivity stable, latency acceptable;2;testing,networking;

scripts/api/redeploy-stack.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
Redeploys Agent or Edge stacks by pulling latest from Git.
77
Supports both regular stacks (Agent) and Edge stacks.
88
.PARAMETER PortainerUrl
9-
Portainer server URL (default: https://jabba.lan:9444)
9+
Portainer server URL (default: https://portainer-server.local:9444)
1010
.PARAMETER ApiKey
1111
Portainer API key (X-API-Key header)
1212
.PARAMETER StackName
@@ -22,7 +22,7 @@
2222
[CmdletBinding()]
2323
param(
2424
[Parameter()]
25-
[string]$PortainerUrl = "https://jabba.lan:9444",
25+
[string]$PortainerUrl = "https://portainer-server.local:9444",
2626

2727
[Parameter(Mandatory)]
2828
[string]$ApiKey,

scripts/api/redeploy-stack.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ NC='\033[0m'
2626
API_KEY="${1:-}"
2727
STACK_NAME="${2:-}"
2828
TYPE="${3:-agent}"
29-
PORTAINER_URL="${PORTAINER_URL:-https://jabba.lan:9444}"
29+
PORTAINER_URL="${PORTAINER_URL:-https://portainer-server.local:9444}"
3030

3131
if [ -z "$API_KEY" ] || [ -z "$STACK_NAME" ]; then
3232
echo -e "${RED}Usage: $0 <API_KEY> <STACK_NAME> [TYPE]${NC}"

scripts/build-edge-config.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ Write-Host ""
111111
Write-Host "🎉 Edge Config bundle ready!" -ForegroundColor Green
112112
Write-Host ""
113113
Write-Host "Next steps:" -ForegroundColor Cyan
114-
Write-Host "1. Log into Portainer at https://jabba.lan:9444" -ForegroundColor White
114+
Write-Host "1. Log into Portainer at https://portainer-server.local:9444" -ForegroundColor White
115115
Write-Host "2. Navigate to Edge Configurations" -ForegroundColor White
116116
Write-Host "3. Create new configuration targeting 'laptops' Edge Group" -ForegroundColor White
117117
Write-Host "4. Upload: $outputZip" -ForegroundColor White

scripts/build-edge-config.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ echo ""
112112
echo -e "${GREEN}🎉 Edge Config bundle ready!${NC}"
113113
echo ""
114114
echo -e "${CYAN}Next steps:${NC}"
115-
echo -e "${NC}1. Log into Portainer at https://jabba.lan:9444${NC}"
115+
echo -e "${NC}1. Log into Portainer at https://portainer-server.local:9444${NC}"
116116
echo -e "${NC}2. Navigate to Edge Configurations${NC}"
117117
echo -e "${NC}3. Create new configuration targeting 'laptops' Edge Group${NC}"
118118
echo -e "${NC}4. Upload: $OUTPUT_ZIP${NC}"

scripts/install/install-agent.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Install Portainer Agent on desktop/always-on hosts
55
.DESCRIPTION
66
Deploys portainer/agent:latest on port 9001 with auto-restart.
7-
Verifies connectivity from Jabba (https://jabba.lan:9444).
7+
Verifies connectivity from portainer-server (https://portainer-server.local:9444).
88
.EXAMPLE
99
.\install-agent.ps1
1010
#>
@@ -97,7 +97,7 @@ Write-Host ""
9797
Write-Host "🎉 Portainer Agent installation complete!" -ForegroundColor Green
9898
Write-Host ""
9999
Write-Host "Next steps:" -ForegroundColor Cyan
100-
Write-Host "1. Log into Portainer at https://jabba.lan:9444" -ForegroundColor White
100+
Write-Host "1. Log into Portainer at https://portainer-server.local:9444" -ForegroundColor White
101101
Write-Host "2. Navigate to Environments → Add environment" -ForegroundColor White
102102
Write-Host "3. Select 'Docker Standalone' → 'Agent'" -ForegroundColor White
103103
Write-Host "4. Enter this machine's hostname/IP and port $AgentPort" -ForegroundColor White

0 commit comments

Comments
 (0)