Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork272
Web UI for your scripts with execution management
License
bugy/script-server
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Script-server is a Web UI for scripts.
As an administrator, you add your existing scripts into Script server and other users would be able to execute them via a web interface.The UI is very straightforward and can be used by non-tech people.
No script modifications are needed - you configure each script in Script server and it creates the corresponding UI with parameters and takes care of validation, execution, etc.
- Different types of script parameters (text, flag, dropdown, file upload, etc.)
- Real-time script output
- Users can send input during script execution
- Auth (optional): LDAP, Google OAuth, htpasswd file
- Access control
- Alerts
- Logging and auditing
- Formatted output support (colors, styles, cursor positioning, clearing)
- Download of script output files
- Execution history
- Admin page for script configuration
For more details checkhow to configure a scriptorhow to configure the server
Python 3.7 or higher with the following modules:
- Tornado 5 / 6
Some features can require additional modules. Such requirements are specified in a corresponding feature description.
OS support:
- Linux (main). Tested and working on Debian 10,11
- Windows (additional). Light testing
- macOS (additional). Light testing
Any more or less up to date browser with enabled JS
Internet connection isnot needed. All the files are loaded from the server.
- Download script-server.zip file fromLatest release orDev release
- Create script-server folder anywhere on your PC and extract zip content to this folder
(For detailed steps on linux with virtualenv, please seeInstallation guide)
Please find pre-built images here:https://hub.docker.com/r/bugy/script-server/tags
For the usage please checkthis ticket
- Clone/download the repository
- Run 'tools/init.py --no-npm' script
init.py script should be run after pulling any new changes
If you are making changes to web files, usenpm run build ornpm run serve
SeeA issue running on OpenBSD and maybe other UNIX systems.
- Create configurations for your scripts inconf/runners/ folder (seescript config page for details)
- Launch launcher.py from script-server folder
- Windows command: launcher.py
- Linux command: ./launcher.py
- Add/edit scripts on the admin page
By default, the server will run onhttp://localhost:5000
All the features listed above and some other minor features can be configured inconf/conf.json file.It is allowed not to create this file. In this case, default values will be used.Seeserver config page for details
Admin panel is accessible on admin.html page (e.g.http://localhost:5000/admin.html)
All web/operating logs are written to thelogs/server.logAdditionally each script logs are written to separate file inlogs/processes. File name format is{script_name}_{client_address}_{date}_{time}.log.
Script-server has bundled configs/scripts for testing/demo purposes, which are located in samples folder. You canlink/copy these config files (samples/configs/*.json) to server config folder (conf/runners).
I do my best to make script-server secure and invulnerable to attacks, injections or user data security. However to beon the safe side, it's better to run Script server only on a trusted network.
Any security leaks report or recommendations are greatly appreciated!
Script server guarantees that all user parameters are passed to an executable script as arguments and won't be executedunder any conditions. There is no way to inject fraud command from a client-side. However, user parameters are notescaped, so scripts should take care of not executing them also (general recommendation for bash is at least to wrap allarguments in double-quotes). It's recommended to use typed parameters when appropriate, because they are validated forproper values and so they are harder to be subject of commands injection. Such attempts would be easier to detect also.
Important! Command injection protection is fully supported for Linux, butonly for .bat and .exe files on Windows
(v1.0 - v1.16)
Script serveris vulnerable to these attacks.
(v1.17+)
Script server is protected against XSRF attacks via a special token.
XSS protection: the code is written according toOWASP Cheat Sheetand the onlyknown vulnerabilities are:
output_format=html_iframe, see the reasoning in thelinked Wiki page
If you like the project and think you could help with making it better, there are many ways you can do it:
- Create a new issue for new feature proposal or a bug
- Implement existing issues (there are quite some of them: frontend/backend, simple/complex, choose whatever you like)
- Help with improving the documentation
- Set up a demo server
- Spread a word about the project to your colleagues, friends, blogs or any other channels
- Any other things you could imagine
Any contribution would be of great help and I will highly appreciate it!If you have any questions, please create a new issue, or contact me viabuggygm@gmail.com
If you have any questions, feel free to:
- Ask in gitter:https://gitter.im/script-server/community
- orcreate a ticket
- or contact me via email:buggygm@gmail.com (for some non-shareable questions)
About
Web UI for your scripts with execution management
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Uh oh!
There was an error while loading.Please reload this page.