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: Firetower – 4 – 2
The core of this framework requires the following:
- Apache ≥ 2.4
- The
DocumentRoot
config option to set/public
- The
FallbackResource
config option set to/index.php
- The
- PHP ≥ 8.0
- The
curl
Built-In Extension - The
pdo_mysql
Built-In Extension - The
openssl
Built-In Extension - Python ≥ 3.9
- The
- 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_password
Authentication.
- 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-chars
andapp-groups
roles 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.dist
to/config/config.ini
and 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.ini
file and accessing the webserver at least once, you can run/scripts/Python/run.py
as 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
/config/config.ini
file somewhere python can access it. - Move the
/scripts/Python/
folder to wherever you'll be running it from. - In
/Relay/main.py
change theCONFIG_PATH_OVERRIDE
variable to an absolute path where your copy ofconfig.ini
is being stored.
- 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.ini
if 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.