-
Notifications
You must be signed in to change notification settings - Fork 19
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6 changed files
with
357 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
name: MOR Agents Build Linux | ||
|
||
on: | ||
push: | ||
branches: [ main ] | ||
pull_request: | ||
branches: [ main ] | ||
workflow_dispatch: | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: 'recursive' | ||
|
||
- name: Set up Python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.12' | ||
|
||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install -r requirements.txt | ||
pip install pyinstaller | ||
- name: Build with PyInstaller | ||
run: | | ||
pyinstaller --name="MORagents" --add-data "images/moragents.png:images" main.py | ||
- name: Create Debian package | ||
run: | | ||
mkdir -p debian/DEBIAN | ||
mkdir -p debian/usr/bin | ||
mkdir -p debian/usr/share/applications | ||
mkdir -p debian/usr/share/icons/hicolor/256x256/apps | ||
cp -r dist/MORagents/* debian/usr/bin/ | ||
cp images/moragents.png debian/usr/share/icons/hicolor/256x256/apps/moragents.png | ||
echo "[Desktop Entry] | ||
Name=MORagents | ||
Exec=/usr/bin/MORagents | ||
Icon=moragents | ||
Type=Application | ||
Categories=Utility;" > debian/usr/share/applications/moragents.desktop | ||
echo "Package: moragents | ||
Version: 1.0 | ||
Section: utils | ||
Priority: optional | ||
Architecture: amd64 | ||
Maintainer: LachsBagel | ||
Description: MORagents application | ||
MORagents is a desktop application for AI agents." > debian/DEBIAN/control | ||
# Create postinst script | ||
cat << EOF > debian/DEBIAN/postinst | ||
#!/bin/bash | ||
set -e | ||
# Function to wait for apt lock to be released | ||
wait_for_apt_lock() { | ||
while fuser /var/lib/dpkg/lock >/dev/null 2>&1 || fuser /var/lib/apt/lists/lock >/dev/null 2>&1 || fuser /var/cache/apt/archives/lock >/dev/null 2>&1 | ||
do | ||
echo "Waiting for other software managers to finish..." | ||
sleep 5 | ||
done | ||
} | ||
# Function to install a package | ||
install_package() { | ||
package_name=$1 | ||
if ! dpkg -s $package_name >/dev/null 2>&1; then | ||
echo "Installing $package_name..." | ||
wait_for_apt_lock | ||
apt-get update | ||
apt-get install -y $package_name | ||
else | ||
echo "$package_name is already installed." | ||
fi | ||
} | ||
# Install curl | ||
install_package curl | ||
# Install Docker if not present | ||
if ! command -v docker &> /dev/null; then | ||
echo "Installing Docker..." | ||
curl -fsSL https://get.docker.com -o get-docker.sh | ||
sh get-docker.sh | ||
usermod -aG docker $SUDO_USER | ||
systemctl enable docker | ||
systemctl start docker | ||
else | ||
echo "Docker is already installed." | ||
fi | ||
# Pull necessary Docker images | ||
echo "Pulling Docker images..." | ||
docker pull morpheusai/nginx-agent:latest | ||
docker pull morpheusai/agents:latest | ||
# Start Docker containers | ||
echo "Starting Docker containers..." | ||
docker run -d --name agents -p 8080:5000 --restart always -v /var/lib/agents -v /app/src morpheusai/agents:latest | ||
docker run -d --name nginx -p 3333:80 morpheusai/nginx-agent:latest | ||
echo "Installation complete!" | ||
echo "You can now start MORagents from your application menu or by running 'MORagents' in the terminal." | ||
EOF | ||
chmod 755 debian/DEBIAN/postinst | ||
dpkg-deb --build debian moragents.deb | ||
- name: Upload Debian Package | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: MORagentsSetup-Linux | ||
path: moragents.deb |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
#!/bin/bash | ||
|
||
# Colors for output | ||
RED='\033[0;31m' | ||
GREEN='\033[0;32m' | ||
NC='\033[0m' # No Color | ||
|
||
# Function to check if a command exists | ||
command_exists() { | ||
command -v "$1" >/dev/null 2>&1 | ||
} | ||
|
||
# Check if script is run as root | ||
if [ "$EUID" -ne 0 ]; then | ||
echo -e "${RED}Please run as root${NC}" | ||
exit 1 | ||
fi | ||
|
||
echo "Welcome to the MORagents installer for Linux" | ||
|
||
# Check and install Docker if not present | ||
if ! command_exists docker; then | ||
echo "Docker not found. Installing Docker..." | ||
curl -fsSL https://get.docker.com -o get-docker.sh | ||
sh get-docker.sh | ||
usermod -aG docker $SUDO_USER | ||
systemctl enable docker | ||
systemctl start docker | ||
else | ||
echo "Docker is already installed." | ||
fi | ||
|
||
# Check and install Python if not present | ||
if ! command_exists python3; then | ||
echo "Python3 not found. Installing Python3..." | ||
apt update | ||
apt install -y python3 python3-pip | ||
else | ||
echo "Python3 is already installed." | ||
fi | ||
|
||
# Install the .deb package | ||
echo "Installing MORagents..." | ||
dpkg -i moragents.deb | ||
apt-get install -f -y | ||
|
||
# Pull necessary Docker images | ||
echo "Pulling Docker images..." | ||
docker pull morpheusai/nginx-agent:latest | ||
docker pull morpheusai/agents:latest | ||
|
||
# Start Docker containers | ||
echo "Starting Docker containers..." | ||
docker run -d --name agents -p 8080:5000 --restart always -v /var/lib/agents -v /app/src morpheusai/agents:latest | ||
docker run -d --name nginx -p 3333:80 morpheusai/nginx-agent:latest | ||
|
||
echo -e "${GREEN}Installation complete!${NC}" | ||
echo "You can now start MORagents from your application menu or by running 'MORagents' in the terminal." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.