Here's a somewhat similar example you could adapt:
You'd have to change the selectInputs to checkboxGroupInput (and updateSelectInput to updateCheckboxGroupInput) and change the UI to move the filter controls to the sidebar, but a lot of the core logic would stay the same I think.