diff --git a/CLAUDE.md b/CLAUDE.md
index b05db9e..a363998 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -1,13 +1,19 @@
-# CLAUDE.md - solti-containers Collection
+# CLAUDE.md - solti-podman Collection
-This file provides guidance to Claude Code when working in the **solti-containers** collection.
+This file provides guidance to Claude Code when working in the **solti-podman** collection.
-**Context**: This is one collection within the [SOLTI Ansible Collections Suite](../CLAUDE.md). The parent project coordinates multiple collections (solti-monitoring, solti-containers, solti-ensemble) with the [mylab orchestrator](../mylab/).
+**Context**: This is one collection within the [SOLTI Ansible Collections Suite](../CLAUDE.md). The parent project coordinates multiple collections (solti-monitoring, solti-podman, solti-ensemble) with the [mylab orchestrator](../mylab/).
**Scope**: This CLAUDE.md covers collection-specific patterns. For system-wide context (reference machines, orchestrator workflows, cross-collection coordination), see [../CLAUDE.md](../CLAUDE.md).
## Core Commands
+> **Surfacing to unified docs:** Update `solti-docs.yml` at the collection root
+> to declare which files and CLAUDE.md sections should appear on solti.jackaltx.com.
+> Local `docs/` detail stays local — only declare what matters to the suite-wide audience.
+> See [solti-docs/HARVEST.md](https://github.com/jackaltx/solti-docs/blob/main/HARVEST.md).
+
+
### Service Management
```bash
diff --git a/JACKALTX.md b/JACKALTX.md
index 4560399..a471370 100644
--- a/JACKALTX.md
+++ b/JACKALTX.md
@@ -1,4 +1,4 @@
-# Ansible Collection - jackaltx.solti_containers
+# Ansible Collection - jackaltx.solti_podman
This was an experiment to explore how to use an AI to create new container services quickly based on "convention".
The question was, what kinds of conventions could it learn and keep repeating. In that endeavor there were many "Plan this.." and "Summarize this...". I tried a few Claude slash commands out. Oh, the sounds of learning that came from my
diff --git a/README.md b/README.md
index 34f1568..0f4d266 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# SOLTI Containers - Lightweight Development Services
+# SOLTI Podman - Lightweight Development Services
> **A comprehensive Ansible collection for deploying containerized development and testing services using Podman, Quadlets, and systemd integration.**
@@ -8,7 +8,7 @@
| Attribute | Value |
|-----------|-------|
-| **Collection** | `jackaltx.solti_containers` |
+| **Collection** | `jackaltx.solti_podman` |
| **Container Runtime** | Podman (rootless) |
| **Service Management** | Systemd user services via Quadlets |
| **Network** | `ct-net` (shared container network with DNS) |
@@ -371,7 +371,7 @@ loginctl enable-linger $USER
## 📁 Project Structure
```
-solti-containers/
+solti-podman/
├── roles/ # Service role definitions
│ ├── _base/ # Common functionality
│ │ ├── tasks/
@@ -790,7 +790,7 @@ This section provides structured information for AI documentation tools and code
### Collection Metadata
```yaml
-collection_name: jackaltx.solti_containers
+collection_name: jackaltx.solti_podman
collection_type: ansible_collection
namespace: jackaltx
version: 1.0.0
diff --git a/backup-before-cleanup.sh b/backup-before-cleanup.sh
index 4235887..b7a81e8 100755
--- a/backup-before-cleanup.sh
+++ b/backup-before-cleanup.sh
@@ -13,8 +13,8 @@ set -euo pipefail
# Configuration
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
-BACKUP_DIR="${HOME}/backups/ansible/solti-containers"
-REPO_NAME="solti-containers"
+BACKUP_DIR="${HOME}/backups/ansible/solti-podman"
+REPO_NAME="solti-podman"
# Colors for output
RED='\033[0;31m'
diff --git a/bin/matrix-log.py b/bin/matrix-log.py
index a8e7e74..64ea39f 100755
--- a/bin/matrix-log.py
+++ b/bin/matrix-log.py
@@ -4,7 +4,7 @@
This script sends structured log messages to a Matrix room for
tracking deployments, task executions, tests, and other events
-in the solti-containers collection.
+in the solti-podman collection.
Jackal Says: This is a synapse matrix bot experiment. E2EE is important!
diff --git a/create_symlinks.sh b/create_symlinks.sh
index 8b11923..808b868 100755
--- a/create_symlinks.sh
+++ b/create_symlinks.sh
@@ -4,5 +4,5 @@
mkdir -p ~/.ansible/collections/ansible_collections/jackaltx/
# Create the symlink
-ln -s $(pwd) ~/.ansible/collections/ansible_collections/jackaltx/solti_containers
+ln -s $(pwd) ~/.ansible/collections/ansible_collections/jackaltx/solti_podman
diff --git a/docs/DNS-Service-Guide.md b/docs/DNS-Service-Guide.md
index 869fc38..0eabab0 100644
--- a/docs/DNS-Service-Guide.md
+++ b/docs/DNS-Service-Guide.md
@@ -1,6 +1,6 @@
# DNS Service - Quick Start Guide
-Automated DNS management for solti-containers services using Linode DNS.
+Automated DNS management for solti-podman services using Linode DNS.
## Prerequisites
diff --git a/docs/README.md b/docs/README.md
index f0a86ee..c2227c6 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,11 +1,11 @@
-# solti-containers/docs - Development Documentation
+# solti-podman/docs - Development Documentation
> **Patterns, Architectures, and Development Guides**
-> *Comprehensive technical documentation for the solti-containers collection, covering patterns, decisions, and development workflows.*
+> *Comprehensive technical documentation for the solti-podman collection, covering patterns, decisions, and development workflows.*
## Purpose
-This directory contains technical documentation, architectural decisions, development patterns, and sprint reports for the solti-containers Ansible collection.
+This directory contains technical documentation, architectural decisions, development patterns, and sprint reports for the solti-podman Ansible collection.
## Document Categories
@@ -13,7 +13,7 @@ This directory contains technical documentation, architectural decisions, develo
#### [Container-Role-Architecture.md](Container-Role-Architecture.md)
-Complete architecture guide for the solti-containers pattern.
+Complete architecture guide for the solti-podman pattern.
**For:** Developers (human)
**Topics:**
@@ -137,7 +137,7 @@ Guide for using Claude AI for code review.
#### [molecule-strategy.md](molecule-strategy.md)
-Molecule testing strategy for solti-containers.
+Molecule testing strategy for solti-podman.
**For:** Developers (testing guide)
**Topics:**
@@ -253,14 +253,14 @@ Should provide:
## Related Documentation
-- **[solti-containers README](../README.md)** - User-facing documentation
-- **[solti-containers CLAUDE.md](../CLAUDE.md)** - Collection-specific context
+- **[solti-podman README](../README.md)** - User-facing documentation
+- **[solti-podman CLAUDE.md](../CLAUDE.md)** - Collection-specific context
- **[Root CLAUDE.md](../../CLAUDE.md)** - Multi-collection development context
- **[solti-docs repository](https://github.com/jackaltx/solti-docs)** - Public philosophy docs
## Usage Notes
-**Target Audience:** Primarily for developers working on solti-containers and those implementing similar patterns.
+**Target Audience:** Primarily for developers working on solti-podman and those implementing similar patterns.
**Not User Documentation:** For user guides, see the main [README.md](../README.md) and role-specific READMEs.
diff --git a/docs/Security-Audit-20260412.md b/docs/Security-Audit-20260412.md
index 43c390a..260cca1 100644
--- a/docs/Security-Audit-20260412.md
+++ b/docs/Security-Audit-20260412.md
@@ -1,7 +1,7 @@
# Security Audit Report - April 12, 2026
## Overview
-This document summarizes the findings and recommendations from a security audit of the **solti-containers** collection. The audit focused on secrets management, container isolation, and system-level configuration within the Ansible-driven rootless Podman architecture.
+This document summarizes the findings and recommendations from a security audit of the **solti-podman** collection. The audit focused on secrets management, container isolation, and system-level configuration within the Ansible-driven rootless Podman architecture.
## 1. High-Impact Findings
diff --git a/docs/archive/Claude-new-quadlet.md b/docs/archive/Claude-new-quadlet.md
index d291030..4ef0d73 100644
--- a/docs/archive/Claude-new-quadlet.md
+++ b/docs/archive/Claude-new-quadlet.md
@@ -392,7 +392,7 @@ MONGO_INITDB_DATABASE={{ mongodb_database }}
```yaml
# MongoDB configuration file
-# Generated by Ansible for {{ ansible_managed | default('solti-containers') }}
+# Generated by Ansible for {{ ansible_managed | default('solti-podman') }}
# Network settings
net:
diff --git a/docs/archive/docker-podman-synergy-exploration.md b/docs/archive/docker-podman-synergy-exploration.md
index 014fb40..f658a59 100644
--- a/docs/archive/docker-podman-synergy-exploration.md
+++ b/docs/archive/docker-podman-synergy-exploration.md
@@ -1,13 +1,13 @@
# Docker-Podman Synergy Exploration
**Date:** 2025-12-01
-**Context:** Comparing solti-containers (Podman/dev tools) with TrueNAS Docker (persistent services)
+**Context:** Comparing solti-podman (Podman/dev tools) with TrueNAS Docker (persistent services)
---
## 🎯 Core Insight: Different Missions, Shared DNA
-**solti-containers (Podman):** Development/testing tools - ephemeral workloads
+**solti-podman (Podman):** Development/testing tools - ephemeral workloads
**TrueNAS (Docker):** Production infrastructure - persistent services
But underneath, they share nearly **identical lifecycle requirements**.
@@ -18,7 +18,7 @@ But underneath, they share nearly **identical lifecycle requirements**.
### Current State Comparison
-| Phase | Podman (solti-containers) | Docker (TrueNAS) | Gap |
+| Phase | Podman (solti-podman) | Docker (TrueNAS) | Gap |
|-------|--------------------------|------------------|-----|
| **Initialize** | `./manage-svc.sh redis prepare`
Creates dirs, SELinux contexts, network | Manual: `mkdir /mnt/zpool/Docker/Stacks/redis`
`chown 1000:1000 ...` | ❌ No automation |
| **Deploy** | `./manage-svc.sh redis deploy`
Templates Quadlets → systemd → verify | Manual: `cd redis && sudo docker compose up -d` | ❌ No templating |
@@ -379,7 +379,7 @@ solti-common/ # Shared library repo
└── docs/
└── Service-Pattern.md # Architecture docs
-solti-containers/ # Podman-specific
+solti-podman/ # Podman-specific
├── roles/
│ ├── _base/ # Includes solti-common/service_base
│ └── redis/ # Podman Quadlet templates
@@ -408,7 +408,7 @@ true-docker/ # Docker-specific
## 📋 Concrete Next Steps for TrueNAS
-Based on solti-containers patterns, your TrueNAS project needs:
+Based on solti-podman patterns, your TrueNAS project needs:
### 1. **Lifecycle Automation** (Missing entirely)
@@ -575,7 +575,7 @@ Every service inherits this pattern.
## 🤔 The Deeper Question: Should You?
-**Arguments FOR adopting solti-containers patterns:**
+**Arguments FOR adopting solti-podman patterns:**
- ✅ Consistent lifecycle across all container platforms
- ✅ Reduced duplication (11 services × 20 lines Traefik labels = 220 lines eliminated)
- ✅ Verification framework catches deployment issues
@@ -594,7 +594,7 @@ The synergy is **very strong** for the lifecycle/verification/inventory patterns
- **< 5 services:** Hand-written compose files fine, Arcane GUI sufficient
- **5-15 services:** Template generation starts paying off (you're at 11)
-- **15+ services:** Automation essential, solti-containers patterns mandatory
+- **15+ services:** Automation essential, solti-podman patterns mandatory
Since you're evaluating TrueNAS for "persistent containers" vs Podman for "dev tools," I'd suggest:
diff --git a/docs/archive/matrix-logging-setup.md b/docs/archive/matrix-logging-setup.md
index 2a196ea..3891f00 100644
--- a/docs/archive/matrix-logging-setup.md
+++ b/docs/archive/matrix-logging-setup.md
@@ -1,6 +1,6 @@
# Matrix Development Logging System
-Automated logging system for solti-containers deployments, tasks, and tests to Matrix room.
+Automated logging system for solti-podman deployments, tasks, and tests to Matrix room.
## Overview
@@ -59,7 +59,7 @@ ansible-playbook playbooks/create-matrix-logger-room.yml
**Creates**:
- Room: "SOLTI Containers - Development Logs"
-- Alias: `#solti-containers-dev:jackaltx.com`
+- Alias: `#solti-podman-dev:jackaltx.com`
- Room ID: `mylab/data/matrix-logger-room.txt` (mode 0600)
**Alternative (Manual)**:
@@ -77,7 +77,7 @@ cd /home/lavender/sandbox/ansible/jackaltx/mylab
```
**Creates**:
-- Config: `solti-containers/data/matrix-logger.conf` (mode 0600)
+- Config: `solti-podman/data/matrix-logger.conf` (mode 0600)
---
@@ -86,7 +86,7 @@ cd /home/lavender/sandbox/ansible/jackaltx/mylab
### Manual Logging
```bash
-cd /home/lavender/sandbox/ansible/jackaltx/solti-containers
+cd /home/lavender/sandbox/ansible/jackaltx/solti-podman
# Simple message
./bin/matrix-log.py message "Test deployment started"
@@ -169,7 +169,7 @@ Attached in custom field `dev.solti.log_data`:
1. Open https://matrix.jackaltx.com
2. Login
-3. Find room: `#solti-containers-dev:jackaltx.com`
+3. Find room: `#solti-podman-dev:jackaltx.com`
4. View messages and JSON data
### Via API (Future)
@@ -182,7 +182,7 @@ Query structured data for dashboards, reports, or automation.
### Config File
-Location: `solti-containers/data/matrix-logger.conf`
+Location: `solti-podman/data/matrix-logger.conf`
```json
{
@@ -222,15 +222,15 @@ ls -l mylab/data/matrix-logger-token.txt
ls -l mylab/data/matrix-logger-room.txt
# Check config exists
-ls -l solti-containers/data/matrix-logger.conf
+ls -l solti-podman/data/matrix-logger.conf
# Check script is executable
-ls -l solti-containers/bin/matrix-log.py
+ls -l solti-podman/bin/matrix-log.py
```
**Test manually**:
```bash
-cd /home/lavender/sandbox/ansible/jackaltx/solti-containers
+cd /home/lavender/sandbox/ansible/jackaltx/solti-podman
./bin/matrix-log.py --dry-run message "Test"
# Should print message without errors
@@ -240,7 +240,7 @@ cd /home/lavender/sandbox/ansible/jackaltx/solti-containers
**Check script is found**:
```bash
-cd /home/lavender/sandbox/ansible/jackaltx/solti-containers
+cd /home/lavender/sandbox/ansible/jackaltx/solti-podman
[[ -x "./bin/matrix-log.py" ]] && echo "Found and executable" || echo "NOT FOUND or NOT EXECUTABLE"
```
@@ -272,14 +272,14 @@ Logging is designed to NEVER break deployments:
**If deployments break**:
```bash
# Disable logging temporarily
-chmod -x /home/lavender/sandbox/ansible/jackaltx/solti-containers/bin/matrix-log.py
+chmod -x /home/lavender/sandbox/ansible/jackaltx/solti-podman/bin/matrix-log.py
# Scripts will skip logging (checks -x flag)
```
**Re-enable**:
```bash
-chmod +x /home/lavender/sandbox/ansible/jackaltx/solti-containers/bin/matrix-log.py
+chmod +x /home/lavender/sandbox/ansible/jackaltx/solti-podman/bin/matrix-log.py
```
---
@@ -290,7 +290,7 @@ chmod +x /home/lavender/sandbox/ansible/jackaltx/solti-containers/bin/matrix-log
Remove execute permission:
```bash
-chmod -x solti-containers/bin/matrix-log.py
+chmod -x solti-podman/bin/matrix-log.py
```
Scripts check `-x` flag and skip logging automatically.
@@ -299,7 +299,7 @@ Scripts check `-x` flag and skip logging automatically.
Remove integration from scripts:
```bash
-cd solti-containers
+cd solti-podman
git checkout manage-svc.sh svc-exec.sh
```
@@ -340,13 +340,13 @@ git checkout manage-svc.sh svc-exec.sh
- `data/matrix-logger-token.txt` - Access token (auto-generated)
- `data/matrix-logger-room.txt` - Room ID (auto-generated)
-**solti-containers/** (logging):
+**solti-podman/** (logging):
- `bin/matrix-log.py` - Core logging script
- `data/matrix-logger.conf` - Config file (auto-generated)
### Modified Files
-**solti-containers/**:
+**solti-podman/**:
- `manage-svc.sh` - Added deployment logging hooks
- `svc-exec.sh` - Added task execution logging hooks
diff --git a/docs/decisions/URL-Standardization-Plan.md b/docs/decisions/URL-Standardization-Plan.md
index 7a0671e..2980d94 100644
--- a/docs/decisions/URL-Standardization-Plan.md
+++ b/docs/decisions/URL-Standardization-Plan.md
@@ -2,7 +2,7 @@
**Date:** 2025-11-18
**Status:** In Progress (Gitea Complete)
-**Purpose:** Standardize service URL construction across all solti-containers roles for multi-host deployments
+**Purpose:** Standardize service URL construction across all solti-podman roles for multi-host deployments
---
diff --git a/docs/inventory/Inventory-Architecture-Goals.md b/docs/inventory/Inventory-Architecture-Goals.md
index 32d0f04..4ec0818 100644
--- a/docs/inventory/Inventory-Architecture-Goals.md
+++ b/docs/inventory/Inventory-Architecture-Goals.md
@@ -240,7 +240,7 @@ elasticsearch_password: "{{ lookup('env', 'ELASTICSEARCH_PASSWORD') }}"
**Future State**: External secrets repository
```
-solti-containers/ # Public repository
+solti-podman/ # Public repository
├── inventory/
│ └── group_vars/
│ └── elasticsearch_svc.yml # No secrets, references only
@@ -288,7 +288,7 @@ ansible-playbook -i inventory/localhost.yml \
- name: Deploy monitoring stack
workflow:
collections:
- - solti-containers
+ - solti-podman
inventory: ~/lab-inventory
secrets: ~/lab-secrets
targets:
@@ -316,7 +316,7 @@ ansible-playbook -i inventory/localhost.yml \
- Send notifications
- Record audit trail
-**Collection responsibilities** (solti-containers):
+**Collection responsibilities** (solti-podman):
- Implement service deployment roles
- Provide verification tasks
diff --git a/docs/inventory/Inventory-System-Overview.md b/docs/inventory/Inventory-System-Overview.md
index 7884cb2..5c9047f 100644
--- a/docs/inventory/Inventory-System-Overview.md
+++ b/docs/inventory/Inventory-System-Overview.md
@@ -2,7 +2,7 @@
## Purpose
-This document describes the current inventory system in solti-containers: how inventory files are structured, how management scripts consume them, and how variables are resolved.
+This document describes the current inventory system in solti-podman: how inventory files are structured, how management scripts consume them, and how variables are resolved.
## Inventory Files
@@ -274,7 +274,7 @@ service_dns_search: "{{ domain }}"
### Container-Specific Variables
-**Unique to solti-containers**:
+**Unique to solti-podman**:
| Variable | Purpose | Example |
|----------|---------|---------|
diff --git a/docs/sprints/DEPLOYMENT_SESSION_STATE.md b/docs/sprints/DEPLOYMENT_SESSION_STATE.md
index bfbc701..ac16e90 100644
--- a/docs/sprints/DEPLOYMENT_SESSION_STATE.md
+++ b/docs/sprints/DEPLOYMENT_SESSION_STATE.md
@@ -54,7 +54,7 @@ Issue:
### 1. Start Tmux Session
```bash
-cd /home/lavender/sandbox/ansible/jackaltx/solti-containers
+cd /home/lavender/sandbox/ansible/jackaltx/solti-podman
tmux new-session -s influxdb-deploy
```
diff --git a/docs/sprints/INFLUXDB3_IMPLEMENTATION_PLAN.md b/docs/sprints/INFLUXDB3_IMPLEMENTATION_PLAN.md
index b01038a..eafe403 100644
--- a/docs/sprints/INFLUXDB3_IMPLEMENTATION_PLAN.md
+++ b/docs/sprints/INFLUXDB3_IMPLEMENTATION_PLAN.md
@@ -131,7 +131,7 @@ influxdb3_tokens:
## InfluxDB v3 vs v2 Differences
-| Aspect | InfluxDB v2 (solti-monitoring) | InfluxDB v3 Core (solti-containers) |
+| Aspect | InfluxDB v2 (solti-monitoring) | InfluxDB v3 Core (solti-podman) |
|--------|-------------------------------|-------------------------------------|
| **Port** | 8086 | 8087 |
| **CLI** | `influx` | `influxdb3` |
diff --git a/docs/summaries/2026-01-16-Obsidian-Complete-Implementation.md b/docs/summaries/2026-01-16-Obsidian-Complete-Implementation.md
index 40ea8c1..266c9e5 100644
--- a/docs/summaries/2026-01-16-Obsidian-Complete-Implementation.md
+++ b/docs/summaries/2026-01-16-Obsidian-Complete-Implementation.md
@@ -330,4 +330,4 @@ The Obsidian role is **production-ready** and fully integrated into the SOLTI co
**Generated**: 2026-01-16T18:10:00-06:00
**Author**: Claude (Sonnet 4.5)
**Pattern**: docs/Claude-new-quadlet.md (MongoDB reference)
-**Collection**: solti-containers
+**Collection**: solti-podman
diff --git a/docs/summaries/2026-01-16-Obsidian-Podma-Deployment.md b/docs/summaries/2026-01-16-Obsidian-Podma-Deployment.md
index 73a69c0..db1f3e4 100644
--- a/docs/summaries/2026-01-16-Obsidian-Podma-Deployment.md
+++ b/docs/summaries/2026-01-16-Obsidian-Podma-Deployment.md
@@ -285,4 +285,4 @@ The Obsidian role successfully deployed to **podma** without any code changes, d
**Generated**: 2026-01-16T18:21:00-06:00
**Host**: podma.a0a0.org
**Pattern**: docs/Claude-new-quadlet.md Phase 9
-**Collection**: solti-containers
+**Collection**: solti-podman
diff --git a/docs/summaries/2026-01-16-README-Standardization.md b/docs/summaries/2026-01-16-README-Standardization.md
index 84d1cd2..88129e1 100644
--- a/docs/summaries/2026-01-16-README-Standardization.md
+++ b/docs/summaries/2026-01-16-README-Standardization.md
@@ -271,7 +271,7 @@ For any README:
## Conclusion
-**Obsidian README is now the gold standard** for service documentation in solti-containers collection. It includes:
+**Obsidian README is now the gold standard** for service documentation in solti-podman collection. It includes:
- All required sections
- Complete service management commands
diff --git a/docs/summaries/2026-01-16-Session-Index.md b/docs/summaries/2026-01-16-Session-Index.md
index 5d65dcd..3deb86e 100644
--- a/docs/summaries/2026-01-16-Session-Index.md
+++ b/docs/summaries/2026-01-16-Session-Index.md
@@ -250,5 +250,5 @@ The Obsidian role is production-ready and serves as a reference for future servi
**Generated**: 2026-01-16T18:25:00-06:00
**Session**: Claude (Sonnet 4.5) + User
-**Collection**: solti-containers
+**Collection**: solti-podman
**Pattern**: SOLTI (Systems Oriented Laboratory Testing Integration)
diff --git a/docs/summaries/README.md b/docs/summaries/README.md
index 66f073a..5355085 100644
--- a/docs/summaries/README.md
+++ b/docs/summaries/README.md
@@ -1,6 +1,6 @@
# Deployment Summaries
-This directory contains detailed summaries of significant deployments, implementations, and testing activities for the solti-containers collection.
+This directory contains detailed summaries of significant deployments, implementations, and testing activities for the solti-podman collection.
## Purpose
diff --git a/docs/templates/README-Template.md b/docs/templates/README-Template.md
index c47e3fe..2638555 100644
--- a/docs/templates/README-Template.md
+++ b/docs/templates/README-Template.md
@@ -1,6 +1,6 @@
# README Template for Service Roles
-Standard structure for service role README files in the solti-containers collection.
+Standard structure for service role README files in the solti-podman collection.
## Purpose
diff --git a/galaxy.yml b/galaxy.yml
index e1d40cf..894006f 100644
--- a/galaxy.yml
+++ b/galaxy.yml
@@ -1,6 +1,6 @@
---
namespace: jackaltx
-name: solti_containers
+name: solti_podman
version: 1.0.0
readme: README.md
authors:
@@ -18,10 +18,10 @@ tags:
dependencies:
"community.general": ">=10.0.0"
-repository: http://github.com/jackaltx/solti-containers
+repository: http://github.com/jackaltx/solti-podman
documentation: http://docs.jackaltx.com
-homepage: http://github.com/jackaltx/solti-containers
-issues: http://github.com/jackaltx/solti-containers/issue/tracker
+homepage: http://github.com/jackaltx/solti-podman
+issues: http://github.com/jackaltx/solti-podman/issue/tracker
build_ignore:
- "*.tar.gz"
diff --git a/inventory/README.md b/inventory/README.md
index 051f655..55ca377 100644
--- a/inventory/README.md
+++ b/inventory/README.md
@@ -4,7 +4,7 @@ This directory contains baseline configurations for testing container services a
## Purpose
-These inventories provide **baseline service configurations** for the solti-containers collection. They are designed for:
+These inventories provide **baseline service configurations** for the solti-podman collection. They are designed for:
- **Development testing** - Validate service deployments on local machines (localhost.yml)
- **Remote testing** - Test deployments on remote hosts (podma.yml)
diff --git a/inventory/_example.yml b/inventory/_example.yml
new file mode 100644
index 0000000..83c256c
--- /dev/null
+++ b/inventory/_example.yml
@@ -0,0 +1,105 @@
+---
+# _example.yml — template for adding a new host to solti-podman
+#
+# USAGE:
+# cp inventory/_example.yml inventory/hosts/myhostname.yml
+# Edit the copy — fill in real values, uncomment the services this host runs.
+# Keep your host files in a private git repo for backup.
+#
+# HOW IT WORKS:
+# svc-manage.sh -i inventory/myhostname.yml redis deploy
+# Ansible finds group_vars/ automatically since the file sits in inventory/.
+# Only services listed under "Service groups" below will be targeted.
+#
+# DNS / DOMAIN:
+# Service names below are subdomain prefixes only (e.g. "redis-myhost").
+# Full DNS name = {{ svc_name }}.{{ domain }}
+# domain is set in group_vars/all.yml via:
+# export LAB_TLD='yourdomain.com' # in ~/.secrets/LabProvision
+#
+# SECRETS:
+# Credentials are never stored here — they come from environment variables.
+# Source your secrets file before running: source ~/.secrets/LabProvision
+
+all:
+ children:
+ mylab:
+ hosts:
+ myhostname:
+
+ # ── Connection — local host ────────────────────────────────────────
+ ansible_connection: local
+ ansible_user: youruser
+
+ # ── Connection — remote host (uncomment, remove local above) ───────
+ # ansible_host: "myhostname.{{ domain }}"
+ # ansible_user: youruser
+ # ansible_ssh_private_key_file: ~/.ssh/id_ed25519
+
+ children:
+
+ # ── Service groups — uncomment every service this host runs ──────────
+ # Order matters: traefik first (creates networks used by other services)
+
+ # traefik_svc:
+ # hosts:
+ # myhostname:
+ # traefik_svc_name: "traefik-myhostname"
+
+ # redis_svc:
+ # hosts:
+ # myhostname:
+ # redis_svc_name: "redis-myhostname"
+
+ # elasticsearch_svc:
+ # hosts:
+ # myhostname:
+ # elasticsearch_svc_name: "elasticsearch-myhostname"
+ # elasticsearch_alt_svc_name: "es-myhostname"
+
+ # hashivault_svc:
+ # hosts:
+ # myhostname:
+ # hashivault_svc_name: "vault-myhostname"
+ # hashivault_alt_svc_name: "hashivault-myhostname"
+
+ # minio_svc:
+ # hosts:
+ # myhostname:
+ # minio_api_svc_name: "s3-myhostname"
+ # minio_console_svc_name: "minio-myhostname"
+
+ # grafana_svc:
+ # hosts:
+ # myhostname:
+ # grafana_svc_name: "grafana-myhostname"
+
+ # influxdb3_svc:
+ # hosts:
+ # myhostname:
+ # influxdb3_svc_name: "influxdb3-myhostname"
+
+ # mattermost_svc:
+ # hosts:
+ # myhostname:
+ # mattermost_svc_name: "mm-myhostname"
+
+ # gitea_svc:
+ # hosts:
+ # myhostname:
+ # gitea_svc_name: "gitea-myhostname"
+
+ # mongodb_svc:
+ # hosts:
+ # myhostname:
+ # mongodb_svc_name: "mongodb-myhostname"
+
+ # obsidian_svc:
+ # hosts:
+ # myhostname:
+ # obsidian_svc_name: "obsidian-myhostname"
+
+ # conduit_svc:
+ # hosts:
+ # myhostname:
+ # conduit_svc_name: "conduit-myhostname"
diff --git a/inventory/localhost.yml b/inventory/localhost.yml
index 20f60de..471b08f 100644
--- a/inventory/localhost.yml
+++ b/inventory/localhost.yml
@@ -1,5 +1,5 @@
---
-# Container services inventory for solti-containers collection
+# Container services inventory for solti-podman collection
# Used by manage-svc.sh
#
# Pattern: Central host registry + capability groups
diff --git a/inventory/podma.yml b/inventory/podma.yml
index 454e15f..f981f6e 100644
--- a/inventory/podma.yml
+++ b/inventory/podma.yml
@@ -1,5 +1,5 @@
---
-# Container services inventory for solti-containers collection
+# Container services inventory for solti-podman collection
# Used by manage-svc.sh
#
# Pattern: Central host registry + capability groups
diff --git a/inventory/uut-proxmox.yml b/inventory/uut-proxmox.yml
index b0d1499..818acd6 100644
--- a/inventory/uut-proxmox.yml
+++ b/inventory/uut-proxmox.yml
@@ -1,5 +1,5 @@
---
-# Container services inventory for solti-containers collection
+# Container services inventory for solti-podman collection
# Used by manage-svc.sh
#
# Pattern: Central host registry + capability groups
diff --git a/molecule/vars/services.yml b/molecule/vars/services.yml
index 7fb07d5..ee02f12 100644
--- a/molecule/vars/services.yml
+++ b/molecule/vars/services.yml
@@ -1,5 +1,5 @@
---
-# Service definitions for solti-containers molecule testing.
+# Service definitions for solti-podman molecule testing.
# verify_role_tasks is an ordered list of role tasks — sequence is the semantics.
# Initialization, unsealing, and health checks all go here in the right order.
# required_packages removed — proxmox scenario targets a pre-provisioned VM.
diff --git a/playbooks/mm-module-test.yml b/playbooks/mm-module-test.yml
index 7097f66..2960037 100644
--- a/playbooks/mm-module-test.yml
+++ b/playbooks/mm-module-test.yml
@@ -13,7 +13,7 @@
tasks:
# First authenticate and get a token
- name: Verify security settings
- jackaltx.solti_containers.mattermost:
+ jackaltx.solti_podman.mattermost:
url: "{{ mattermost_url }}"
username: "{{ admin_username }}"
password: "{{ admin_password }}"
@@ -27,7 +27,7 @@
# Create a new user (reusing the token from before)
- name: Create test user
- jackaltx.solti_containers.mattermost:
+ jackaltx.solti_podman.mattermost:
url: "{{ mattermost_url }}"
token: "{{ security_results.token }}"
action: create_user
@@ -55,7 +55,7 @@
# ..................................................................................
# Post notification to a channel
- name: Post notification
- jackaltx.solti_containers.mattermost:
+ jackaltx.solti_podman.mattermost:
url: "{{ mattermost_url }}"
token: "{{ security_results.token }}"
action: post_message
diff --git a/prepare-solti-env.sh b/prepare-solti-env.sh
index d3499f8..5ff16d4 100755
--- a/prepare-solti-env.sh
+++ b/prepare-solti-env.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# prepare-solti-env.sh - Setup Python virtual environment for solti-containers testing
+# prepare-solti-env.sh - Setup Python virtual environment for solti-podman testing
set -e # Exit on error
diff --git a/prompts.txt b/prompts.txt
index 5044df1..0a4b1ac 100644
--- a/prompts.txt
+++ b/prompts.txt
@@ -41,7 +41,7 @@ It would be good to check the roles for syntax only if desired
==================================================================
-Debug solti-containers: mattermost
+Debug solti-podman: mattermost
1. remove root requirement from role. add a playbook that runs on debian and rhel to package install and make that become:
diff --git a/requirements.txt b/requirements.txt
index f17e2c3..45850bf 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
-# Python requirements for solti-containers development
+# Python requirements for solti-podman development
# Generated manually - update with: pip freeze > requirements.txt
ansible-core>=2.17.0
diff --git a/roles/_base/handlers/main.yml b/roles/_base/handlers/main.yml
index 8db62f0..2b87870 100644
--- a/roles/_base/handlers/main.yml
+++ b/roles/_base/handlers/main.yml
@@ -21,7 +21,7 @@
solti:
schema: "deploy.complete.v1"
timestamp: "{{ ansible_date_time.iso8601 }}"
- source: "solti-containers/{{ service_properties.root }}/{{ inventory_hostname }}"
+ source: "solti-podman/{{ service_properties.root }}/{{ inventory_hostname }}"
data:
service: "{{ service_properties.root }}"
host: "{{ inventory_hostname }}"
diff --git a/roles/_base/tasks/matrix_event.yml b/roles/_base/tasks/matrix_event.yml
index 150c790..3fa4c53 100644
--- a/roles/_base/tasks/matrix_event.yml
+++ b/roles/_base/tasks/matrix_event.yml
@@ -14,7 +14,7 @@
solti:
schema: "deploy.complete.v1"
timestamp: "{{ ansible_date_time.iso8601 }}"
- source: "solti-containers/{{ service_properties.root }}/{{ inventory_hostname }}"
+ source: "solti-podman/{{ service_properties.root }}/{{ inventory_hostname }}"
data:
service: "{{ service_properties.root }}"
host: "{{ inventory_hostname }}"
@@ -22,7 +22,7 @@
operator: "{{ ansible_user }}"
duration: 0 # TODO: calculate from task timestamps
status: "{{ deployment_status | default('success') }}"
- # solti-containers specific
+ # solti-podman specific
service_properties: "{{ service_properties }}"
# failure data (only present on errors)
error: "{{ deployment_error | default(omit) }}"
diff --git a/solti-docs.yml b/solti-docs.yml
new file mode 100644
index 0000000..31a9769
--- /dev/null
+++ b/solti-docs.yml
@@ -0,0 +1,36 @@
+title: "Podman Services"
+section: "Services"
+subsection: "Podman"
+nav_order: 1
+description: "Rootless Podman container services with Quadlet/systemd integration"
+
+sources:
+ - file: CLAUDE.md
+ sections:
+ - "Core Commands"
+ - "Architecture Overview"
+ - "Development Patterns"
+ - "Key Configuration"
+ - file: docs/architecture/Container-Role-Architecture.md
+ title: "Container Role Architecture"
+ - file: docs/architecture/Solti-Container-Pattern.md
+ title: "The Solti Pattern"
+ - file: docs/architecture/Rootless-Podman-Network-Constraints.md
+ title: "Network Constraints"
+ - file: docs/decisions/TLS-Architecture-Decision.md
+ title: "TLS Architecture"
+ - file: docs/decisions/Traefik-Label-Consolidation-Pattern.md
+ title: "Traefik Label Pattern"
+ - file: inventory/_example.yml
+ type: example
+ title: "Example Host Inventory"
+ - file: galaxy.yml
+ type: metadata
+
+# Seed concepts — documented when git history shows enough weight
+concepts:
+ - "rootless permissions"
+ - "proxmox molecule testing"
+ - "inventory architecture"
+ - "selinux volume mounts"
+ - "real user directory"