{"id":29178327,"url":"https://github.com/operacle/checke-server-agent","last_synced_at":"2026-06-20T04:31:29.459Z","repository":{"id":302044706,"uuid":"1011057019","full_name":"operacle/checke-server-agent","owner":"operacle","description":"CheckCle Server Monitoring Agent - System metrics collection (CPU, Memory, Disk, Network, Docker Container)","archived":false,"fork":false,"pushed_at":"2025-07-29T13:57:42.000Z","size":81,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-09T04:30:20.722Z","etag":null,"topics":["api","checkcle","container","docker","metrics","monitoring"],"latest_commit_sha":null,"homepage":"https://checkcle.io","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/operacle.png","metadata":{"files":{"readme":"README-packaging.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-30T08:34:06.000Z","updated_at":"2025-08-08T05:43:51.000Z","dependencies_parsed_at":"2025-07-29T15:27:00.708Z","dependency_job_id":"83eff4b9-2ba2-457a-8e9b-0b933783da44","html_url":"https://github.com/operacle/checke-server-agent","commit_stats":null,"previous_names":["operacle/checke-server-agent"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/operacle/checke-server-agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operacle%2Fchecke-server-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operacle%2Fchecke-server-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operacle%2Fchecke-server-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operacle%2Fchecke-server-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/operacle","download_url":"https://codeload.github.com/operacle/checke-server-agent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/operacle%2Fchecke-server-agent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34557551,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","checkcle","container","docker","metrics","monitoring"],"created_at":"2025-07-01T18:46:04.416Z","updated_at":"2026-06-20T04:31:29.444Z","avatar_url":"https://github.com/operacle.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Server Monitoring Agent - Packaging Guide\n\nThis directory contains the packaging infrastructure for building the Server Monitoring Agent as both .deb and .rpm packages for Linux distributions.\n\n## Quick Start\n\n```bash\n# Build all available packages (DEB and RPM)\n./build.sh\n\n# Build specific package type\n./build.sh deb #Build DEB packages for both architectures\n./build.sh rpm \n./build.sh rpm arm64 #Build RPM package for ARM64 only\n./build.sh all amd64 #- Build all packages for AMD64 only\n```\n\n## Package Structure\n\n```\npackaging/\n├── control                    # Debian package metadata\n├── monitoring-agent.spec      # RPM package specification\n├── postinst                  # Debian post-installation script\n├── prerm                     # Debian pre-removal script\n├── postrm                    # Debian post-removal script\n├── monitoring-agent.service  # Systemd service file\n└── monitoring-agent.conf     # Default configuration template\n```\n\n## Build System\n\n### Prerequisites\n\n**For DEB packages:**\n```bash\nsudo apt-get install dpkg-dev\n```\n\n**For RPM packages:**\n```bash\n# Ubuntu/Debian\nsudo apt-get install rpm\n\n# CentOS/RHEL/Fedora\nsudo yum install rpm-build\n# or\nsudo dnf install rpm-build\n```\n\n### Make Targets\n\n- `make build` - Build the Go binary\n- `make deb` - Create .deb package\n- `make rpm` - Create .rpm package\n- `make package-all` - Create both .deb and .rpm packages\n- `make install-deb` - Install the .deb package\n- `make install-rpm` - Install the .rpm package\n- `make clean` - Clean build artifacts\n- `make help` - Show all available targets\n\n### Build Script\n\nThe `build.sh` script provides a convenient wrapper:\n\n```bash\n./build.sh           # Build all available packages\n./build.sh deb       # Build only DEB package\n./build.sh rpm       # Build only RPM package\n```\n\n## Installation\n\n### System Requirements\n\n- Linux distribution with systemd\n- libc6 (\u003e= 2.17) for DEB packages\n- glibc for RPM packages\n\n### DEB Installation (Ubuntu/Debian)\n\n```bash\n# Install the package\nsudo dpkg -i dist/monitoring-agent.deb\n\n# Install dependencies if needed\nsudo apt-get install -f\n```\n\n### RPM Installation (CentOS/RHEL/Fedora)\n\n```bash\n# Install the package\nsudo rpm -ivh dist/monitoring-agent-1.0.0-1.x86_64.rpm\n\n# Alternative using package manager\nsudo yum localinstall dist/monitoring-agent-1.0.0-1.x86_64.rpm\n# or\nsudo dnf localinstall dist/monitoring-agent-1.0.0-1.x86_64.rpm\n```\n\n### Configuration (Required for both packages)\n\n1. **Configure the agent:**\n   ```bash\n   sudo nano /etc/monitoring-agent/monitoring-agent.env\n   ```\n\n   Set these required variables:\n   ```bash\n   SERVER_NAME=your-server-name\n   HOSTNAME=your-hostname\n   IP_ADDRESS=your-server-ip\n   OS_TYPE=your-os-type\n   SERVER_TOKEN=your-unique-token\n   POCKETBASE_URL=http://your-pocketbase-server:8090\n   ```\n\n2. **Enable and start the service:**\n   ```bash\n   sudo systemctl enable monitoring-agent\n   sudo systemctl start monitoring-agent\n   ```\n\n3. **Verify the installation:**\n   ```bash\n   sudo systemctl status monitoring-agent\n   curl http://localhost:8081/health\n   ```\n\n## Configuration\n\n### Environment Variables\n\n| Variable | Description | Required | Default |\n|----------|-------------|----------|---------|\n| `SERVER_NAME` | Name of the server being monitored | Yes | - |\n| `HOSTNAME` | Hostname of the server | Yes | - |\n| `IP_ADDRESS` | IP address of the server | Yes | - |\n| `OS_TYPE` | Operating system type | Yes | - |\n| `SERVER_TOKEN` | Unique token for server identification | Yes | - |\n| `POCKETBASE_URL` | PocketBase server URL | Yes | `http://localhost:8090` |\n| `HEALTH_CHECK_PORT` | Port for health check endpoint | No | `8081` |\n| `CHECK_INTERVAL` | Monitoring check interval | No | `30s` |\n\n### File Locations\n\n- **Service config**: `/etc/monitoring-agent/monitoring-agent.env`\n- **Systemd service**: `/etc/systemd/system/monitoring-agent.service`\n- **Working directory**: `/var/lib/monitoring-agent`\n- **Log directory**: `/var/log/monitoring-agent`\n- **Binary location**: `/usr/bin/monitoring-agent`\n\n## Service Management\n\n### Common Commands\n\n```bash\n# Start the service\nsudo systemctl start monitoring-agent\n\n# Stop the service\nsudo systemctl stop monitoring-agent\n\n# Restart the service\nsudo systemctl restart monitoring-agent\n\n# Check service status\nsudo systemctl status monitoring-agent\n\n# View logs\nsudo journalctl -u monitoring-agent -f\n\n# Enable auto-start\nsudo systemctl enable monitoring-agent\n\n# Disable auto-start\nsudo systemctl disable monitoring-agent\n```\n\n### Health Check\n\nThe agent provides a health check endpoint:\n\n```bash\ncurl http://localhost:8081/health\n```\n\n## Uninstallation\n\n### DEB Packages\n```bash\n# Remove package but keep configuration\nsudo dpkg -r monitoring-agent\n\n# Remove package and all configuration\nsudo dpkg --purge monitoring-agent\n```\n\n### RPM Packages\n```bash\n# Remove package\nsudo rpm -e monitoring-agent\n\n# Remove package (alternative)\nsudo yum remove monitoring-agent\n# or\nsudo dnf remove monitoring-agent\n```\n\n## Development\n\n### Building from Source\n\n```bash\n# Clone and build\ngit clone \u003crepository\u003e\ncd server-monitoring-agent\n./build.sh\n```\n\n### Testing Packages\n\n```bash\n# Test DEB installation\nmake install-deb\n\n# Test RPM installation\nmake install-rpm\n\n# Run tests\nmake test\n```\n\n## Package Information\n\n- **Package name**: `monitoring-agent`\n- **Version**: `1.0.0`\n- **Architecture**: `amd64`/`x86_64`\n- **Service name**: `monitoring-agent`\n- **Binary location**: `/usr/bin/monitoring-agent`\n\n## Troubleshooting\n\n### Common Issues\n\n1. **Service won't start**\n   - Check configuration: `sudo systemctl status monitoring-agent`\n   - Verify environment variables are set correctly\n   - Check logs: `sudo journalctl -u monitoring-agent`\n\n2. **Permission denied errors**\n   - Ensure proper file ownership\n   - Check systemd service permissions\n\n3. **Network connectivity issues**\n   - Verify PocketBase URL is accessible\n   - Check firewall settings\n   - Test with curl: `curl http://your-pocketbase-url/api/health`\n\n### Log Files\n\n- **Systemd logs**: `sudo journalctl -u monitoring-agent`\n- **Application logs**: `/var/log/monitoring-agent/` (if file logging is enabled)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperacle%2Fchecke-server-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foperacle%2Fchecke-server-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foperacle%2Fchecke-server-agent/lists"}