All Projects → jacobschultz → scout-public

jacobschultz / scout-public

Licence: GPL-3.0 license
A tool to aggregate devices across multiple MDM servers

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects
TSQL
950 projects
ruby
36898 projects - #4 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to scout-public

DockBuilder
A LaunchAgent and .app to build a user's Dock upon login and/or on demand.
Stars: ✭ 39 (+77.27%)
Mutual labels:  jamf, jamf-pro
jamfpro-extension-attributes
🔍 A repository for EAs to use for reporting in the Jamf Pro Server
Stars: ✭ 30 (+36.36%)
Mutual labels:  jamf, jamf-pro
TheScopeReport
This is a Java program that calls the Jamf Pro API to collect scoping details.
Stars: ✭ 13 (-40.91%)
Mutual labels:  jamf, jamf-pro
mac scripts
A collection of scripts used to Manage Mac OS X computers.
Stars: ✭ 38 (+72.73%)
Mutual labels:  jamf, jamf-pro
mac-ibm-notifications
macOS agent used to display custom notifications and alerts to the end user.
Stars: ✭ 206 (+836.36%)
Mutual labels:  mdm, jamf
python-jamf
`python-jamf` is a library for connecting to a Jamf Server that maps directly to the Jamf Pro Classic API. It is the basis for the `jctl` tool to automate patch management & packages and many other items.
Stars: ✭ 37 (+68.18%)
Mutual labels:  jamf, jamf-pro
JAMF-Enrollment-Kickstart
A better enrollment kickoff for JAMF machines
Stars: ✭ 74 (+236.36%)
Mutual labels:  jamf, jamf-pro
kinobi
An external patch definition server for Jamf Pro
Stars: ✭ 76 (+245.45%)
Mutual labels:  jamf, jamf-pro
AutoBrew
AutoBrew: Homebrew deployments made easy
Stars: ✭ 71 (+222.73%)
Mutual labels:  jamf, jamf-pro
jamfscripts
Scripts I use non API related
Stars: ✭ 15 (-31.82%)
Mutual labels:  jamf, jamf-pro
homebrew.sh
Install homebrew via Jamf without giving users admin rights
Stars: ✭ 52 (+136.36%)
Mutual labels:  jamf, jamf-pro
scl jamf tools
This repository contains a collection of tools written to perform as enhancements to the Jamf Pro management software.
Stars: ✭ 39 (+77.27%)
Mutual labels:  jamf, jamf-pro
DeviceManager
EMM(企业移动管理)中Android设备管控,DeviceAdmin(弱管控)、DeviceOwner(强管控)。
Stars: ✭ 48 (+118.18%)
Mutual labels:  mdm
CIS-for-macOS-High-Sierra-CP
No description or website provided.
Stars: ✭ 36 (+63.64%)
Mutual labels:  jamf
awesome-integration
A curated list of awesome system integration software and resources.
Stars: ✭ 117 (+431.82%)
Mutual labels:  mdm
Pimcore
Open Source Data & Experience Management Platform (PIM, MDM, CDP, DAM, DXP/CMS & Digital Commerce)
Stars: ✭ 2,352 (+10590.91%)
Mutual labels:  mdm
pre-commit-macadmin
Pre-commit hooks for Mac admins.
Stars: ✭ 43 (+95.45%)
Mutual labels:  jamf
intune
Various scripts for use with Microsoft Intune and Windows 10 Modern Management
Stars: ✭ 106 (+381.82%)
Mutual labels:  mdm
atrocore
AtroCore is an open-source Data Platform, Data Management and Master Data Management (MDM) software, which can be used to quickly create any business application.
Stars: ✭ 38 (+72.73%)
Mutual labels:  mdm
JSS-Resource-Tools
A CLI utility that utilises the Jamf Pro (previously Casper Suite) API in order to import, export and update JSS resources en-masse.
Stars: ✭ 24 (+9.09%)
Mutual labels:  jamf

scout

Scout is a web based application that can be used to aggregate devices from multiple Jamf Pro servers. It features powerful reporting features, as well as the ability to send MDM commands across multiple servers from a single pane of glass. Scout also features a fully functional patch server. It's built on a proven web stack and exposes a powerful REST API that can be used by scripts or other third party implementations. Scout is fully open source, free, and provided as is. No support or maintenance is provided. That being said, the project welcomes contributions and pull requests for new features or bug fixes.

A full read through of the admin guide is recommended for all users, maintainers and contributors of scout. It will help to explain the flow of data from Jamf Pro into scout, the architecture of the application, and helpful debugging steps.

Full installation guides can be found in the /guides directory for multiple platforms. All of the frontend code lives in the /app directory, and the rest api server code is in the/api directory.

API Docs can be found for the application after installation by navigating to https://scouturl.com/api-docs. These are fully interactive swagger docs where the REST endpoints can also be tried out. Endpoints exposed by scout include things like /devices or /servers to get lists of devices and servers contained inside of scout. Anything you can do in the UI, there is a REST Endpoint for.


Technology Stack

Scout relies on various open source projects and software in order to serve the web application and perform various functions. A high level list of the stack is below.

  • Backend - Node, MySQL and Mongo
    • Node is used as the REST API server. It connects to both of the Mongo and MySQL databases and handles setuping up various automated jobs on the server. It's main purpose is to serve the express based API. There is no server rendering done, the backend server only communicates with the front end using JSON. This makes is easy to hook into, or even right your own front end.
    • MySQL is the main database for the scout application. No support is provided for MSSQL or other SQL-Like databases at this time. The MySQL database stores encrypted server information, high level device details, user records and saved reports.
    • Mongo is the secondary database for the scout application. It's used to store full inventory records for the devices that are brought into scout. These full records are used for the advanced reporting features. Mongo is resource heavy, so it's recommended the Mongo server is isolated to it's own server. The scout application can technically be used without mongo, but you'll loose all advanced reporting features and just have a high level overview into device information.
  • Frontend - Bootstrap, jQuery, Datatables, SBAdmin 2
    • The frontend is built on popular frameworks such as Bootstrap, jQuery and the open source theme SBAdmin 2 - with heavy customizations. Datatables are used to load device data and patches.

Contributing to Scout

  1. If an issue doesn't already exist for what you would like to work on, please create it. Tag it with the approiate tag such as bug or enhancement.
  2. Assign yourself to any ticket you'll be working on, and create a new branch exclusively for that issue.
  3. Work on your branch and commit whenever you have a workable piece of code. After everything has been fully tested, submit a Pull Request to master and add the Scout Maintainers group as a reviewer. They'll need to approve your pull request.
  • If master is updated while your PR is open, pull any changes back in to avoid conflicts
  1. Delete your branch when you are done with it.

Webhook Setup

Scout now supports just in time updates for use with webhooks in the JPS. To set them up you'll need to navigate to Settings -> Global and add a new webhook for each event you would like to listen for. The URL to enter in the JPS is:

You can find the JSSId in the database table. This is required to properly link devices to the server they are in. The supported commands are:

  • Add a new device : MobileDeviceEnrolled, ComputerAdded

  • Update existing : ComputerCheckIn, ComputerInventoryComplete, ComputerPolicyFinished, ComputerPushCapabilityChanged, MobileDeviceCommandCompleted, MobileDevicePushSent

  • Archive Existing : MobileDeviceUnenrolled

Complete Step by Step Installation (This is what the installer does)

  1. Clone or download the repository
  2. Install node.js and npm on either ubuntu (recommended) or red hat
  3. Install MySQL and create the scout database. Import the scout.sql file.
  4. Install Mongo or find a host for it - the scout db will be automatically created
  5. In the /api directory run 'npm install'. This will install all of the web server's dependencies.
  6. In the root of the /api directory create a new .env file. (touch .env)
  7. Use the sample.env file to populate your settings.
  8. Navigate to /app/js and create a new file called 'server-url.js'.
  9. Add a single line to the server-url.js file of 'window.server_host = "http://localhost:3000";' (or whatever else you set the host to, it must match the .env file)
  10. In the root of the /api directory run 'npm start' to start your server. This will need to remain running.
  11. Optional: Add webhoooks to your JPS (Described above)
  12. Recommended: Set this up as a production server by adding a HTTPS cert, and proxy the connection behind an Apache server using a reverse proxy

Software Used

  • node.js, mysql, mongo and express for the server
  • SBAdmin2, jQuery and jQuery Cron for the front end
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].