├── README.md └── install_kupiki_admin.sh /README.md: -------------------------------------------------------------------------------- 1 | [![Slack](https://img.shields.io/badge/slack-kupiki--tools-blue.svg)](https://kupiki-tools.slack.com) ![Stars](https://img.shields.io/github/stars/kupiki/kupiki-hotspot-admin-install.svg?style=social&label=Star) [![Donate](https://img.shields.io/badge/%24-Donate-brightgreen.svg)](https://paypal.me/PiHomeServer) 2 | 3 | What is Kupiki Hotspot Admin 4 | ================== 5 | 6 | This application is a web frontend to monitor and administrate the [Kupiki Hotspot](https://github.com/pihomeserver/Kupiki-Hotspot-Script). 7 | 8 | - Frontend application : [![Build Status](https://travis-ci.org/Kupiki/Kupiki-Hotspot-Admin-Frontend.svg?branch=master)](https://travis-ci.org/Kupiki/Kupiki-Hotspot-Admin-Frontend) ![npm dependencies](https://david-dm.org/Kupiki/Kupiki-Hotspot-Admin-Frontend.svg) [![Coverage Status](https://coveralls.io/repos/github/Kupiki/Kupiki-Hotspot-Admin-Frontend/badge.svg?branch=master)](https://coveralls.io/github/Kupiki/Kupiki-Hotspot-Admin-Frontend?branch=master) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/83b2ebb8ca3f46a9a2b08975ff714cd4)](https://www.codacy.com/app/pihomeserver/Kupiki-Hotspot-Admin-Frontend?utm_source=github.com&utm_medium=referral&utm_content=Kupiki/Kupiki-Hotspot-Admin-Frontend&utm_campaign=Badge_Grade) [![Known Vulnerabilities](https://snyk.io/test/github/kupiki/kupiki-hotspot-admin-frontend/badge.svg)](https://snyk.io/test/github/kupiki/kupiki-hotspot-admin-frontend) 9 | - Backend application : [![Build Status](https://travis-ci.org/Kupiki/Kupiki-Hotspot-Admin-Backend.svg?branch=master)](https://travis-ci.org/Kupiki/Kupiki-Hotspot-Admin-Backend) ![npm dependencies](https://david-dm.org/Kupiki/Kupiki-Hotspot-Admin-Backend.svg) [![Coverage Status](https://coveralls.io/repos/github/Kupiki/Kupiki-Hotspot-Admin-Backend/badge.svg?branch=master)](https://coveralls.io/github/Kupiki/Kupiki-Hotspot-Admin-Backend?branch=master) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/6fb5dbcf65184755ad36a97590b78fe2)](https://www.codacy.com/app/pihomeserver/Kupiki-Hotspot-Admin-Backend?utm_source=github.com&utm_medium=referral&utm_content=Kupiki/Kupiki-Hotspot-Admin-Backend&utm_campaign=Badge_Grade) [![Known Vulnerabilities](https://snyk.io/test/github/kupiki/kupiki-hotspot-admin-backend/badge.svg)](https://snyk.io/test/github/kupiki/kupiki-hotspot-admin-backend) 10 | 11 | 12 | Warning 13 | ===== 14 | 15 | The application is in development so be sure that you will find bugs and errors. So please log them in the [Frontend GitHub issues](https://github.com/Kupiki/Kupiki-Hotspot-Admin-Frontend/issues) 16 | the [Backend GitHub issues](https://github.com/Kupiki/Kupiki-Hotspot-Admin-Backend/issues), or current repo issues for installation issues. 17 | 18 | Features 19 | ======= 20 | - Monitoring 21 | - Display in a dashboard CPU, disk, memory, uptime and temperature (for Raspberry Pi) 22 | - OS System information 23 | - List of services with status 24 | - Netflow information (if installed) 25 | - System administration 26 | - Stop / Start services 27 | - Upgrade system 28 | - Reboot / Shutdown system 29 | - Hotspot administration 30 | - Change hotspot name 31 | - Update hostapd service configuration 32 | - Hotspot management 33 | - Users management 34 | 35 | How to install 36 | ======= 37 | 38 | - Clone the project with the install script 39 | ``` 40 | git clone https://github.com/Kupiki/Kupiki-Hotspot-Admin-Install 41 | ``` 42 | - Run the installation script 43 | ``` 44 | chmod +x install_kupiki_admin.sh && ./install_kupiki_admin.sh 45 | ``` 46 | Screenshots 47 | ======= 48 | 49 | #### Login screen 50 | ![login](http://www.pihomeserver.fr/hosting/kupiki/login.png) 51 | 52 | #### Dashboard 53 | ![dashboard](http://www.pihomeserver.fr/hosting/kupiki/dashboard.png) 54 | 55 | #### Basic configuration 56 | ![simple](http://www.pihomeserver.fr/hosting/kupiki/simple.png) 57 | 58 | #### Advanced configuration 59 | ![advanced](http://www.pihomeserver.fr/hosting/kupiki/advanced.png) 60 | 61 | #### Hotspot management 62 | ![mgmt](http://www.pihomeserver.fr/hosting/kupiki/mgmt.png) -------------------------------------------------------------------------------- /install_kupiki_admin.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | check_returned_code() { 4 | RETURNED_CODE=$@ 5 | if [ $RETURNED_CODE -ne 0 ]; then 6 | display_message "" 7 | display_message "Something went wrong with the last command. Please check the log file" 8 | display_message "" 9 | exit 1 10 | fi 11 | } 12 | 13 | display_message() { 14 | MESSAGE=$@ 15 | # Display on console 16 | echo "::: $MESSAGE" 17 | # Save it to log file 18 | echo "::: $MESSAGE" >> $LOGPATH$LOGNAME 19 | } 20 | 21 | MY_IP=`ip -4 route get 8.8.8.8 | awk {'print $7'} | tr -d '\n'` 22 | 23 | CLIENT_PROTOCOL=http 24 | CLIENT_HOST=$MY_IP 25 | CLIENT_PORT=8080 26 | SERVER_PROTOCOL=http 27 | SERVER_HOST=$MY_IP 28 | SERVER_PORT=4000 29 | 30 | FRONTEND_URL="https://github.com/Kupiki/Kupiki-Hotspot-Admin-Frontend.git" 31 | BACKEND_URL="https://github.com/Kupiki/Kupiki-Hotspot-Admin-Backend.git" 32 | BACKEND_SCRIPT_URL="https://github.com/Kupiki/Kupiki-Hotspot-Admin-Backend-Script.git" 33 | 34 | display_message "Cloning Kupiki Admin Frontend" 35 | cd $HOME 36 | git clone $FRONTEND_URL 37 | check_returned_code $? 38 | 39 | display_message "Building Kupiki Admin Frontend image" 40 | cd Kupiki-Hotspot-Admin-Frontend 41 | docker build --build-arg CLIENT_HOST=$CLIENT_HOST --build-arg CLIENT_PORT=$CLIENT_PORT --build-arg SERVER_HOST=$SERVER_HOST --build-arg SERVER_PORT=$SERVER_PORT . -t admin-frontend 42 | check_returned_code $? 43 | 44 | display_message "Creating Kupiki Admin Frontend service" 45 | cat > /etc/systemd/system/kupiki.admin.frontend.service << EOT 46 | [Unit] 47 | Description=Kupiki Administration Frontend 48 | After=docker.service 49 | Requires=docker.service 50 | After=mariadb.service 51 | Requires=mariadb.service 52 | 53 | [Service] 54 | TimeoutStartSec=0 55 | Restart=always 56 | ExecStartPre=/usr/bin/docker stop -t 5 admin-frontend 57 | ExecStart=/usr/bin/docker start -a admin-frontend 58 | ExecStop=/usr/bin/docker stop -t 5 admin-frontend 59 | 60 | [Install] 61 | WantedBy=multi-user.target 62 | EOT 63 | 64 | display_message "Activating Kupiki Admin Frontend service" 65 | chmod +x /etc/systemd/system/kupiki.admin.frontend.service 66 | check_returned_code $? 67 | /bin/systemctl enable /etc/systemd/system/kupiki.admin.frontend.service 68 | check_returned_code $? 69 | 70 | display_message "Starting Kupiki Admin Frontend container" 71 | /usr/bin/docker run -d -p $CLIENT_PORT:80 --name=admin-frontend admin-frontend 72 | check_returned_code $? 73 | 74 | # display_message "Cleaning unwanted Docker images" 75 | # docker rmi $(docker images --filter dangling=true -q) --force 76 | # check_returned_code $? 77 | 78 | display_message "Cloning Kupiki Admin Backend" 79 | cd $HOME 80 | git clone $BACKEND_URL 81 | check_returned_code $? 82 | 83 | display_message "Building Kupiki Admin Backend image" 84 | cd Kupiki-Hotspot-Admin-Backend 85 | docker build --build-arg CLIENT_HOST=$CLIENT_HOST --build-arg CLIENT_PORT=$CLIENT_PORT --build-arg SERVER_HOST=$SERVER_HOST --build-arg SERVER_PORT=$SERVER_PORT . -t admin-backend 86 | check_returned_code $? 87 | 88 | display_message "Creating Kupiki Admin Backend service" 89 | cat > /etc/systemd/system/kupiki.admin.backend.service << EOT 90 | [Unit] 91 | Description=Kupiki Administration Backend 92 | After=docker.service 93 | Requires=docker.service 94 | After=mariadb.service 95 | Requires=mariadb.service 96 | 97 | [Service] 98 | TimeoutStartSec=0 99 | Restart=always 100 | ExecStartPre=/usr/bin/docker stop -t 5 admin-backend 101 | ExecStart=/usr/bin/docker start -a admin-backend 102 | ExecStop=/usr/bin/docker stop -t 5 admin-backend 103 | 104 | [Install] 105 | WantedBy=multi-user.target 106 | EOT 107 | 108 | display_message "Activating Kupiki Admin Backend service" 109 | chmod +x /etc/systemd/system/kupiki.admin.backend.service 110 | check_returned_code $? 111 | /bin/systemctl enable /etc/systemd/system/kupiki.admin.backend.service 112 | check_returned_code $? 113 | 114 | display_message "Starting Kupiki Admin Backend container" 115 | /usr/bin/docker run -d -p $SERVER_PORT:$SERVER_PORT --network="host" --name=admin-backend admin-backend 116 | check_returned_code $? 117 | 118 | # display_message "Cleaning unwanted Docker images" 119 | # docker rmi $(docker images --filter dangling=true -q) --force 120 | # check_returned_code $? 121 | 122 | display_message "Cloning Kupiki Admin Backend Script" 123 | cd $HOME 124 | git clone $BACKEND_SCRIPT_URL 125 | check_returned_code $? 126 | 127 | display_message "Creating Kupiki Admin rabbitmq service" 128 | cat > /etc/systemd/system/kupiki.admin.rabbitmq.service << EOT 129 | [Unit] 130 | Description=Kupiki Administration RabbitMQ 131 | After=docker.service 132 | Requires=docker.service 133 | 134 | [Service] 135 | TimeoutStartSec=0 136 | Restart=always 137 | ExecStartPre=/usr/bin/docker stop -t 5 rabbitmq 138 | ExecStart=/usr/bin/docker start -a rabbitmq 139 | ExecStop=/usr/bin/docker stop -t 5 rabbitmq 140 | 141 | [Install] 142 | WantedBy=multi-user.target 143 | EOT 144 | 145 | display_message "Activating Kupiki Admin rabbitmq service" 146 | chmod +x /etc/systemd/system/kupiki.admin.rabbitmq.service 147 | check_returned_code $? 148 | /bin/systemctl enable /etc/systemd/system/kupiki.admin.rabbitmq.service 149 | check_returned_code $? 150 | 151 | display_message "Starting RabbitMQ" 152 | /usr/bin/docker run -d -p 5672:5672 -p 15672:15672 --name=rabbitmq rabbitmq:management-alpine 153 | check_returned_code $? 154 | 155 | display_message "Copy of Kupiki Admin Script" 156 | cp $HOME/Kupiki-Hotspot-Admin-Backend-Script/Script/kupikiListener.py /etc/kupiki/kupikiListener.py 157 | check_returned_code $? 158 | 159 | display_message "Creating Kupiki Admin Script service" 160 | cat > /etc/systemd/system/kupiki.admin.script.service << EOT 161 | [Unit] 162 | Description=Kupiki Administration Script 163 | After=kupiki.admin.rabbitmq.service 164 | 165 | [Service] 166 | Type=simple 167 | Restart=always 168 | RestartSec=20 169 | ExecStart=/usr/bin/python /etc/kupiki/kupikiListener.py 170 | 171 | [Install] 172 | WantedBy=default.target 173 | EOT 174 | 175 | display_message "Activating Kupiki Admin script service" 176 | chmod +x /etc/systemd/system/kupiki.admin.script.service 177 | check_returned_code $? 178 | /bin/systemctl enable /etc/systemd/system/kupiki.admin.script.service 179 | check_returned_code $? 180 | 181 | display_message "Waiting for RabbitMQ to be ready" 182 | sleep 15 183 | /bin/systemctl start kupiki.admin.script.service 184 | --------------------------------------------------------------------------------