The project is very simple, and it can be built with random parts from your junk heap.

This uses a NodeMCU board (as shown above) and a script (available from https://github.com/UnforeseenOcean/StatusLight ).
If you don't want the flashing function, you must replace the transistors (J3Y) inside the lights with either a link or a resistor. I used an SMD resistor (that's quite undersized)
Depending on the stock, you might receive one of two types: One with the classic astable multivibrator circuit or one with the IC. I didn't modify one with the stable multivibrator (other than swapping the LED color with the green light), but I did modify one with the universal 8-pin chip.


(Also note: See those empty pads near the top left corner? You can put an amplifying transformer on the row of 3 pins and a passive buzzer on the two pads above it to add a siren functionality.)
To disable the flashing function, replace Q2 with a link, bridging pin 2 and 3 together.
To make it easier to wire the lights up, I made a change to the circuit, which you can see here: (see the project log for the full schematic)

I tied all the negative connections to the lights to make the circuit easier to make, then simply wired everything else as usual.
The finished board looks like this:

Note the weird circuit I have for the reset button: It was due to the type of button I used, which only had Normally Closed contacts on it. Since I think most buttons will have Normally Open contacts, you can simply leave the resistors off and connect the reset switch between RST and G pins.