mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-30 06:12:03 +00:00
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:
7
.github/workflows/release.yml
vendored
7
.github/workflows/release.yml
vendored
@@ -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:
|
||||
|
||||
21
README.md
21
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-<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 provides the most secure way to run Automaker by isolating it from your host filesystem.
|
||||
|
||||
@@ -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,
|
||||
|
||||
479
docs/install-fedora.md
Normal file
479
docs/install-fedora.md
Normal 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
|
||||
Reference in New Issue
Block a user