# fablab-loritz/laptop_playbook architecture

> Architecture diagram of the GitHub repository fablab-loritz/laptop_playbook, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/fablab-loritz/laptop_playbook
- Repository: https://github.com/fablab-loritz/laptop_playbook

## Overview

This repository is an Ansible-based provisioning configuration for Loritz laptops running Linux Mint. The documented product workflow is provisioning those laptops with Ansible Pull. The tree shows separate playbook files for packages, users, cron, cleanup, and Loritz user setup, plus desktop configuration and file payloads. Source excerpts were not available, so the graph does not assume which playbook invokes another or how configuration files are applied.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_playbooks["Provisioning playbooks"]
  node_bootstrap["Bootstrap"]
  node_local_playbook["Local playbook<br/>[local.yml]"]
end

subgraph group_system["System setup"]
  node_packages["Packages<br/>[packages.yml]"]
  node_users["Users<br/>[users.yml]"]
  node_cleanup["Cleanup<br/>[cleanup.yml]"]
  node_cron["Scheduled tasks<br/>[cron.yml]"]
  node_bin_tasks["Binary setup<br/>[bin.yml]"]
  node_repositories["Package repositories"]
end

subgraph group_user["User environment"]
  node_loritz_user["Loritz user setup<br/>[loritz-user.yml]"]
  node_desktop_files["Desktop files"]
  node_autostart_files["Autostart files"]
  node_user_binaries["User utilities"]
  node_desktop_config["Desktop configuration"]
end

node_ansible_pull(("Ansible Pull"))
node_laptops["Linux Mint laptops"]

node_ansible_pull -->|"provisions"| node_laptops

click node_bootstrap "https://github.com/fablab-loritz/laptop_playbook/blob/main/bootstrap"
click node_local_playbook "https://github.com/fablab-loritz/laptop_playbook/blob/main/local.yml"
click node_packages "https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/packages.yml"
click node_users "https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/users.yml"
click node_cleanup "https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/cleanup.yml"
click node_cron "https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/cron.yml"
click node_bin_tasks "https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/bin.yml"
click node_loritz_user "https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/loritz-user.yml"
click node_desktop_files "https://github.com/fablab-loritz/laptop_playbook/tree/main/tasks/files/Bureau"
click node_autostart_files "https://github.com/fablab-loritz/laptop_playbook/tree/main/tasks/files/autostart"
click node_user_binaries "https://github.com/fablab-loritz/laptop_playbook/tree/main/tasks/files/bin"
click node_desktop_config "https://github.com/fablab-loritz/laptop_playbook/tree/main/tasks/files"
click node_repositories "https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/files/official-package-repositories.list"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_bootstrap,node_local_playbook toneBlue
class node_packages,node_users,node_cleanup,node_cron,node_bin_tasks,node_repositories toneAmber
class node_loritz_user,node_desktop_files,node_autostart_files,node_user_binaries,node_desktop_config toneMint
class node_ansible_pull,node_laptops toneIndigo
```

## Components

### Provisioning playbooks

- [Bootstrap](https://github.com/fablab-loritz/laptop_playbook/blob/main/bootstrap): `bootstrap`
- [Local playbook](https://github.com/fablab-loritz/laptop_playbook/blob/main/local.yml): `local.yml`

### System setup

- [Packages](https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/packages.yml): `tasks/packages.yml`
- [Users](https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/users.yml): `tasks/users.yml`
- [Cleanup](https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/cleanup.yml): `tasks/cleanup.yml`
- [Scheduled tasks](https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/cron.yml): `tasks/cron.yml`
- [Binary setup](https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/bin.yml): `tasks/bin.yml`
- [Package repositories](https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/files/official-package-repositories.list): `tasks/files/official-package-repositories.list`

### User environment

- [Loritz user setup](https://github.com/fablab-loritz/laptop_playbook/blob/main/tasks/loritz-user.yml): `tasks/loritz-user.yml`
- [Desktop files](https://github.com/fablab-loritz/laptop_playbook/tree/main/tasks/files/Bureau): `tasks/files/Bureau`
- [Autostart files](https://github.com/fablab-loritz/laptop_playbook/tree/main/tasks/files/autostart): `tasks/files/autostart`
- [User utilities](https://github.com/fablab-loritz/laptop_playbook/tree/main/tasks/files/bin): `tasks/files/bin`
- [Desktop configuration](https://github.com/fablab-loritz/laptop_playbook/tree/main/tasks/files): `tasks/files`

### Other components

- **Ansible Pull**
- **Linux Mint laptops**

## Connections

- Ansible Pull → Linux Mint laptops: provisions
