diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6c71a884..d85d1425 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,6 +35,11 @@ jobs: with: check-lockfile: 'true' + - name: Install RPM build tools (Linux) + if: matrix.os == 'ubuntu-latest' + shell: bash + run: sudo apt-get update && sudo apt-get install -y rpm + - name: Build Electron app (macOS) if: matrix.os == 'macos-latest' shell: bash @@ -73,7 +78,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: linux-builds - path: apps/ui/release/*.{AppImage,deb} + path: apps/ui/release/*.{AppImage,deb,rpm} retention-days: 30 upload: diff --git a/README.md b/README.md index 8bfd2a0a..ef8c7bc4 100644 --- a/README.md +++ b/README.md @@ -197,11 +197,30 @@ npm run build:electron # Platform-specific builds npm run build:electron:mac # macOS (DMG + ZIP, x64 + arm64) npm run build:electron:win # Windows (NSIS installer, x64) -npm run build:electron:linux # Linux (AppImage + DEB, x64) +npm run build:electron:linux # Linux (AppImage + DEB + RPM, x64) # Output directory: apps/ui/release/ ``` +**Linux Distribution Packages:** + +- **AppImage**: Universal format, works on any Linux distribution +- **DEB**: Ubuntu, Debian, Linux Mint, Pop!\_OS +- **RPM**: Fedora, RHEL, Rocky Linux, AlmaLinux, openSUSE + +**Installing on Fedora/RHEL:** + +```bash +# Download the RPM package +wget https://github.com/AutoMaker-Org/automaker/releases/latest/download/Automaker--x86_64.rpm + +# Install with dnf (Fedora) +sudo dnf install ./Automaker--x86_64.rpm + +# Or with yum (RHEL/CentOS) +sudo yum localinstall ./Automaker--x86_64.rpm +``` + #### Docker Deployment Docker provides the most secure way to run Automaker by isolating it from your host filesystem. diff --git a/apps/ui/package.json b/apps/ui/package.json index b28ad8c7..5742fb07 100644 --- a/apps/ui/package.json +++ b/apps/ui/package.json @@ -204,12 +204,35 @@ "arch": [ "x64" ] + }, + { + "target": "rpm", + "arch": [ + "x64" + ] } ], "category": "Development", "icon": "public/logo_larger.png", "maintainer": "webdevcody@gmail.com", - "executableName": "automaker" + "executableName": "automaker", + "description": "An autonomous AI development studio that helps you build software faster using AI-powered agents", + "synopsis": "AI-powered autonomous development studio" + }, + "rpm": { + "depends": [ + "gtk3", + "libnotify", + "nss", + "libXScrnSaver", + "libXtst", + "xdg-utils", + "at-spi2-core", + "libuuid" + ], + "compression": "xz", + "vendor": "AutoMaker Team", + "license": "SEE LICENSE IN LICENSE" }, "nsis": { "oneClick": false, diff --git a/docs/install-fedora.md b/docs/install-fedora.md new file mode 100644 index 00000000..5877e8ea --- /dev/null +++ b/docs/install-fedora.md @@ -0,0 +1,479 @@ +# Installing Automaker on Fedora/RHEL + +This guide covers installation of Automaker on Fedora, RHEL, Rocky Linux, AlmaLinux, and other RPM-based distributions. + +## Prerequisites + +Automaker requires: + +- **64-bit x86_64 architecture** +- **Fedora 39+** or **RHEL 9+** (earlier versions may work but not officially supported) +- **4GB RAM minimum**, 8GB recommended +- **~300MB disk space** for installation +- **Internet connection** for installation and Claude API access + +### Authentication + +You'll need one of the following: + +- **Claude CLI** (recommended) - `claude login` +- **API key** - Set `ANTHROPIC_API_KEY` environment variable + +See main [README.md authentication section](../README.md#authentication) for details. + +## Installation + +### Option 1: Download and Install from GitHub + +1. Visit [GitHub Releases](https://github.com/AutoMaker-Org/automaker/releases) +2. Find the latest release and download the `.rpm` file: + - Download: `Automaker--x86_64.rpm` + +3. Install using dnf (Fedora): + + ```bash + sudo dnf install ./Automaker--x86_64.rpm + ``` + + Or using yum (RHEL/CentOS): + + ```bash + sudo yum localinstall ./Automaker--x86_64.rpm + ``` + +### Option 2: Install Directly from URL + +Install from GitHub releases URL without downloading first: + +**Fedora:** + +```bash +sudo dnf install https://github.com/AutoMaker-Org/automaker/releases/latest/download/Automaker--x86_64.rpm +``` + +**RHEL/CentOS:** + +```bash +sudo yum install https://github.com/AutoMaker-Org/automaker/releases/latest/download/Automaker--x86_64.rpm +``` + +## Running Automaker + +After successful installation, launch Automaker: + +### From Application Menu + +- Open Activities/Applications +- Search for "Automaker" +- Click to launch + +### From Terminal + +```bash +automaker +``` + +## System Requirements & Capabilities + +### Hardware Requirements + +| Component | Minimum | Recommended | +| ------------ | ----------------- | ----------- | +| CPU | Modern multi-core | 4+ cores | +| RAM | 4GB | 8GB+ | +| Disk | 300MB | 1GB+ | +| Architecture | x86_64 | x86_64 | + +### Required Dependencies + +The RPM package automatically installs these dependencies: + +``` +gtk3 - GTK+ GUI library +libnotify - Desktop notification library +nss - Network Security Services +libXScrnSaver - X11 screensaver library +libXtst - X11 testing library +xdg-utils - XDG standards utilities +at-spi2-core - Accessibility library +libuuid - UUID library +``` + +Most of these are pre-installed on typical Fedora/RHEL systems. + +### Optional Dependencies + +For development (source builds only): + +- Node.js 22+ +- npm 10+ + +The packaged application includes its own Electron runtime and does not require system Node.js. + +## Supported Distributions + +**Officially Tested:** + +- Fedora 39, 40 (latest) +- Rocky Linux 9 +- AlmaLinux 9 + +**Should Work:** + +- CentOS Stream 9+ +- openSUSE Leap/Tumbleweed (with compatibility layer) +- RHEL 9+ + +**Not Supported:** + +- RHEL 8 (glibc 2.28 too old, requires Node.js 22) +- CentOS 7 and earlier +- Fedora versions older than 39 + +## Configuration + +### Environment Variables + +Set authentication via environment variable: + +```bash +export ANTHROPIC_API_KEY=sk-ant-... +automaker +``` + +Or create `~/.config/automaker/.env`: + +``` +ANTHROPIC_API_KEY=sk-ant-... +``` + +### Configuration Directory + +Automaker stores configuration and cache in: + +``` +~/.automaker/ # Project-specific data +~/.config/automaker/ # Application configuration +~/.cache/automaker/ # Cache and temporary files +``` + +## Troubleshooting + +### Application Won't Start + +**Check installation:** + +```bash +rpm -qi automaker +rpm -V automaker +``` + +**Verify desktop file:** + +```bash +cat /usr/share/applications/automaker.desktop +``` + +**Run from terminal for error output:** + +```bash +automaker +``` + +### Missing Dependencies + +If dependencies fail to install automatically: + +**Fedora:** + +```bash +sudo dnf install gtk3 libnotify nss libXScrnSaver libXtst xdg-utils at-spi2-core libuuid +``` + +**RHEL/CentOS (enable EPEL first if needed):** + +```bash +sudo dnf install epel-release +sudo dnf install gtk3 libnotify nss libXScrnSaver libXtst xdg-utils at-spi2-core libuuid +``` + +### SELinux Denials + +If Automaker fails on SELinux-enforced systems: + +**Temporary workaround (testing):** + +```bash +# Set SELinux to permissive mode +sudo setenforce 0 + +# Run Automaker +automaker + +# Check for denials +sudo ausearch -m avc -ts recent | grep automaker + +# Re-enable SELinux +sudo setenforce 1 +``` + +**Permanent fix (not recommended for production):** +Create custom SELinux policy based on ausearch output. For support, see [GitHub Issues](https://github.com/AutoMaker-Org/automaker/issues). + +### Port Conflicts + +Automaker uses port 3008 for the internal server. If port is already in use: + +**Find process using port 3008:** + +```bash +sudo ss -tlnp | grep 3008 +# or +lsof -i :3008 +``` + +**Kill conflicting process (if safe):** + +```bash +sudo kill -9 +``` + +Or configure Automaker to use different port (see Configuration section). + +### Firewall Issues + +On Fedora with firewalld enabled: + +```bash +# Allow internal traffic (local development only) +sudo firewall-cmd --add-port=3008/tcp +sudo firewall-cmd --permanent --add-port=3008/tcp +``` + +### GPU/Acceleration + +Automaker uses Chromium for rendering. GPU acceleration should work automatically on supported systems. + +**Check acceleration:** + +- Look for "GPU acceleration" status in application settings +- Verify drivers: `lspci | grep VGA` + +**Disable acceleration if issues occur:** + +```bash +DISABLE_GPU_ACCELERATION=1 automaker +``` + +### Terminal/Worktree Issues + +If terminal emulator fails or git worktree operations hang: + +1. Check disk space: `df -h` +2. Verify git installation: `git --version` +3. Check /tmp permissions: `ls -la /tmp` +4. File a GitHub issue with error output + +### Unresponsive GUI + +If the application freezes: + +1. Wait 30 seconds (AI operations may be processing) +2. Check process: `ps aux | grep automaker` +3. Force quit if necessary: `killall automaker` +4. Check system resources: `free -h`, `top` + +### Network Issues + +If Claude API calls fail: + +```bash +# Test internet connectivity +ping claude.ai + +# Test API access +curl -I https://api.anthropic.com + +# Verify API key +echo $ANTHROPIC_API_KEY +``` + +## Uninstallation + +### Remove Application + +**Fedora:** + +```bash +sudo dnf remove automaker +``` + +**RHEL/CentOS:** + +```bash +sudo yum remove automaker +``` + +### Clean Configuration (Optional) + +Remove all user data and configuration: + +```bash +# Remove project-specific data +rm -rf ~/.automaker + +# Remove application configuration +rm -rf ~/.config/automaker + +# Remove cache +rm -rf ~/.cache/automaker +``` + +**Warning:** This removes all saved projects and settings. Ensure you have backups if needed. + +## Building from Source + +To build Automaker from source on Fedora/RHEL: + +**Prerequisites:** + +```bash +# Fedora +sudo dnf install nodejs npm git + +# RHEL (enable EPEL first) +sudo dnf install epel-release +sudo dnf install nodejs npm git +``` + +**Build steps:** + +```bash +# Clone repository +git clone https://github.com/AutoMaker-Org/automaker.git +cd automaker + +# Install dependencies +npm install + +# Build packages +npm run build:packages + +# Build Linux packages +npm run build:electron:linux + +# Packages in: apps/ui/release/ +ls apps/ui/release/*.rpm +``` + +See main [README.md](../README.md) for detailed build instructions. + +## Updating Automaker + +**Automatic Updates:** +Automaker checks for updates on startup. Install available updates through notifications. + +**Manual Update:** + +```bash +# Fedora +sudo dnf update automaker + +# RHEL/CentOS +sudo yum update automaker + +# Or reinstall latest release +sudo dnf remove automaker +sudo dnf install https://github.com/AutoMaker-Org/automaker/releases/latest/download/Automaker--x86_64.rpm +``` + +## Getting Help + +### Resources + +- [Main README](../README.md) - Project overview +- [CONTRIBUTING.md](../CONTRIBUTING.md) - Contributing guide +- [GitHub Issues](https://github.com/AutoMaker-Org/automaker/issues) - Bug reports & feature requests +- [Discussions](https://github.com/AutoMaker-Org/automaker/discussions) - Questions & community + +### Reporting Issues + +When reporting Fedora/RHEL issues, include: + +```bash +# System information +lsb_release -a +uname -m + +# Automaker version +rpm -qi automaker + +# Error output (run from terminal) +automaker 2>&1 | tee automaker.log + +# SELinux status +getenforce + +# Relevant system logs +sudo journalctl -xeu automaker.service (if systemd service exists) +``` + +## Performance Tips + +1. **Use SSD**: Faster than spinning disk, significantly improves performance +2. **Close unnecessary applications**: Free up RAM for AI agent processing +3. **Disable GPU acceleration if glitchy**: Set `DISABLE_GPU_ACCELERATION=1` +4. **Keep system updated**: `sudo dnf update` +5. **Use latest Fedora/RHEL**: Newer versions have better Electron support + +## Security Considerations + +### API Key Security + +Never commit API keys to version control: + +```bash +# Good: Use environment variable +export ANTHROPIC_API_KEY=sk-ant-... + +# Good: Use .env file (not in git) +echo "ANTHROPIC_API_KEY=sk-ant-..." > ~/.config/automaker/.env + +# Bad: Hardcoded in files +ANTHROPIC_API_KEY="sk-ant-..." (in any tracked file) +``` + +### SELinux Security + +Running with SELinux disabled (`setenforce 0`) reduces security. Create custom policy: + +1. Generate policy from audit logs: `ausearch -m avc -ts recent | grep automaker` +2. Use selinux-policy tools to create module +3. Install and test module +4. Keep SELinux enforcing + +### File Permissions + +Ensure configuration files are readable by user only: + +```bash +chmod 600 ~/.config/automaker/.env +chmod 700 ~/.automaker/ +chmod 700 ~/.config/automaker/ +``` + +## Known Limitations + +1. **Single display support**: Multi-monitor setups may have cursor synchronization issues +2. **X11 only**: Wayland support limited (runs under XWayland) +3. **No native systemd service**: Manual launcher or desktop file shortcut +4. **ARM/ARM64**: Not supported, x86_64 only + +## Contributing + +Found an issue or want to improve Fedora support? See [CONTRIBUTING.md](../CONTRIBUTING.md). + +--- + +**Last Updated**: 2026-01-16 +**Tested On**: Fedora 40, Rocky Linux 9, AlmaLinux 9