HOMER WebApp
This repository hosts homer-app
, the the GO webapplication for the HEP/HOMER 7.7+ stack.
Instructions
If you want to install Homer please refer to the project readme
If you're just interested in using homer-app
, download, configure and run the latest release or package.
Requirements
- golang 1.13+
- postgres 11+
- git 2.7+
- optional
- prometheus
- influxdb
- loki
Installation
Local
To get dependencies and compile the latest homer-app on your system, use the following commands:
make modules
make all
Docker
To get dependencies and compile the latest homer-app using a docker builder, use the following command:
make binary
make frontend
Configuration
Before using the application, configure all database parameters using the example configuration file:
/usr/local/homer/etc/webapp_config.json
NOTE: The default location for settings and provisioning files is /usr/local/homer
Usage
Command Help
./homer-app -h
/etc
Custom Config in ./homer-app -webapp-config-path=/etc
Initialization
The application is able to initialize its database and tables it requires with the following commands:
Create User
./homer-app -create-homer-user -database-root-user=postgres -database-host=localhost -database-root-password=postgres
Show User
./homer-app -show-db-users -database-root-user=postgres -database-host=localhost -database-root-password=postgres
Create Homer DBs
./homer-app -create-config-db -database-root-user=postgres -database-host=localhost -database-root-password=postgres -database-homer-user=homer_user
./homer-app -create-data-db -database-root-user=postgres -database-host=localhost -database-root-password=postgres -database-homer-user=homer_user
Create User permissions
./homer-app -create-homer-role -database-root-user=postgres -database-host=localhost -database-root-password=postgres -database-homer-data=homer_data -database-homer-config=homer_config
Please setup the correct credentials for homer_config and homer_data DB in your webapp_config.json !!!
if your webapp_config.json isn't in the default directory: "/usr/local/homer/etc", use the flag "-webapp-config-path" to correct it. Same have to be applied to all steps there you read settings from "webapp_config.json"
webapp_config.json
Create Table / Migration - connection data will be read from ./homer-app -create-table-db-config
or
./homer-app -create-table-db-config -webapp-config-path=/etc/webapp_config.json
Populate DB
./homer-app -populate-table-db-config
webapp_config.json
Upgrade / Migration - connection data will be read from ./homer-app -upgrade-table-db-config
Re- Populate Config DB
./homer-app -populate-table-db-config -force-populate
Re- Populate Config DB for specific table/tables
./homer-app -populate-table-db-config -force-populate -populate-table=mapping_schema -populate-table=user_settings
Reset UI password for any user:
./homer-app -update-ui-user=admin -update-ui-password=mypassword
Swagger APIs
Requirements
Swagger APIs can be generated from inside the homer-app
To generate swagger.json file run below command insider homer-app
swagger generate spec -m -o ./swagger.json
To Serve swagger.json file run below command
swagger serve -F=swagger swagger.json
DEB, RPM Packages
To build a full package, including the latest frontend code:
make package
The application will deploy to /usr/local/bin
with config in /etc
Docker Image
This application is available on dockerhub as sipcapture/webapp
To build a full bundle locally, including the latest frontend code:
make docker
For working examples and ready to run recipes see homer7-docker
This project is part of HOMER
License & Copyright
This project is released under the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Made by Humans
This Open-Source project is made possible by actual Humans without corporate sponsors, angels or patreons.
If you use this software in production, please consider supporting its development with contributions or donations