self-portal
self-portal copied to clipboard
Self Portal is a cross-platform desktop application used to deploy software across your fleet via Chef and other frameworks
Self Portal
Written by Amado Tejada
Self Portal is a cross-platform desktop application used to deploy software across your endpoints fleet while providing the same user experience via Chef and other software management solutions.
How does Self Portal work?
This is a front-end GUI for users and does not connect directly with management tools. Instead, it calls out to the management framework below to install the packages.
E.g. For Chef, when a user selects an app, chef-client it will be executed running that specific app cookbook and installing the app in the background.
Features
- cross-platform
- supports various deployment frameworks
- python framework bundled
- no end-user runtime dependencies
- dark & light themes
- easy to use for end-users
- log viewer for troubleshooting
Tested on
This tool was made around Chef on Linux, but since its a front-end, it can be used with any other frameworks.
| macOS | Windows | Linux |
|---|---|---|
| Chef | Chef | Chef |
| Jamf | Choco | apt/yum/dnf |
| pip | pip | pip |
| autopkg | Scoop | snap/flatpak |
User Interface

macOS
| Dark | Light |
|---|---|
![]() |
![]() |
Windows
| Dark | Light |
|---|---|
![]() |
![]() |
Linux
| Dark | Light |
|---|---|
![]() |
![]() |
Other
| Theme Chooser | Log Viewer |
|---|---|
![]() |
![]() |
Chef Requirements:
- Chef server and cookbooks needs to be pre-configured before using Self Portal.
- Cookbooks need to exist on Chef and scoped to the endpoints
- Node needs to be enrolled to the Chef instance.
(Other frameworks will have similar requirements. Defer to your framework documentation for more information on to setup, scoping, and enrolling.)
Self Portal Requirements:
- pyinstaller to build executables
- PyQt5 - Runtime files are bundled in executable for simple deployment.
Prepare a new app
- Create JSON file for each cookbook/app to deploy - see below.
- Self Portal needs to run with an admin account and the ability to run
chef-clientwith elevated permissions.
Apps JSON schema
{
"name": "Chrome",
"id": "chrome",
"description": "Chrome is a fast, secure, free web browser. The browser built by Google.",
"category": ["browser"],
"icon": "resources/icons/chrome.png",
"bashcmd": "pkexec chef-client -o recipe[app_chrome] -L /var/log/chef/self_portal.log"
\\ Self Portal calls the bashcmd to install the software via Chef.
}
Build executables and deploy
- It's best to build on the targeted OS
pyinstaller build.spec
Executables output to /self-portal/dist/
-
If you're using Chef, create cookbook for Self Portal and deploy the endpoints.
- If you're using other frameworks, use the alternative method to cookbook or remotely package policy.
-
Profit
Disclaimer
This software {Self Portal} has not been endorsed or supported by any of the software mentioned above and is in no way associated with them and/or its subsidiaries or affiliate.
License
Self Portal is released under the Apache 2.0 License






