GNU Affero General Public License v3.0

项目介绍

sipcapture/homer-app 是一个托管在 GitHub 上的开源项目,主要使用 Go 编写,采用 GNU Affero General Public License v3.0 许可证,目前获得 241 个 Star、95 次 Fork。

仓库全名
sipcapture/homer-app
开源许可证
GNU Affero General Public License v3.0
Star 数
241
Fork 数
95

README 摘要

Depricated - please use Homer11 http://github.com/sipcapture/homer 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.23+ postgres 11+ git 2.7+ optional prometheus…

完整内容见 GitHub 原始 README 或本页 。

常见问题

homer-app 用什么语言开发?

主要使用 Go 编写,采用 GNU Affero General Public License v3.0 许可证,目前有 241 个 Star。

homer-app 可以免费商用吗?

仓库标注的许可证为 GNU Affero General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 homer-app 的源码?

可以直接克隆仓库:git clone https://github.com/sipcapture/homer-app.git,默认分支为 master;安装与运行步骤见仓库 README。

homer-app 最近还在维护吗?

仓库最近一次更新为 2 天前,当前没有未关闭的 Issue;Star 数为 241,可作为社区活跃度的参考。

关于

HOMER 7.x Front-End and API Server

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

README

Depricated - please use Homer11 http://github.com/sipcapture/homer

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.23+
  • 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
Custom Config in /etc
./homer-app -webapp-config-path=/etc
Initialization

The application is able to initialize its database and tables it requires with the following commands:

Set credentials through the process environment when running provisioning commands:

  • HOMER_DATABASE_ROOT_PASSWORD for the database administrator password
  • HOMER_DATABASE_HOMER_PASSWORD for the Homer database user password
  • HOMER_FORCE_PASSWORD for the password used to populate the Homer administrator
  • HOMER_UPDATE_UI_PASSWORD for -update-ui-password

Example environment setup (all values below are placeholders, not usable credentials):

export HOMER_DATABASE_ROOT_PASSWORD='<database-admin-password>'
export HOMER_DATABASE_HOMER_PASSWORD='<homer-database-password>'
export HOMER_FORCE_PASSWORD='<homer-ui-admin-password>'
export HOMER_UPDATE_UI_PASSWORD='<replacement-ui-password>'

In automation, inject these variables through your secret-management mechanism. Avoid entering real passwords in shell history or storing them in scripts. With the required variables set, omit the password flags, for example:

./homer-app -create-homer-user -database-root-user=postgres -database-host=localhost

These values are used when the corresponding command-line flags are not provided. Avoid passing passwords as command-line arguments because they may be visible in process listings. Setting HOMER_DATABASE_HOMER_PASSWORD to an empty value overrides the existing homer_password default; database-save commands can then persist an empty password to webapp_config.json if the corresponding flag is omitted.

Explicit flags take precedence, including an explicitly empty flag. Unset environment variables retain the existing defaults; variables set to an empty string supply an empty password. Environment values are read literally, without expanding expressions such as ${HOME}. Help output does not include environment password values.

Environment input avoids putting passwords in process arguments, but does not sanitize existing application or SQL logs. Process environments can also be inspected by sufficiently privileged users. Use dummy credentials for tests and avoid exposing provisioning output in automation logs.

Password Flags (Backward Compatibility)

The original command-line examples below remain supported. The example password postgres is illustrative only. Prefer environment input: real password arguments may be visible in process listings, command auditing, and shell history. Explicit password flags override environment values.

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”

Create Table / Migration - connection data will be read from webapp_config.json
./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 
Upgrade / Migration - connection data will be read from webapp_config.json
./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
./homer-app -update-ui-user=admin

For compatibility, the password flag is still accepted, but may be visible in process listings and command auditing:

./homer-app -update-ui-user=admin -update-ui-password='<replacement-ui-password>'

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


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

Donate

© 2008-2025 QXIP BV

评论

暂无评论