This repository contains the infrastructure as code (IaC), applications, and configurations to run a comprehensive, self-hosted smart home and AI assistant solution. The goal is to provision and manage a unified environment spanning a Proxmox node, Home Assistant, OpenClaw AI, and supplementary bridges like BlueBubbles.
graph TD;
subgraph Control_Machine [Control Machine]
Ansible[Ansible Playbooks]
end
subgraph Proxmox_Node [Proxmox Node / Mini PC]
HA[Home Assistant VM 100\nPorts: 8123]
Docker[Docker LXC 101]
OpenClaw[OpenClaw AI LXC 102\nPorts: 8000]
Other[Other Services / BlueBubbles]
end
Ansible -- SSH / API --> Proxmox_Node
Ansible -- Configure --> HA
Ansible -- Deploy --> Docker
Ansible -- Setup --> OpenClaw
User((User)) -->|HTTPS :8006| Proxmox_Node
User -->|HTTP :8123| HA
User -->|HTTP :8000| OpenClaw
The project is organized into multiple sub-solutions for modularity and ease of maintenance:
jarvis-agent/
├── README.md # The "Master Plan" and architecture diagram
├── ansible/ # All infrastructure automation
│ ├── inventory.yml # IPs for all target nodes (e.g., Mini PC, MacBooks)
│ ├── group_vars/ # Shared variables across hosts (e.g., configurations, secrets templates)
│ ├── roles/ # Modular tasks (e.g., setup-proxmox, ha-restore, lxc-docker)
│ └── site.yml # Main playbook to provision the entire infrastructure
├── apps/ # Actual software/agent code
│ ├── openclaw/ # OpenClaw logic, skill scripts, and API wrappers
│ └── bluebubbles/ # Configuration and backups for the iMessage bridge
├── home-assistant/ # Home Assistant configurations
│ ├── blueprints/ # Reusable automation blueprints
│ ├── automations.yaml # Explicit automation configurations
│ └── dashboards/ # UI and Lovelace YAML definitions
This project uses an "agentless" architecture via Ansible. You do not run this directly on the target servers.
- The Control Machine (e.g., Your Mac/PC): This is where you store this project and where you run the Ansible playbooks. It needs Ansible installed.
- The Target Server(s): This includes the Proxmox Node and potentially other devices on your network. They typically only need a fresh OS or hypervisor install. Ansible will automatically configure them.
- Ansible: Ensure Ansible is installed on your control machine (
pip install ansible). - Target Hardware: Ensure your target node (e.g., a Mini PC) has a fresh Proxmox VE installation.
- SSH Access: You need Root SSH access to your Proxmox server.
Navigate to the ansible/ directory and update the inventory.yml to point to your target IPs and credentials:
all:
children:
proxmox:
hosts:
proxmox-node:
ansible_host: 192.168.1.100 # REPLACE with your actual IPAlso, review ansible/group_vars/proxmox.yml and set your proxmox_api_password and other necessary variables.
Install the required Ansible collections:
cd ansible
ansible-galaxy collection install -r requirements.ymlExecute the main playbook to begin provisioning your home infrastructure:
ansible-playbook site.yml