All Projects → bugy → Script Server

bugy / Script Server

Licence: other
Web UI for your scripts with execution management

Programming Languages

python
139335 projects - #7 most used programming language
bash
514 projects
scripting
82 projects

Projects that are alternatives of or similar to Script Server

Aleph
Asynchronous communication for Clojure
Stars: ✭ 2,389 (+372.13%)
Mutual labels:  web-server, websockets
Microwebsrv2
The last Micro Web Server for IoTs (MicroPython) or large servers (CPython), that supports WebSockets, routes, template engine and with really optimized architecture (mem allocations, async I/Os). Ready for ESP32, STM32 on Pyboard, Pycom's chipsets (WiPy, LoPy, ...). Robust, efficient and documented!
Stars: ✭ 295 (-41.7%)
Mutual labels:  websockets, web-server
Unfiltered
A toolkit for servicing HTTP requests in Scala
Stars: ✭ 709 (+40.12%)
Mutual labels:  websockets, web-server
Sshy
HTML5 SSH Web Client
Stars: ✭ 334 (-33.99%)
Mutual labels:  websockets, ssh
Sish
HTTP(S)/WS(S)/TCP Tunnels to localhost using only SSH.
Stars: ✭ 2,087 (+312.45%)
Mutual labels:  websockets, ssh
Pi Timolo
Raspberry PI-TIMOLO ( PI-TImelapse, MOtion, LOwLight ) uses RPI picamera and OpenCV for Remote Headless Security Monitoring using Motion Tracking, Rclone Auto Sync files with remote storage services. Auto Twilight Transitions and Low Light Camera Settings. Panoramic images using PanTiltHat and More. This project is featured on GitHub Awesome software.
Stars: ✭ 441 (-12.85%)
Mutual labels:  ssh, web-server
Android Materialshadowninepatch
Provides 9-patch based drop shadow for view elements. Works on API level 9 or later.
Stars: ✭ 488 (-3.56%)
Mutual labels:  material-design
Cookiebar2
Android library for displaying text messages, notifications and alerts at the top or bottom of the screen. A great alternative for toast and snackbar alerts.
Stars: ✭ 499 (-1.38%)
Mutual labels:  material-design
Douya
开源的 Material Design 豆瓣客户端(A Material Design app for douban.com)
Stars: ✭ 4,502 (+789.72%)
Mutual labels:  material-design
Snacky
Snacky is a small library to help you adding a Snackbar to your android project.
Stars: ✭ 482 (-4.74%)
Mutual labels:  material-design
Mcg
Material Design Palette/Theme Generator - AngularJS, React, Ember, Vue, Android, Flutter & More!
Stars: ✭ 507 (+0.2%)
Mutual labels:  material-design
Reply
The 'Reply' Material Design case study built with Flutter.
Stars: ✭ 506 (+0%)
Mutual labels:  material-design
Materialdatetimepicker
Pick a date or time on Android in style
Stars: ✭ 4,627 (+814.43%)
Mutual labels:  material-design
Fatt
FATT /fingerprintAllTheThings - a pyshark based script for extracting network metadata and fingerprints from pcap files and live network traffic
Stars: ✭ 490 (-3.16%)
Mutual labels:  ssh
Sshwifty
Web SSH & Telnet (WebSSH & WebTelnet client) 🔮
Stars: ✭ 501 (-0.99%)
Mutual labels:  ssh
Material Ui Swing
A modern, Material Design UI for Java Swing
Stars: ✭ 484 (-4.35%)
Mutual labels:  material-design
Vue Socket.io Extended
✌️⚡️ Socket.io bindings for Vue.js and Vuex (inspired by Vue-Socket.io)
Stars: ✭ 506 (+0%)
Mutual labels:  websockets
Facebooc
Yet another Facebook clone written in C
Stars: ✭ 483 (-4.55%)
Mutual labels:  web-server
Circular Carousel
List a collection of items in a horizontally scrolling view. A scaling factor controls the size of the items relative to the center.
Stars: ✭ 493 (-2.57%)
Mutual labels:  material-design
Simpleremote
Remote Administration Tools
Stars: ✭ 504 (-0.4%)
Mutual labels:  ssh

Build Status Gitter

script-server

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.

DEMO server

Admin interface screenshots

Features

  • 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 check how to configure a script or how to configure the server

Requirements

Server-side

Python 3.5 or higher with the following modules:

  • Tornado 4 / 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 9,10
  • Windows (additional). Light testing
  • macOS (additional). Light testing

Client-side

Any more or less up to date browser with enabled JS

Internet connection is not needed. All the files are loaded from the server.

Installation

For production

  1. Download script-server.zip file from Latest release or Dev release
  2. Create script-server folder anywhere on your PC and extract zip content to this folder

(For detailed steps on linux with virtualenv, please see Installation guide)

As a docker container

Please find pre-built images here: https://hub.docker.com/r/bugy/script-server/tags
For the usage please check this ticket

For development

  1. Clone/download the repository
  2. 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, use npm run build or npm run serve

Setup and run

  1. Create configurations for your scripts in conf/runners/ folder (see script config page for details)
  2. Launch launcher.py from script-server folder
  • Windows command: launcher.py
  • Linux command: ./launcher.py
  1. Add/edit scripts on the admin page

By default, the server will run on http://localhost:5000

Server config

All the features listed above and some other minor features can be configured in conf/conf.json file. It is allowed not to create this file. In this case, default values will be used. See server config page for details

Admin panel

Admin panel is accessible on admin.html page (e.g. http://localhost:5000/admin.html)

Logging

All web/operating logs are written to the logs/server.log Additionally each script logs are written to separate file in logs/processes. File name format is {script_name}_{client_address}_{date}_{time}.log.

Testing/demo

Script-server has bundled configs/scripts for testing/demo purposes, which are located in samples folder. You can link/copy these config files (samples/configs/*.json) to server config folder (conf/runners).

Security

I do my best to make script-server secure and invulnerable to attacks, injections or user data security. However to be on the safe side, it's better to run Script server only on a trusted network.
Any security leaks report or recommendations are greatly appreciated!

Shell commands injection

Script server guarantees that all user parameters are passed to an executable script as arguments and won't be executed under any conditions. There is no way to inject fraud command from a client-side. However user parameters are not escaped, so scripts should take care of not executing them also (general recommendation for bash is at least to wrap all arguments in double-quotes). It's recommended to use typed parameters when appropriate, because they are validated for proper 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, but only for .bat and .exe files on Windows

XSS and CSRF

At the moment script server is vulnerable to these attacks.

Contribution

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 via [email protected]

Asking questions

If you have any questions, feel free to:

Special thanks

JetBrains logo

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].