From other correspondence it seems that you may already have made some progress on this, but here are a couple of links:
Both applications are simple enough to install on a *nix host. Gerrit is effectively an interface to git, so would operate as a gatekeeper to your GitLab git repository. It allows developers to submit changes, but those changes must be reviewed before they are merged into Gerrit's git repository.
We require that at least two other developers must approve a submitted change, and we also require verification from Jenkins that the new code does not break the build (usually a run of unit-tests and some lint checking). Jenkins supports a Gerrit plugin that triggers a build everytime a developer submits a new patch set for review. We nominate a small number of users as 'Integrators' and only they are allowed to approve a change for merging into the authoritative codebase.
This can work alongside your GitLab installation - once a change has been submitted Gerrit can 'replicate' (i.e. push) the affected branch to a remote repository - in this case to GitLab.
I not sure this process is compatible with git flow, which I believe is based on pull requests, but I admit that I am not intimately familiar with git flow.