Erlang Computer Systems Management Console
Erlang CSS Batchfile Other
Switch branches/tags
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Erlang Systems Manager
[ ESysMan ]

ESysMan is an Erlang based client/server computer systems 
management console in which a web browser (with websockets
support) is used to manage computer systems.




Operations that can be performed on the client from the server:

System functions:

- Reboot
- Shutdown
- Ping
- Wake-on-lan (PC only)
- Wake-on-lan (via service in different subnet that doesn't bridge wol packets)
- Restart/stop windows service
- Show logged on users
- Copy - copy file to workstation
- Com - run command on workstation

- Copy All - does copy to all selected workstations
- Com All - does command on all selected workstations
(see General functions below)
Faronics Deep Freeze functions (for PC):
(When Faronics Deep Freeze is available)

- Freeze
- Thaw
- Get freeze/thaw status

Ninite functions:

Run ninite update or run script

General functions:

- Copy a file or script to client and run on client
- When the "All" command check box is selected, then only
  the checked workstations will have that command done on them
- Restrict access based on IP address and username/password
  (both configurable in esysman.conf).



The client periodically sends messages to the server to indicate
whether the system is "Up" and which user is logged in.  It also
does the command processing sent from the server.


Todo list:

- Get client OS, applications and hardware inventory
- Create better comments/specs for functions
- Create layout via web app, not just edit text file
- Move .hrl vars to .conf


Basic setup

1. Erlang (on server and client)

2. Cowboy 2.0.0 (downloaded and compiled when 'make' is run)

3. OpenSSL for creating selfsigned certificates

4. PostgreSQL for logging
   a. epgsql is downloaded during make


Client/Server Setup

1. Server Setup
   a. file setup

   	  i. esysman.hrl file set up as follow:
         (see esysman-example.hrl in src diretory)

	  ii. ecom.hrl setup (for deepfreeze and windows 7)
         (see ecom-example.hrl in repo)

	 iii. create esysman.conf
         (see esysman-example.conf in src directory)

   	  iv. run Make from a shell command prompt

      v. set up PostgreSQL, run createdb esysman then run "psql -U postgres esysman"
         then in esysman/init, run \i esysman.sql to setup esysman table and then
         set access in src/db.hrl

   b. to run, execute the following command from a shell command prompt in the esysman repo:

   	  ./_rel/bin/esysman console

	  use browser to access http://localhost:8080
	  use browser to access https://localhost:8443

2. Clent Setup 
   i. Windows setup

      a. copy ecom.beam to something like c:\erl on a windows system (erlang must also be installed on windows system)
      b. set windows system environment variable "Path" to include erlang (location of erl.exe)
      c. install erlang as a service
   	     per something like this:

	     see init/install-ssl.cmd sample file

		 Also create a .erlang.cookie file in c:\windows and make sure it is set to readonly.

      d. start service
      e. set firewall to allow erl.exe to allow traffic from server IP above

   ii. Linux/Mac setup

      a. copy ecom.beam to something like /usr/local/lib/ebin
      b. run script (see init directory for sample) to start ecom:


      c. set firewall to allow server to talk to client


-Update for cowboy 2.0.0-rc.2
-Add downloads folder
-Add upload to downloads interface


-jQuery ui'd buttons, popups, etc.
-Add T to toggle workstation commands area


-Update to cowboy 1.1.2
-Add a script/file manager
-Add a simple lock screen
-Add support for four web browser consoles


-Update to cowboy 0.9.0
-Add basic centos support
-Move to release format


-Update to cowboy 0.8.3
-Add basic linux/mac support
-Add S/UnS All Coms to select everything - commands and workstations


-Move code to Cowboy 
	  Change history:
	  		  YAWS to Misultin because of better websocket support in Musultin
	  		  Misultin to YAWS as Misultin was EOL'd
	  		  YAWS to Cowboy as YAWS had no wss:// support
-Remove code - messages are just sent, no more call then wait process.
-Add larger log console next to Server Messages header (click + to show/hide console)
-Use Cowboy Examples make/rebar base configuration for easy setup 


To see previous versions of this project (formerly ECSMCons), see:

"-my" at the end indicates misultin and yaws versions exist in the repo