Signed-off-by: ale <ale@manalejandro.com>
Este commit está contenido en:
ale
2026-01-19 00:03:30 +01:00
padre 2156c1d301
commit 8ccd72b675
Se han modificado 15 ficheros con 201 adiciones y 36 borrados

Ver fichero

@@ -8,13 +8,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
### Added
- Nothing yet
- Build and test scripts for package verification (test-install.sh, quick-build.sh)
### Changed
- Nothing yet
- Updated Docker dependency from `docker.io` to official Docker Engine (`docker-ce`) from Docker's official Debian repository
- Updated all documentation to include official Docker repository setup instructions
- Updated installation guides with comprehensive Docker Engine installation steps for Debian and Ubuntu
- Updated image generators (ISO, QCOW2) to install Docker Engine from official repository
- Updated CLI help text to show official Docker installation instructions
### Fixed
- Nothing yet
- Fixed debian/rules to properly use pybuild with pyproject.toml
- Fixed entry points in pyproject.toml (debai.cli.main:main instead of debai.cli:main)
- Fixed Debian package to correctly install debai and debai-gui executables
- Updated build dependencies in debian/control to include dh-python and pybuild-plugin-pyproject
- Fixed PYBUILD_DESTDIR to install files to correct package directory (debian/debai)
- Fixed debian/debai.manpages to point to correct man page location (docs/debai.1)
- Fixed GTK4 GUI CSS loading - replaced deprecated Gtk.Settings.get_default().get_display() with Gdk.Display.get_default()
- Added Gdk import to GUI application for proper display handling
## [1.0.0] - 2026-01-18

Ver fichero

@@ -52,7 +52,7 @@ By participating in this project, you agree to maintain a respectful and inclusi
- Python 3.10 or later
- GTK 4.0 and libadwaita 1.0
- Docker (for model testing)
- Docker Engine from official Docker repository (for model testing)
### Setting Up
@@ -61,6 +61,24 @@ By participating in this project, you agree to maintain a respectful and inclusi
git clone https://github.com/YOUR_USERNAME/debai.git
cd debai
# Install Docker Engine from official repository (if not already installed)
# Add Docker's official GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo \"$VERSION_CODENAME\") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install Docker Engine
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Create virtual environment
python3 -m venv venv
source venv/bin/activate

Ver fichero

@@ -174,6 +174,7 @@ Total: ~6,500 lines of code across 45+ files
- **CLI Framework**: Click + Rich
- **GUI Framework**: GTK4 + libadwaita
- **AI Models**: Docker Model Runner
- **Container Runtime**: Docker Engine (docker-ce) from official Docker repository
- **Agent Framework**: cagent
- **Configuration**: YAML
- **Templating**: Jinja2
@@ -279,14 +280,31 @@ debai generate compose
## Next Steps for Users
1. **Install Dependencies**:
1. **Install Docker Engine from Official Repository**:
```bash
sudo apt install docker.io qemu-utils genisoimage
# Add Docker's official GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Install other tools
sudo apt install qemu-utils genisoimage
```
2. **Configure Docker**:
```bash
sudo usermod -aG docker $USER
sudo systemctl enable docker
sudo systemctl start docker
```
3. **Pull Models**:

Ver fichero

@@ -49,8 +49,26 @@ sudo apt-get install -f
git clone https://github.com/manalejandro/debai.git
cd debai
# Install dependencies
sudo apt install python3-pip python3-gi gir1.2-gtk-4.0 gir1.2-adw-1 docker.io
# Install Docker from official repository
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install Docker Engine
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Install other dependencies
sudo apt install python3-pip python3-gi gir1.2-gtk-4.0 gir1.2-adw-1
# Install Debai
pip install -e .
@@ -261,7 +279,7 @@ User-specific configuration: `~/.config/debai/config.yaml`
- **Required**: python3, python3-pip, python3-gi
- **For GUI**: gir1.2-gtk-4.0, gir1.2-adw-1
- **For Models**: docker.io
- **For Models**: docker-ce (from official Docker repository)
- **For Images**: qemu-utils, genisoimage
## Building from Source
@@ -319,6 +337,7 @@ Debai is released under the [GNU General Public License v3.0](LICENSE).
## Acknowledgments
- [Docker Engine](https://docs.docker.com/engine/) - Container runtime for AI models
- [Docker Model Runner](https://docs.docker.com/model-runner/) - Local AI model inference
- [cagent](https://github.com/cagent/cagent) - Agent framework
- [GTK4](https://gtk.org) - GUI toolkit

Ver fichero

@@ -14,8 +14,9 @@ command -v dpkg-buildpackage >/dev/null 2>&1 || {
# Clean previous builds
echo "Cleaning previous builds..."
rm -rf debian/debai debian/.debhelper debian/tmp
rm -f debian/files debian/debai.substvars
sudo rm -rf debian/debai debian/debai-doc debian/.debhelper debian/tmp debian/python3-debai
sudo rm -rf .pybuild build dist src/*.egg-info
rm -f debian/files debian/debai.substvars debian/debai-doc.substvars
rm -f ../debai_*.deb ../debai_*.buildinfo ../debai_*.changes
# Build the package

6
debian/control vendido
Ver fichero

@@ -3,12 +3,14 @@ Section: utils
Priority: optional
Maintainer: Debai Team <debai@example.com>
Build-Depends: debhelper-compat (= 13),
dh-python,
dh-sequence-python3,
python3-all,
python3-setuptools,
python3-wheel,
python3-build,
python3-pip
python3-pip,
pybuild-plugin-pyproject
Standards-Version: 4.6.2
Homepage: https://github.com/manalejandro/debai
Vcs-Git: https://github.com/manalejandro/debai.git
@@ -29,7 +31,7 @@ Depends: ${python3:Depends},
python3-gi,
gir1.2-gtk-4.0,
gir1.2-adw-1
Recommends: docker.io,
Recommends: docker-ce,
qemu-utils,
genisoimage
Suggests: qemu-system-x86

Ver fichero

@@ -1 +1 @@
debian/tmp/man/debai.1 usr/share/man/man1/
docs/debai.1

12
debian/rules vendido
Ver fichero

@@ -2,17 +2,14 @@
export DH_VERBOSE = 1
export PYBUILD_NAME = debai
export PYBUILD_SYSTEM = pyproject
export PYBUILD_DESTDIR = debian/debai
%:
dh $@ --with python3
dh $@ --with python3 --buildsystem=pybuild
override_dh_auto_build:
dh_auto_build
# Build man pages
mkdir -p debian/tmp/man
help2man --no-info --name="AI Agent Management System" \
--output=debian/tmp/man/debai.1 \
./src/debai/cli/main.py || true
override_dh_auto_install:
dh_auto_install
@@ -29,9 +26,6 @@ override_dh_auto_install:
install -D -m 644 data/config/debai.yaml \
debian/debai/etc/debai/config.yaml
override_dh_installman:
dh_installman debian/tmp/man/*.1 || true
override_dh_installsystemd:
dh_installsystemd --name=debai

Ver fichero

@@ -29,9 +29,52 @@ sudo apt install -y \
#### Recommended
**Docker Engine from Official Repository:**
```bash
# Add Docker's official GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install Docker Engine, containerd, and Docker Compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
**For Ubuntu:**
```bash
# Add Docker's official GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install Docker Engine, containerd, and Docker Compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```
**Other utilities:**
```bash
sudo apt install -y \
docker.io \
qemu-utils \
genisoimage
```
@@ -81,6 +124,8 @@ pip install -e .
pip install -e ".[gui,dev,docs]"
```
**Note:** Docker Engine must be installed separately from the official Docker repository. See the "Recommended" dependencies section above for installation instructions.
### Method 4: Build Debian Package
```bash
@@ -118,14 +163,33 @@ debai init --full
### Configure Docker (Required for Models)
After installing Docker Engine from the official repository:
```bash
# Verify Docker installation
docker --version
# Add your user to docker group
sudo usermod -aG docker $USER
# Restart Docker service
sudo systemctl restart docker
# Enable Docker to start on boot
sudo systemctl enable docker
# You may need to log out and back in for group changes to take effect
# Or use: newgrp docker
```
**Test Docker installation:**
```bash
# Run test container
docker run hello-world
# Check if Docker daemon is running
sudo systemctl status docker
```
### Verify Installation

Ver fichero

@@ -10,7 +10,7 @@ debai \- AI Agent Management System for GNU/Linux
.B debai
is a comprehensive application for generating and managing AI agents that automate system tasks like package updates, application configuration, and resource management.
.PP
Debai uses local AI models via Docker Model Runner and local agents via cagent. It provides both a command-line interface and a graphical user interface (GTK4/Adwaita).
Debai uses local AI models via Docker Model Runner (requires Docker Engine from official Docker repository) and local agents via cagent. It provides both a command-line interface and a graphical user interface (GTK4/Adwaita).
.SH OPTIONS
.TP
.BR \-v ", " \-\-verbose
@@ -63,7 +63,7 @@ List available agent templates.
List available models.
.TP
.B model pull MODEL_ID
Pull a model from Docker Model Runner.
Pull a model from Docker Model Runner. Requires Docker Engine to be installed from the official Docker repository.
.TP
.B model remove MODEL_ID [\-f]
Remove a model. Use \-f to skip confirmation.

Ver fichero

@@ -66,8 +66,8 @@ docs = [
]
[project.scripts]
debai = "debai.cli:main"
debai-gui = "debai.gui:main"
debai = "debai.cli.main:main"
debai-gui = "debai.gui.main:main"
[project.urls]
Homepage = "https://github.com/manalejandro/debai"

Ver fichero

@@ -871,8 +871,18 @@ def init(ctx: click.Context, full: bool) -> None:
missing = [d for d, available in deps.items() if not available]
if missing:
console.print(f"[yellow]⚠ Missing dependencies: {', '.join(missing)}[/yellow]")
console.print("\nInstall with your package manager:")
console.print(" [dim]sudo apt install docker.io qemu-utils genisoimage[/dim]")
console.print("\nInstall Docker Engine from official repository:")
console.print(" [dim]# Add Docker's official GPG key[/dim]")
console.print(" [dim]sudo apt-get update[/dim]")
console.print(" [dim]sudo apt-get install ca-certificates curl[/dim]")
console.print(" [dim]sudo install -m 0755 -d /etc/apt/keyrings[/dim]")
console.print(" [dim]sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc[/dim]")
console.print(" [dim]sudo chmod a+r /etc/apt/keyrings/docker.asc[/dim]")
console.print("\n [dim]# Add Docker repository[/dim]")
console.print(" [dim]echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable\" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null[/dim]")
console.print("\n [dim]# Install Docker Engine and tools[/dim]")
console.print(" [dim]sudo apt-get update[/dim]")
console.print(" [dim]sudo apt-get install docker-ce docker-ce-cli containerd.io qemu-utils genisoimage[/dim]")
else:
console.print(" [green]✓[/green] All dependencies available")

Ver fichero

@@ -171,7 +171,17 @@ echo "Installing Debai - AI Agent System..."
# Install dependencies
apt-get update
apt-get install -y python3 python3-pip python3-venv docker.io qemu-utils
apt-get install -y python3 python3-pip python3-venv qemu-utils ca-certificates curl
# Install Docker from official repository
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/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/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Install Debai
pip3 install debai
@@ -346,7 +356,7 @@ d-i partman/confirm_nooverwrite boolean true
# Packages
tasksel tasksel/first multiselect standard
d-i pkgsel/include string python3 python3-pip docker.io openssh-server
d-i pkgsel/include string python3 python3-pip openssh-server ca-certificates curl
# GRUB
d-i grub-installer/only_debian boolean true
@@ -356,7 +366,13 @@ d-i grub-installer/bootdev string default
d-i finish-install/reboot_in_progress note
# Post-installation
d-i preseed/late_command string \\
d-i preseed/late_command string \
in-target install -m 0755 -d /etc/apt/keyrings; \
in-target curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc; \
in-target chmod a+r /etc/apt/keyrings/docker.asc; \
in-target sh -c 'echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null'; \
in-target apt-get update; \
in-target apt-get install -y docker-ce docker-ce-cli containerd.io; \
in-target pip3 install debai; \\
in-target systemctl enable docker; \\
in-target debai init

Ver fichero

@@ -135,12 +135,18 @@ class QCOW2Generator:
"python3",
"python3-pip",
"python3-venv",
"docker.io",
"qemu-guest-agent",
"ca-certificates",
"curl",
"git",
],
"runcmd": [
"install -m 0755 -d /etc/apt/keyrings",
"curl -fsSL https://download.docker.com/linux/debian/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/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null',
"apt-get update",
"apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin",
"systemctl enable docker",
"systemctl start docker",
"pip3 install debai",

Ver fichero

@@ -17,7 +17,7 @@ import gi
gi.require_version("Gtk", "4.0")
gi.require_version("Adw", "1")
from gi.repository import Adw, Gio, GLib, Gtk
from gi.repository import Adw, Gdk, Gio, GLib, Gtk
from debai import __version__
from debai.core.agent import AgentManager, AgentConfig, AgentType, get_agent_template, list_agent_templates
@@ -147,8 +147,14 @@ class DebaiApplication(Adw.Application):
provider = Gtk.CssProvider()
provider.load_from_data(css.encode())
# Get display from window or default display
if self.window:
display = self.window.get_display()
else:
display = Gdk.Display.get_default()
Gtk.StyleContext.add_provider_for_display(
self.window.get_display() if self.window else Gtk.Settings.get_default().get_display(),
display,
provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION,
)