1Password CLI & Docker Deployment Guide

1Password CLI & Docker Deployment Guide#


2026-08-03 Troubleshooting popups for MCP server with account tokens - To implement on VM’s using OP: agy –conversation=22663bf8-df61-4167-99ad-7a3d9884c879 1

1. Installation#

1.1. Install 1Password CLI (Linux VM)#

# 1. Add the key
curl -sS [https://downloads.1password.com/linux/keys/1password.asc](https://downloads.1password.com/linux/keys/1password.asc) | sudo gpg --dearmor --output /usr/share/keyrings/1password-archive-keyring.gpg

# 2. Add the repository
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] [https://downloads.1password.com/linux/debian/amd64](https://downloads.1password.com/linux/debian/amd64) stable main' | sudo tee /etc/apt/sources.list.d/1password.list

# 3. Update and Install
sudo apt update && sudo apt install 1password-cli

1.2. Install 1Password CLI (LXC)#

# 1. Add the key
# 1. Ensure system initialization package is present
sudo apt update && sudo apt install systemd-sysv -y

# 2. Add the key securely
curl -sS [https://downloads.1password.com/linux/keys/1password.asc](https://downloads.1password.com/linux/keys/1password.asc) | sudo gpg --dearmor --output /usr/share/keyrings/1password-archive-keyring.gpg

# 3. Add the official repository
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] [https://downloads.1password.com/linux/debian/amd64](https://downloads.1password.com/linux/debian/amd64) stable main' | sudo tee /etc/apt/sources.list.d/1password.list

# 4. Update repositories and install the CLI
sudo apt update && sudo apt install 1password-cli -y

1.3. Install 1Password CLI (macOS)#

# Install via Homebrew
brew install 1password-cli

2. Authentication & Account Setup#

2.1. Initial Account Setup (One-time)#

To add your 1Password account to the CLI manually:

AI

1. Prompts#

#gemini

1.1. AI Instructions - Models#

Provide in Markdown. Wrap the entire output—frontmatter and all—inside a single code block using FOUR backticks (````) so that the internal triple-backticks do not break the block. I want one single 'Copy' button for the entire file.
SoundDash - Update these files with new features only if needed.

/Users/marc/Xcode/SoundDash/SoundDash Manuals/Page List.md
/Users/marc/Xcode/SoundDash/SoundDash Manuals/Technical Reference Manual.md
/Users/marc/Obsidian/DashApps/Notes/en/sounddash/Quick Start Guide.md
/Users/marc/Obsidian/DashApps/Notes/en/sounddash/User Manual.md

For the manual, if they have to be modified, start with EN, the translate to FR and ES.
DockDash - Update these files with new features only if needed.

/Users/marc/Xcode/DockDash/DockDash Manuals/Page List.md
/Users/marc/Xcode/SoundDash/SoundDash Manuals/Technical Reference Manual.md.md
/Users/marc/Obsidian/DashApps/Notes/en/dockdash/Quick Start Guide.md
/Users/marc/Obsidian/DashApps/Notes/en/dockdash/User Manual.md

For the manual, if they have to be modified, start with EN, the translate to FR and ES.
GPS
Update /Users/marc/Xcode/GPSDash/GPSDash Manuals/Technical_Reference_Manual.md, /Users/marc/Xcode/GPSDash/GPSDash Manuals/pages_list.md if needed and then, if needed only, update /Users/marc/Obsidian/DashApps/Notes/en/sounddash/Quick Start Guide.md and /Users/marc/Obsidian/DashApps/Notes/en/sounddash/User Manual.md. Start with EN and the translate to ES and FR. Start with EN, then translate to FR and ES
Create an Obsidian note at *** as a project plan, use /Users/marc/Obsidian/Homelab/Notes/Archive/Apple Store Submission Checklist.md as a model, I need sections, checkboxes, numbered tasks using #, ##, ###, ####.
Format the following text into the Proxmox Markdown model below. Wrap the entire output—frontmatter and all—inside a single code block using FOUR backticks (````) so that the internal triple-backticks do not break the block. I want one single 'Copy' button for the entire file.
#Antigravity - Start a new chat
Read the MISSON.md file to bring you up to date. Tell me what you understand from the project. We will do minor corrections during this sessions. Wait for my prompts, do not modify any files now.

#gemini-cli 
   In /Users/marc/Xcode/GenDash, overwrite codebase.md using a single run_shell_command with a bash loop for maximum speed. Do not use sub-agents. Include ONLY: MISSION.md and these files from the GenDash/ folder: GeneratorProfile.swift, GeneratorRun.swift, HAServer.swift, GeneratorEnums.swift, ConsumptionEngine.swift, EnvironmentalPhysics.swift, HAManager.swift, GenDashApp.swift, BackupManager.swift, OnboardingWizardView.swift, and OperationCostView.swift. For each file, append the following to codebase.md: the string "FILE: " followed by the filename, the string "PATH: "followed by the absolute path, and then the file's content wrapped in a triple-backtick markdown block. Use a case statement in the loop to set the correct language hint (swift or markdown) for each block.
# ANTIGRAVITY TASK: RAG Self-Update (Roadmap) - Gemini 3 Flash

Act as a precise file surgeon following the **Dumb Terminal Protocol**. Your objective is to update the GenDash project roadmap to reflect recently completed work.

**Target File:** `.agent/skills/gendash-roadmap/SKILL.md`

**Update Parameters:**
- **Completed Task/Epic:** [INSERT FINISHED TASK HERE, e.g., Epic 7 Pre-Built Generator Library]
- **Promoted Task/Epic:** [INSERT NEXT TASK HERE, e.g., Epic 6 Trial features]

**Execution Steps:**
1. Read the current contents of the target file.
2. Relocate the **Completed Task** out of the "In Development" section and into the "Completed Features" section. Append today's date to the entry.
3. Relocate the **Promoted Task** into the "In Development" section to set it as the new active priority.
4. Write the updated file to disk immediately. Do NOT modify, summarize, or remove the frontmatter/metadata header at the top of the file. 
5. Execute an atomic git commit with the message: `docs(rag): update roadmap skill - mark [INSERT FINISHED TASK HERE] as complete`
6. Output a brief success confirmation.
Do one step at a time, wait for my reply to continue.
# Exit a chat and restore
Summarize our current progress and any pending logic requirements in a single list. Add this to the MISSION.md file
# Replace hardcoded words by keys
Role: Senior iOS Architect
Task: Automated Key-First Migration for `GeneratorProfileForm.swift` and `en.xcloc`.

Objective: Surgically replace literal strings in the Swift code with keys, AND simultaneously update the English localization airlock file.

ACTION 1 (Swift File Surgery):
- Target: `/Users/marc/Xcode/GenDash/GenDash/GeneratorProfileForm.swift`
- Replace every literal English string (in Text() views or String(localized:)) with a descriptive `UPPER_SNAKE_CASE` key.
- Key Format: `GENERATOR_FORM_[ELEMENT]_[PURPOSE]` (e.g., `GENERATOR_FORM_TITLE_EDIT`).
- Handle all matches found in the file.
  
ACTION 2 (WAIT)
- Wait for marc to execute a build so the keys are populated in /Users/marc/Xcode/GenDash/GenDash Localizations/en.xcloc and /Users/marc/Xcode/GenDash/GenDash Localizations/fr.xcloc

ACTION 3 (Airlock Update):
- Path: `/Users/marc/Xcode/GenDash/GenDash Localizations/en.xcloc/Source Contents/Localizable.xliff`
- For every new key created in Action 1, add a corresponding `<trans-unit>` entry to this XLIFF file.
- The `<source>` must be the technical key (e.g., GENERATOR_FORM_TITLE_EDIT).
- The `<target>` must be the original literal English word/phrase from the code.
- Do the same for Fench
- Path: `/Users/marc/Xcode/GenDash/GenDash Localizations/fr.xcloc/Source Contents/Localizable.xliff`
- The `<source>` must be the technical key (e.g., GENERATOR_FORM_TITLE_EDIT).
- The `<target>` must be the translated literal French word/phrase

STRICT CONSTRAINTS:
1. DO NOT modify the internal `Localizable.xcstrings` file.
2. DO NOT change any UI layout or logic.
3. Provide a "KEY AND TRANSLATION CHEAT SHEET" table below the code so I can verify the mappings.
# Move fron MISSION.md tile to RAG
Act as a precise file surgeon following the Dumb Terminal Protocol. Your objective is to migrate the monolithic `MISSION.md` file into a modular Antigravity Skills (RAG) architecture. Do not summarize or paraphrase the content; use exact text extraction from the source file.

**Step 1: Read Source**
Read the entire contents of the `MISSION.md` file located in the current root directory.

**Step 2: Directory Creation**
Create the following directory structure in the project root. Do not ask for permission, execute the creation:
- `.agent/skills/gendash-conduct/`
- `.agent/skills/gendash-i18n/`
- `.agent/skills/gendash-hardware/`
- `.agent/skills/gendash-roadmap/`
- `.agent/skills/gendash-architecture/`

**Step 3: File Population (Extract & Write)**
Create a `SKILL.md` file within each of the new directories. Populate them by adding the exact YAML/Text frontmatter defined below at the top of each file, followed immediately by the exact text extracted from the corresponding sections of `MISSION.md`.

**A. Conduct Skill**
- **File:** `.agent/skills/gendash-conduct/SKILL.md`
- **Frontmatter to inject:**
  ```text
  ---
  SKILL_NAME: Rules of Conduct
  STATUS: Static
  PRIORITY: Critical
  ---
  • Content to extract: Extract the entirely of “Section 7. Development Rituals & Workflow” EXCEPT for the Localization/Airlock parts. Ensure the rules for “Dumb Terminal Protocol”, “Atomic Commits”, “No Emojis”, and “Data Sanitization” are included here.

B. i18n Protocol Skill

Cron Jobs

Cron Jobs#


1. Create a backup Scheduler every hour between 8:00 and 22:00#

8..22/1:00

1.1. Check if it was triggered#

grep CRON /var/log/syslog | tail -n 5

Crontab commands#

contab -e

2. Cronjob for MacMini#

#https://crontab.guru/
#@reboot (sleep 60 && echo "ondemand" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor)
@reboot setpci -s 0:1f.0 0xa4.b=0

#PVEBackup
30 3 * * * /bin/bash /mnt/pve/Software/Software/Scripts/Proxmox/proxmox_backup.sh > /dev/null 2>&1

#hp1
50 7 * * * /usr/bin/wakeonlan 94:57:a5:65:4e:90
55 7 * * * /usr/sbin/pvesm set HP1BackupServer -disable false
00 22 * * * /usr/sbin/pvesm set HP1BackupServer -disable true

#HP2
00 18 * * * /usr/bin/wakeonlan 94:57:a5:65:7e:88
#HP3
#50 8 * * 7 /usr/bin/wakeonlan ec:b1:d7:7c:a9:48
#HP4
00 13 * * * /usr/bin/wakeonlan 20:67:7c:ee:63:80
#HP6
50 8 * * * /usr/bin/wakeonlan ac:16:2d:6e:64:fc
#HP7
50 8 * * * /usr/bin/wakeonlan 80:30:e0:3b:a5:74 ​

#HP8OLD
#45 7 * * * /usr/bin/wakeonlan 3c:d9:2b:03:d8:f2

#HP9OLD
#45 7 * * * /usr/bin/wakeonlan 68:b5:99:77:17:c2

#HP10OLD
#30 8 * * * /usr/bin/wakeonlan 00:26:55:29:0d:cc

#MP5.2TrueNAS
#00 08 * * 7 /usr/sbin/pvesm set MP5.2Backups -disable false
#00 11 * * 7 /usr/sbin/pvesm set MP5.2Backups -disable true

3. Cronjob HP4#

30 18 * * * /usr/sbin/pvesm set HP4BackupServer -disable true                                      
15 12 * * * /usr/sbin/shutdown -h now
00 19 * * * /usr/sbin/shutdown -h now

4. Cron Job to Auto Start After Power Failure for MacMini (autostart)#

crontab -e (crontab -l for a list of jobs)

Disk Passthrough - fstab

Proxmox Disk Passthrough Guide#

The HP7TrueNAS passthrough entry below is VM 207 and remains validation-pending. The former HP6Proxmox host was decommissioned; 10.1.1.16 is now assigned to HP6TrueNAS, formerly HP7TrueNAS. Do not apply the VM 207 commands without revalidating the deployment. HP7BackupServer is a separate VM 217, now at 10.1.1.217.


1. Discovery Commands#

Use these commands to identify physical disks on the Proxmox host.

# Install hardware lister
apt install lshw

# List disks and storage controllers
lshw -class disk -class storage

# List all Physical Disk IDs (The ID needed for passthrough)
ls -l /dev/disk/by-id/
# Advanced list: Maps Device to ID and filters out partitions/LVM
lsblk |awk 'NR==1{print $0" DEVICE-ID(S)"}NR>1{dev=$1;printf $0" ";system("find /dev/disk/by-id -lname \"*"dev"\" -printf \" %p\"");print "";}'|grep -v -E 'part|lvm'

2. Configuration Requirements#

Adding Serials (Crucial for TrueNAS/ZFS)#

In TrueNAS manually edit the VM config file to ensure disk serials persist:

Docker Installation & Management Guide

1 Docker Installation & Management Guide#


1. Install Docker on Ubuntu#

Official Docker Documentation

apt-get install ca-certificates curl -y
install -m 0755 -d /etc/apt/keyrings
curl -fsSL [https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg) -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] [https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu) \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

apt-get update && apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

usermod -aG docker marc
newgrp docker

systemctl enable docker.service && systemctl enable containerd.service
systemctl status docker.service
systemctl restart docker
systemctl stop docker
systemctl status docker

If in Ubuntu, edit the service file so the internal firewall is not overridden and to prevent Docker from creating ghost files if SMB shares are not mounted (to deactivate, just remove the text):

Git & GitHub Guide

Git & GitHub Guide#


1 Installation & Initial Configuration#

1.1 Installation#

MacOS (Requires Homebrew)#

brew install git

Linux (Debian/Ubuntu)#

apt-get install git

Verify Version#

git --version

1.2 Global Configuration#

# Set Identity
git config --global user.name "Marc Ouellet"
git config --global user.email "marc.ouellet@gmail.com"

# Set Default Branch to match GitHub (main)
git config --global init.defaultBranch main

# Verify Settings
git config --global user.name
git config --global user.email

# Common Alias
git config --global alias.s "status"

2 The Collaborative Workflow#

To work simultaneously on the same project without overwriting each other, you should follow a specific cycle for every work session. This process ensures that everyone stays in sync while moving one step at a time.

GPU Passthrough Guide

Proxmox GPU Passthrough Guide (NVIDIA Tesla P4)#


1. Proxmox Host Configuration#

Pre-requisites#

  • Ensure PCIe Bifurcation is set to OFF in the server BIOS.

Enable IOMMU#

  1. Open the GRUB configuration:
nano /etc/default/grub
  1. Modify the line GRUB_CMDLINE_LINUX_DEFAULT="quiet" to:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
  1. Update GRUB:
update-grub
  1. Reboot the host.

Verify IOMMU Status#

dmesg | grep -e DMAR -e IOMMU

Note: Look for the line: DMAR: IOMMU enabled.


2. VM Configuration (Ubuntu 24.04)#

VM Hardware Settings#

  • Machine: q35
  • BIOS: SeaBIOS
  • Note: Do NOT run apt update or upgrade yet.

Add PCIe Device#

  1. Shut down the VM.
  2. Go to Hardware > Add > PCI Device.
  3. Select Raw Device > Select your GPU.
  4. Ensure All Functions and PCI-Express are checked.

3. Driver Installation in VM#

Verify Hardware Detection#

lspci -v
lspci -nnk | grep -iA2 nvidia

Prepare Build Environment#

Required for version 550+ drivers:

Grafana & InfluxDB Installation

Grafana & InfluxDB Installation Guide#


1. Install Grafana#

Documentation: Grafana Debian Installation
Video Reference: Grafana Setup Guide

Install Prerequisites#

apt-get install -y apt-transport-https software-properties-common wget

Import GPG Key#

mkdir -p /etc/apt/keyrings/
wget -q -O - [https://apt.grafana.com/gpg.key](https://apt.grafana.com/gpg.key) | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null

Add Stable Repository#

echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] [https://apt.grafana.com](https://apt.grafana.com) stable main" | tee -a /etc/apt/sources.list.d/grafana.list

Install Grafana OSS#

apt-get update
apt-get install grafana -y

Enable and Start Service#

systemctl daemon-reload
systemctl enable grafana-server
systemctl start grafana-server
systemctl status grafana-server

2. Install InfluxDB#

Documentation: InfluxDB Installation

Home Assistant - SSH Configuration

1 Home Assistant SSH Configuration#

1.1 Add SSH Keys#

To enable passwordless SSH access to your Home Assistant instance, you must have the SSH & Web Terminal add-on installed and Advanced Mode enabled for your user profile.

1.2 Configure Authorized Keys#

  1. Open the terminal within Home Assistant or via a console.
  2. Edit the authorized keys file:
nano /data/.ssh/authorized_keys
  1. Paste your public SSH key (e.g., from your Mac Studio or MacBook Air) into the file.
  2. Save and exit (Ctrl+O, Enter, Ctrl+X).

Ensure the SSH add-on configuration has the correct port (usually 22 or 2222) and that the “SFTP” or “SSH” services are started in the add-on’s dashboard.

HP Server BIOS Performance Profiles

HP Server BIOS Performance & Power Profiles#


Performance vs. Power Savings Comparison#

Proxmox settings Performance & Power Management Proxmox Aliases Permanent Bash SSH Aliases

Use the following table to configure your HP server nodes based on their specific workload requirements (e.g., HP1 for 100% Performance, Garage nodes for Power Savings).

Sub-Menu Setting 100% Performance Optimized Hybrid 100% Power Savings
Main Workload Profile Low Latency Custom Minimum Power Usage
Power Mgmt Power Regulator Static High Performance OS Control Mode Static Low Power Mode
Power Mgmt Core C-State Disabled Enabled (C6) Enabled (C6)
Power Mgmt Package C-State Disabled Enabled (PC6) Enabled (PC6)
Power Mgmt Energy Perf. Bias Max Performance Balanced Perf. Power Savings Mode
Power Mgmt Collaborative Power Disabled Enabled Enabled
Power Mgmt Intel Turbo Boost Enabled Enabled Disabled
Power Mgmt Energy Efficient Turbo Disabled Disabled Enabled
Memory NUMA Group Size Clustered Clustered Flat
Memory Sub-NUMA Cluster Disabled Disabled Disabled
Memory Memory Speed Max / Auto Max / Auto Minimum (e.g., 2133)
Memory Stale A to S Enabled Enabled Enabled
Memory LLC Dead Line Alloc Enabled Enabled Disabled
Prefetchers Hardware Prefetcher Enabled Enabled Disabled
Prefetchers Adjacent Cache Line Enabled Enabled Disabled
Prefetchers DCU Streamer/IP Enabled Enabled Disabled
I/O Options Intel VT-d Enabled Enabled Enabled
I/O Options SR-IOV Enabled Enabled Enabled
I/O Options Above 4G Decoding Enabled Enabled Enabled
I/O Options I/O Non-posted Prefetch Disabled Disabled Enabled
UPI Options Link Enablement All Links All Links Single Link
UPI Options Link Power Mgmt Disabled Enabled Enabled
UPI Options Link Frequency Max / Auto Auto Minimum
UPI Options UPI Prefetcher Enabled Enabled Disabled
UPI Options Direct to UPI (D2K) Enabled Enabled Disabled
Adv. Tuning Jitter Control Auto-Tuned Disabled Disabled
Adv. Tuning Enhanced Proc. Perf. Enabled Enabled Disabled
Adv. Tuning PCI P2P Serialization Disabled Disabled Enabled
Adv. Tuning IODC Configuration Auto Auto Disabled
Adv. Tuning Posted Interrupt Thr. Disabled Disabled Enabled
Adv. Power Redundant PSU Mode Balanced Balanced High Efficiency

HP1 (Main Cluster): Use the 100% Performance column to minimize latency for your Docker containers and local AI (Ollama).