CAI CP

v0.9
A simple control panel for home server

## Requirements Web server
PHP7 (php7-json, php7-posix)
gawk (GNU awk)
grep
hddtemp
lsb-release
sed
smartmontools (smartctl)
sysstat (iostat)
## Installation ### Step 1: Get CP ```sh git clone --depth 1 https://github.com/CAI79/CAI-CP.git ``` ### Step 2: Set rights Following commands set correct access rights to all CAI CP files (in this example webserver runs with wwwrun:www priveledges): ```sh $ chown -R wwwrun:www /path/to/base/dir $ chmod 440 $(find /path/to/base/dir -type f) $ chmod 550 $(find /path/to/base/dir -type d) $ chmod 550 $(find /path/to/base/dir -type f | grep .sh$) $ chmod 640 /path/to/base/dir/system/json/settings.json $ chmod 640 /path/to/base/dir/system/apps/apps.json ``` Prevent scripts to be available from browser. Add following lines to apache's .conf file: ```sh # Add this to block Require all denied ``` Some functions requires su priveledges, add webserver user to sudoers. Run visudo and add following line to "User privilege specification" (in this example webserver runs with wwwrun:www priveledges): ```sh ## For HDD S.M.A.R.T. monitoring wwwrun ALL=NOPASSWD: /usr/sbin/smartctl ## For HDD temperature monitoring wwwrun ALL=NOPASSWD: /usr/sbin/hddtemp ## For SMB monitoring wwwrun ALL=NOPASSWD: /usr/bin/smbstatus ## For shutdown/reboot functionality (You can skip this step and turn off shutdown/reboot functionality in settings) wwwrun ALL=NOPASSWD: /sbin/shutdown ``` ### Step 3: Initial config In system\settings.php set FILE_OWNER and FILE_GROUP constants to owner and group of your web server. Be careful with SHUTDOWN_ENABLED and REBOOT_ENABLED options. CAI CP does not provide any security or authentication features and be protected via a security measure of your choice. Help system contains information about how to enable basic authentication.