Eve Watchman is a web app for Eve Online allowing corporations and alliances to receive notifications relating to their structures and sovereignty. It includes a GUI allowing for the management of notifications at the corporation and alliance levels, and can send notifications to both Discord and Slack through their respective Webhook functionalities.
This Branch is a rewrite of the application using a new custom framework. Versions prior to Firetower - 0 - 0 cannot be upgraded to this version while still retaining data!
Current Version: Radar - 2 - 0
The core of this framework requires the following:
- A Web Server Such As:
- NGINX ≥ 1.18
- The
rootoption pointing to the/publicfolder - The
indexoption set toindex.php - The
try_filesoption set to$uri /index.php$is_args$args
- The
- Apache ≥ 2.4
- The
DocumentRootconfig option set to/public - The
FallbackResourceconfig option set to/index.php
- The
- NGINX ≥ 1.18
- PHP ≥ 8.1
- The
curlBuilt-In Extension - The
pdo_mysqlBuilt-In Extension - The
opensslBuilt-In Extension
- The
- Python ≥ 3.11
- An SQL Server
- If you are using MySQL, the Authentication Method MUST be the Legacy Version. PDO does not support the use of
caching_sha2_passwordAuthentication.
- If you are using MySQL, the Authentication Method MUST be the Legacy Version. PDO does not support the use of
- A Registered Eve Online Application.
- This can be setup via the Eve Online Developers Site.
- See the Configuration File for important details about setting this up.
- [When Using The Neucore Authentication Method] A Neucore Application
- The application needs the
app-charsandapp-groupsroles added, along with any groups that you want to be able to set access roles for. - NOTE: It is not currently recommended to use this authentication method, as access is tied to the corporation / alliance of the logged-in character. An update to make this authentication method viable is planned for the future.
- The application needs the
- Rename the Configuration File in
/config/config.ini.distto/config/config.iniand setup as needed.- If you need to move this file you'll need to change the path it's accessed from in
/config/config.php
- If you need to move this file you'll need to change the path it's accessed from in
- After setting up the
/config/config.inifile and accessing the webserver at least once, you can run/scripts/Python/run.pyas a cronjob to begin relaying notifications.- It's recommended to run this script once a minute, or at an even higher frequency if you have the capability.
In the event that it's not easy to deploy the entire app to one server, the Python-Based Relay can be transferred to another server by following the instructions below:
- Make sure to copy the
/configfolder somewhere python can access it. - Move the
/scripts/Python/folder to wherever you'll be running it from. - In
/OverhaulConfig/Overhaul_Config.pychange theCONFIG_DIRECTORYvariable to an absolute path to your copied/configdirectory.
- You can find environment variable keys associated with each config value in the comments of
/config/config.ini.dist. - Some variables are required, some have defaults, and some are only needed in specific circumstances. These are listed in the comments of the file.
- The web app and relay each only support either Environment Variables or a Config File, not both.
- The Config File always takes priority. To use Environment Variables, delete
/config/config.iniif it exists.
- The Config File always takes priority. To use Environment Variables, delete
The following notifications are supported and configured according to the following categories:
- StructureDestroyed
- StructureLostArmor
- StructureLostShields
- StructureUnderAttack
- StructureAnchoring
- StructureFuelAlert
- StructureOnline
- StructureUnanchoring
- StructureServicesOffline
- StructureWentHighPower
- StructureWentLowPower
- StructureImpendingAbandonmentAssetsAtRisk
- StructuresReinforcementChanged
- OwnershipTransferred
- MoonminingAutomaticFracture
- MoonminingLaserFired
- MoonminingExtractionCancelled
- MoonminingExtractionFinished
- MoonminingExtractionStarted
- EntosisCaptureStarted
- SovCommandNodeEventStarted
- SovStructureReinforced
- SovStructureDestroyed
- SovAllClaimAquiredMsg
- SovAllClaimLostMsg
- SovStructureSelfDestructRequested
- SovStructureSelfDestructFinished
- SovStructureSelfDestructCancel
- SkyhookOnline
- SkyhookLostShields
- SkyhookUnderAttack
- SkyhookDeployed
- (Skyhook Online) - unknown notification type (281)
- (Skyhook Reinforced) - unknown notification type (282)
- (Skyhook Under Attack) - unknown notification type (283)
- (Skyhook Anchoring) - unknown notification type (285)
- OrbitalAttacked
- OrbitalReinforced
- TowerAlertMsg
- TowerResourceAlertMsg
- AllAnchoringMsg
- CorpTaxChangeMsg
- CorpNewCEOMsg
- CorpVoteCEORevokedMsg
- CorpVoteMsg
- CorpNewsMsg
- Much of the relay is based on the reconbot project by flakas.
- The Unofficial Notification Documentation by antihax was instrumental in creating many of the custom notifications.
- Icons used across the web app are from the Bootstrap Icons project.