Third-Party Repository Management
Managing third-party package repositories on individual hosts through the SysManage web interface.
Overview
SysManage provides a graphical interface for managing third-party package repositories on individual hosts. This feature allows administrators to view, add, enable, disable, and remove repositories like Ubuntu PPAs, Fedora COPR repositories, openSUSE OBS repositories, macOS Homebrew taps, FreeBSD/NetBSD custom repositories, and Windows Chocolatey sources directly from the web UI.
Key Capabilities
- View Current Repositories: See all third-party repositories currently configured on a host
- Add Repositories: Add new repositories using OS-specific formats (PPA, COPR, OBS, Homebrew taps, etc.)
- Enable/Disable: Toggle repositories on and off without removing them
- Remove Repositories: Delete unwanted repositories from the host
- Multi-Platform Support: Works across Debian/Ubuntu, RHEL/Fedora/CentOS, openSUSE/SLES, FreeBSD, NetBSD, macOS, and Windows
- Real-Time Updates: Changes are sent to the host agent and applied immediately
⚠️ Important Notes
- This feature requires the host to be in privileged mode (running as root/administrator)
- You must have appropriate security role permissions (ADD_THIRD_PARTY_REPOSITORY, DELETE_THIRD_PARTY_REPOSITORY, etc.)
- OpenBSD does not support third-party repositories and this feature is not available for OpenBSD hosts
- Changes are applied per-host - this is not a centralized fleet-wide repository management tool
Accessing the Feature
The third-party repository management interface is accessed from the Host Detail page:
- Navigate to the Hosts page in the SysManage web UI
- Click on a host to open its detail page
- Scroll to the Third-Party Repositories section
- If the host is in privileged mode, you'll see the repository management interface
If you don't see the third-party repositories section, ensure:
- The host agent is running in privileged mode (root/administrator)
- You have the necessary security permissions
- The host is not running OpenBSD
Supported Repository Formats by Operating System
Ubuntu / Debian - PPA (Personal Package Archives)
PPAs are the standard way to add third-party repositories on Ubuntu systems.
Adding a PPA
- PPA Owner: The username of the PPA owner (e.g., "deadsnakes")
- PPA Name: The name of the PPA (e.g., "ppa")
- Result:
ppa:deadsnakes/ppa
Example: To add the popular deadsnakes PPA for Python versions, enter:
- PPA Owner:
deadsnakes - PPA Name:
ppa
Fedora / RHEL / CentOS - COPR
COPR (Cool Other Package Repo) is Fedora's community repository system.
Adding a COPR Repository
- COPR Owner: The COPR project owner (e.g., "@dotnet-sig")
- COPR Project: The project name (e.g., "dotnet")
- Result:
@dotnet-sig/dotnet
Example: To add the .NET COPR repository:
- COPR Owner:
@dotnet-sig - COPR Project:
dotnet
openSUSE / SLES - OBS (Open Build Service)
OBS repositories provide additional packages for SUSE-based systems.
Adding an OBS Repository
- Base URL: Usually
https://download.opensuse.org/repositories/ - Project Path: The OBS project path (e.g., "devel:/languages:/python")
- Distribution Version: Your distribution version (e.g., "openSUSE_Leap_15.5")
- Repository Name: A name for the repository (e.g., "python-devel")
Example: To add Python development packages from OBS:
- Base URL:
https://download.opensuse.org/repositories/ - Project Path:
devel:/languages:/python - Distribution Version:
openSUSE_Leap_15.5 - Repository Name:
python-devel
macOS - Homebrew Taps
Taps are third-party Homebrew repositories hosted on GitHub or other Git servers.
Adding a Homebrew Tap
- Tap User: The GitHub username (e.g., "homebrew")
- Tap Repo: The tap repository name (e.g., "cask-versions")
- Result:
homebrew/cask-versions
Example: To add the Homebrew cask-versions tap:
- Tap User:
homebrew - Tap Repo:
cask-versions
FreeBSD - pkg Repositories
Custom pkg repositories provide additional packages for FreeBSD.
Adding a pkg Repository
- Repository Name: A name for your repository (e.g., "custom-repo")
- Repository URL: The full URL to the repository
Example: To add a custom FreeBSD repository:
- Repository Name:
mycompany - Repository URL:
https://pkg.mycompany.com/freebsd/${ABI}/latest
NetBSD - pkgsrc Repositories
Custom pkgsrc repositories for NetBSD binary packages.
Adding a pkgsrc Repository
- Repository Name: A name for your repository
- Repository URL: The full URL to the repository
Windows - Chocolatey Sources
Add custom Chocolatey package sources for Windows hosts.
Adding a Chocolatey Source
- Source Type: Usually "chocolatey"
- Source Name: A name for the source (e.g., "company-repo")
- Source URL: The URL to your Chocolatey feed
Example: To add a private company Chocolatey repository:
- Source Type:
chocolatey - Source Name:
company-internal - Source URL:
https://chocolatey.company.com/repository
Using the Web Interface
Viewing Current Repositories
The repository list shows all currently configured third-party repositories on the host:
- Name: The repository identifier
- Type: The repository type (ppa, copr, obs, tap, etc.)
- URL: The repository URL (if applicable)
- Enabled: Whether the repository is currently enabled
- File Path: The configuration file location on the host
The list auto-refreshes every 30 seconds to show current status.
Adding a New Repository
- Click the "Add Repository" button
- The dialog will show fields appropriate for your host's operating system
- Fill in the required fields (see supported formats above)
- The constructed repository string will be shown as you type
- Click "Add" to send the command to the host agent
- The repository list will refresh automatically after a few seconds
Enabling or Disabling Repositories
- Select one or more repositories from the list
- Click "Enable Selected" or "Disable Selected"
- Confirm the action in the dialog
- The changes will be applied to the host immediately
Note: Disabling a repository keeps it configured but prevents package managers from using it.
Removing Repositories
- Select one or more repositories from the list
- Click "Delete Selected"
- Confirm the deletion in the dialog
- The repositories will be permanently removed from the host
Warning: This permanently removes the repository configuration files from the host.
Refreshing the List
Click the "Refresh" button to manually update the repository list. The list also auto-refreshes every 30 seconds.
Best Practices
Security Considerations
- Verify Sources: Only add repositories from trusted sources you verify
- Test First: Test new repositories on non-production hosts first
- Document Purpose: Keep external documentation of why each repository was added
- Regular Audits: Periodically review configured repositories and remove unused ones
- Monitor Changes: Use SysManage's audit logging to track repository changes
Operational Best Practices
- Limit Repositories: Only add repositories that are actually needed
- Disable Rather Than Delete: Disable repositories temporarily instead of deleting if you might need them later
- Check Compatibility: Ensure repositories match your exact OS version
- Update After Adding: Run package updates after adding new repositories
Troubleshooting
Repository Section Not Visible
Symptoms: Third-party repositories section doesn't appear on Host Detail page
Solutions:
- Verify the host agent is running in privileged mode (root/administrator)
- Check that your user account has the required permissions
- Confirm the host is not running OpenBSD (not supported)
- Ensure the host is approved and connected
Repository Addition Fails
Symptoms: Error message when trying to add a repository
Solutions:
- Verify the repository format is correct for the operating system
- Check that the repository URL is accessible from the host
- Ensure you have ADD_THIRD_PARTY_REPOSITORY permission
- Review the error message for specific details
- Check the host agent logs for more information
Changes Not Appearing
Symptoms: Repository added/removed but not shown in list
Solutions:
- Wait a few seconds for the host agent to process the command
- Click the Refresh button to manually update the list
- Check the host's WebSocket connection status
- Verify no network issues between server and agent
Permission Denied Errors
Symptoms: "Permission denied" errors when making changes
Solutions:
- Verify you have the appropriate security role permissions
- Contact your SysManage administrator to grant permissions
- Ensure the host agent is running with sufficient privileges
Default Repositories
SysManage provides a centralized way to manage default third-party repositories that are automatically applied to all hosts of a specific operating system. This feature streamlines repository management across your entire fleet.
Overview
Default repositories are configured globally in the SysManage settings and are automatically:
- Applied to New Hosts: When a host is approved during registration, all default repositories matching its OS are automatically added
- Applied to Existing Hosts: When you create a new default repository, it is automatically added to all existing approved hosts with matching OS
- Shown in Repository Lists: Default repositories appear in each host's repository list with a "Default" source badge
Accessing Default Repository Settings
- Navigate to Settings in the main navigation bar
- Click on Host Defaults
- Click the Repositories sub-tab
Adding a Default Repository
- In the Host Defaults > Repositories settings, click "Add Default Repository"
- Select the Operating System from the dropdown (Ubuntu, Fedora, CentOS Stream, openSUSE, etc.)
- Select the Package Manager (APT, DNF, YUM, Zypper, etc.)
- Fill in the OS-specific fields (same as adding a host-specific repository):
- Ubuntu/Debian: PPA Owner and PPA Name
- Fedora/RHEL/CentOS: COPR Owner and COPR Project
- openSUSE/SLES: OBS URL, Project Path, Distribution Version, and Repository Name
- macOS: Tap User and Tap Repository
- FreeBSD: Repository Name and URL
- NetBSD: Repository Name and URL
- Windows: Repository Type, Name, and URL
- The repository identifier will be constructed automatically as you type
- Click "Add" to save the default repository
Automatic Application
When you add a default repository:
- The repository configuration is saved to the database
- SysManage finds all approved hosts matching the specified operating system
- Add repository commands are queued for each matching host
- The commands are sent to connected agents via WebSocket
- Each agent applies the repository to its host
Note: If an agent is not connected when the default repository is created, the system will automatically retry sending the command up to 3 times with exponential backoff (1 minute, 2 minutes, 4 minutes).
Viewing Default Repositories on Hosts
When viewing a host's Third-Party Repositories list, default repositories are shown with:
- A "Default" source badge (blue chip)
- The repository is not selectable for deletion or modification
- If the same repository exists as both a default and host-specific entry, only the default is shown (deduplication)
Removing Default Repositories
To remove a default repository:
- Go to Settings > Host Defaults > Repositories
- Select the default repository you want to remove
- Click "Delete Selected"
- Confirm the deletion
When you delete a default repository:
- The repository is removed from the default repository list
- Delete commands are automatically queued for all hosts that have this repository
- The repository is removed from all affected hosts
- Future hosts will not receive this repository
Required Permissions
Managing default repositories requires:
- VIEW_DEFAULT_REPOSITORIES: To view the default repositories list
- ADD_DEFAULT_REPOSITORY: To create new default repositories
- DELETE_DEFAULT_REPOSITORY: To remove default repositories
Best Practices for Default Repositories
- Organization Standards: Use default repositories to enforce organizational standards across all hosts
- Security Repositories: Add security-focused repositories as defaults to ensure all hosts receive security updates
- Test Before Deploying: Test repositories on a few hosts before making them defaults
- Document Purpose: Keep documentation of why each default repository exists
- OS Version Matching: Be aware that repositories are matched by OS name only (e.g., "Ubuntu"), not by specific version
- Monitor Application: Check that default repositories are successfully applied to hosts after creation
Difference Between Default and Host-Specific Repositories
| Feature | Default Repositories | Host-Specific Repositories |
|---|---|---|
| Scope | Applied to all hosts with matching OS | Applied only to a single host |
| Configuration Location | Settings > Host Defaults > Repositories | Host Detail page > Third-Party Repositories |
| Automatic Application | Yes, to new and existing hosts | No, manual addition required |
| Can Be Deleted Per-Host | No, must be removed from defaults | Yes, deletable on individual hosts |
| Use Case | Organization-wide standards | Host-specific needs |
Known Limitations
- OpenBSD Not Supported: OpenBSD does not support third-party repositories by design
- Privileged Mode Required: The host agent must be running as root/administrator
- OS Name Matching Only: Default repositories match by OS name (e.g., "Ubuntu") not by specific version
- No Version-Specific Defaults: You cannot create default repositories for specific OS versions (e.g., only Ubuntu 24.04)
- Retry Limit: If a host is offline when a default repository is added, the system retries 3 times before giving up
- Platform-Specific: Each OS has different repository formats and requirements