17
CHANGELOG.md
17
CHANGELOG.md
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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**:
|
||||
|
||||
25
README.md
25
README.md
@@ -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
|
||||
|
||||
@@ -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
6
debian/control
vendido
@@ -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
|
||||
|
||||
2
debian/debai.manpages
vendido
2
debian/debai.manpages
vendido
@@ -1 +1 @@
|
||||
debian/tmp/man/debai.1 usr/share/man/man1/
|
||||
docs/debai.1
|
||||
|
||||
12
debian/rules
vendido
12
debian/rules
vendido
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
Referencia en una nueva incidencia
Block a user