[readme] WIP update

This commit is contained in:
2023-10-31 00:46:10 +01:00
parent abbd1561f2
commit bcaacc1634

View File

@@ -1,5 +1,5 @@
# gokill # gokill
'gokill' is a daemon that completes some actions when a certain event occurs. 'gokill' is a tool that completes some actions when a certain event occurs.
actions can vary from shuting down the machine to sending mails over erasing data. actions can vary from shuting down the machine to sending mails over erasing data.
actions can be triggert by certain conditions like specific outcomes of unix actions can be triggert by certain conditions like specific outcomes of unix
comands or not having internet connection. comands or not having internet connection.
@@ -10,14 +10,57 @@ every action and trigger should be testable at anytime as a 'dry-run'.
actions can have a 'stage' defined. the lowest stage is started first, actions can have a 'stage' defined. the lowest stage is started first,
and only when all actions on that stage are finished next stage is triggered and only when all actions on that stage are finished next stage is triggered
the killswitch will run as daemon. config should be read from gokill should run as daemon. config should be read from /etc/somename/config.json
/etc/somename/config.json
many devices can be connected to each other over ipfs. that makes it possible ## Config Example
to send triggers to each other. for example device A can trigger an event on ``` json
device B. no matter where they are, no zentralized service necessary. [ //list of triggers
{
it should be evaluated if and how smartphones could be included to that. "type": "UsbDisconnect",
"name": "First Trigger",
"options": {
"deviceId": "ata-Samsung_SSD_860_EVO_1TB_S4AALKWJDI102",
"waitTillConnected": true //only trigger when usb drive was actually attached before
}
"actions": [ //list of actions that will be executed when triggered
{
"name": "unixCommand",
"options": {
"command": "shutdown -h now"
},
"stage": 2 // defines the order in which actions are triggered.
},
{
"type": "sendMail",
"options": {
"smtpserver": "domain.org",
"port": 667,
"recipients": [ "mail1@host.org", "mail2@host.org" ],
"message": "kill switch was triggered",
"attachments": [ "/path/atachments" ],
"pubkeys": "/path/to/keys.pub"
},
"stage": 1 //this event is triggered first, then the shutdown
},
]
},
{
"type": "EthernetDisconnect",
"name": "Second Trigger",
"options": {
"interfaceName": "eth0",
}
"actions": [
{
"name": "unixCommand",
"options": {
"command": "env DISPLAY=:0 sudo su -c i3lock someUser"
}
}
]
}
]
```
## actions ## actions
- [x] shutdown - [x] shutdown
@@ -45,40 +88,3 @@ it should be evaluated if and how smartphones could be included to that.
is triggered is triggered
- allOf - allOf
- [ ] ipfs trigger - [ ] ipfs trigger
## Config
##### Example
``` json
[ //list of triggers
{
"type": "command", //actual trigger
"name": "custom name",
"options": {
"command": "true",
"interval": "1m"
},
"actions": [
{
"name": "unixCommand",
"options": {
"command": "shutdown -h now"
},
"stage": 2 // defines the order in which actions are triggered.
},
{
"type": "sendMail",
"options": {
"smtpserver": "domain.org",
"port": 667,
"recipients": [ "mail1@host.org", "mail2@host.org" ],
"message": "kill switch was triggered",
"attachments": [ "/path/atachments" ],
"pubkeys": "/path/to/keys.pub"
},
"stage": 1 //this event is triggered first, then the shutdown
},
]
}
]
```