Server Utilities is a collection of production-grade tools for DevOps, SRE, and infrastructure teams. Each utility is independently versioned and can be used standalone.
- DevOps Engineers managing server infrastructure
- SRE teams monitoring production systems
- Security teams auditing server configurations
- Compliance teams requiring inventory and version tracking
- System Administrators managing multiple servers
Yes! These tools are battle-tested in production environments. Each utility has comprehensive test coverage and follows security best practices.
Via Homebrew (recommended for macOS/Linux):
brew tap minademian/server-utilities
brew install server-auditFrom source:
git clone https://github.com/minademian/server-utilities.git
cd server-utilities
make install- Primary Support: Ubuntu 20.04+, RHEL 8+, macOS 11+
- Tested On: Debian 10+, CentOS 8+, Amazon Linux 2
- Shell: Bash 4.0+ or Zsh 5.0+
No! These tools are designed to work without root access. They use SSH to connect to remote servers and run read-only operations by default.
Create an SSH config file (~/.ssh/config) with your server details:
Host production-*
User serviceaccount
IdentityFile ~/.ssh/id_ed25519_servers
StrictHostKeyChecking yes
Then reference servers in your server list file.
- Dry-run mode (
--dry-run): Uses test data, no actual SSH connections, safe for testing - Production mode (
--production): Conservative settings, rate limiting, safe for production use - Normal mode: Balanced settings for regular use
Yes! The architecture is pluggable. See the development guide for details on creating custom checkers.
./server-audit --check java -s production_servers.txtYes! Use comma-separated values:
./server-audit --check java,tomcat,apache -s servers.txtUse CSV output and redirect:
./server-audit --check java --csv > results.csvUse the -k flag:
./server-audit --check java -k ~/.ssh/production_key -s servers.txtThis means SSH key authentication is failing:
- Verify your SSH key is added to the target server
- Check your SSH config file
- Test SSH manually:
ssh user@server - Use the
-kflag to specify the correct key
For large server fleets:
- Use production mode:
--production(includes rate limiting) - Adjust concurrency:
-c 10(default is 5) - Check network latency to servers
- Consider using a jump/bastion host closer to targets
- Increase timeout:
-t 60(default is 30 seconds) - Check network connectivity to servers
- Verify servers are online and accessible
- Check if firewalls are blocking SSH
Run ShellCheck locally:
make lintFix any issues and ensure all scripts pass ShellCheck before committing.
Yes! Security features include:
- SSH-only connections (no passwords)
- Read-only operations by default
- No root access required
- Input validation and sanitization
- Secure error handling
- Rate limiting to prevent overwhelming servers
Only the information you request:
- Binary versions (e.g., Java version)
- Installation paths
- Running processes (only what's needed)
No sensitive data, credentials, or application data is collected.
- Store results securely (may contain server names and paths)
- Use encryption for results containing sensitive information
- Follow your organization's data retention policies
- Consider using
--csvwith secure storage
Absolutely! The code is open source. Please:
- Review the code on GitHub
- Run your own security scans
- Report vulnerabilities privately (see SECURITY.md)
See our Contributing Guide for detailed information. Quick start:
- Fork the repository
- Create a feature branch
- Make your changes with tests
- Submit a pull request
- Check if it's already reported in Issues
- Gather debug information:
DEBUG=1 ./server-audit ... - Open a new issue using the bug report template
- Include steps to reproduce
Yes! Open a feature request or start a discussion.
See the development guide for step-by-step instructions.
For maintainers:
- Create a tap repository
- Write a Formula (see Homebrew docs)
- Test locally:
brew install --build-from-source ./Formula/utility.rb - Submit to your tap
For Java utilities:
- Set up Sonatype account
- Configure GPG signing
- Update
pom.xmlwith distribution management - Run
mvn deploy
See the Maven publish guide for details.
Tested with:
- 100 servers: Excellent performance
- 500 servers: Good performance with
-c 10 - 1000+ servers: Use production mode and increase timeout
- Increase concurrency:
-c 20 - Use a bastion/jump host close to targets
- Optimize network connectivity
- Run from a location close to target servers
No. Each check is lightweight:
- Java check: ~1-2 KB per server
- Tomcat check: ~5-10 KB per server
- Total for typical audit: < 100 KB for 10 servers
- Server Utilities: Lightweight, read-only auditing, no agent required
- Ansible: Full configuration management, can make changes, requires setup
Use Server Utilities for quick audits and monitoring. Use Ansible for configuration management.
Advantages:
- Open source and free
- Lightweight and fast
- No agents or daemons
- Easy to customize
- Security-first design
When to use commercial tools:
- Need enterprise support and SLA
- Require advanced analytics/AI
- Want a GUI/dashboard
- Need compliance reporting features
Via Homebrew:
brew update
brew upgrade server-auditFrom source:
git pull
make install- Patch releases: Monthly or as needed for bugs
- Minor releases: Quarterly with new features
- Major releases: Annually with breaking changes
- Watch the repository on GitHub
- Subscribe to releases
- Check with:
brew outdated(if using Homebrew)
- Check this FAQ
- Read the documentation
- Search existing issues
- Ask in Discussions
- Open a new issue
Yes! Contact us for:
- Priority support and SLA
- Custom feature development
- Training and consultation
- Enterprise licensing
Do not open a public issue. Follow our Security Policy to report privately.
Ask in GitHub Discussions or open an issue!