feat: add Fedora/RHEL RPM package support with comprehensive documentation

Add native RPM package building for Fedora-based distributions:
- Extend electron-builder configuration to include RPM target
- Add rpm-build installation to GitHub Actions CI/CD workflow
- Update artifact upload patterns to include .rpm files
- Declare proper RPM dependencies (gtk3, libnotify, nss, etc.)
- Use xz compression for optimal package size

Documentation:
- Update README.md with Fedora/RHEL installation instructions
- Create comprehensive docs/install-fedora.md guide covering:
  - Installation methods (dnf/yum, direct URL)
  - System requirements and capabilities
  - Configuration and troubleshooting
  - SELinux handling and firewall rules
  - Performance tips and security considerations
  - Building from source
- Support for Fedora 39+, RHEL 9+, Rocky Linux, AlmaLinux

End-to-end support enables Fedora users to install Automaker via:
  sudo dnf install ./Automaker-<version>-x86_64.rpm

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
DhanushSantosh
2026-01-16 12:31:30 +05:30
parent 379551c40e
commit 6529446281
4 changed files with 529 additions and 3 deletions

View File

@@ -35,6 +35,11 @@ jobs:
with: with:
check-lockfile: 'true' 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) - name: Build Electron app (macOS)
if: matrix.os == 'macos-latest' if: matrix.os == 'macos-latest'
shell: bash shell: bash
@@ -73,7 +78,7 @@ jobs:
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: linux-builds name: linux-builds
path: apps/ui/release/*.{AppImage,deb} path: apps/ui/release/*.{AppImage,deb,rpm}
retention-days: 30 retention-days: 30
upload: upload:

View File

@@ -197,11 +197,30 @@ npm run build:electron
# Platform-specific builds # Platform-specific builds
npm run build:electron:mac # macOS (DMG + ZIP, x64 + arm64) npm run build:electron:mac # macOS (DMG + ZIP, x64 + arm64)
npm run build:electron:win # Windows (NSIS installer, x64) 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/ # 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-<version>-x86_64.rpm
# Install with dnf (Fedora)
sudo dnf install ./Automaker-<version>-x86_64.rpm
# Or with yum (RHEL/CentOS)
sudo yum localinstall ./Automaker-<version>-x86_64.rpm
```
#### Docker Deployment #### Docker Deployment
Docker provides the most secure way to run Automaker by isolating it from your host filesystem. Docker provides the most secure way to run Automaker by isolating it from your host filesystem.

View File

@@ -204,12 +204,35 @@
"arch": [ "arch": [
"x64" "x64"
] ]
},
{
"target": "rpm",
"arch": [
"x64"
]
} }
], ],
"category": "Development", "category": "Development",
"icon": "public/logo_larger.png", "icon": "public/logo_larger.png",
"maintainer": "webdevcody@gmail.com", "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": { "nsis": {
"oneClick": false, "oneClick": false,

479
docs/install-fedora.md Normal file
View File

@@ -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-<version>-x86_64.rpm`
3. Install using dnf (Fedora):
```bash
sudo dnf install ./Automaker-<version>-x86_64.rpm
```
Or using yum (RHEL/CentOS):
```bash
sudo yum localinstall ./Automaker-<version>-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-<version>-x86_64.rpm
```
**RHEL/CentOS:**
```bash
sudo yum install https://github.com/AutoMaker-Org/automaker/releases/latest/download/Automaker-<version>-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 <PID>
```
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-<version>-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