Hey Thiago,
I have got that questions a couple of times now and I start to think this is the way to solve it 
But my main reason for not doing it this way is:
If I need to setup a staging (or development instance) I would like to take the latest nightly backup. I don't want to run a backup during office hours since it will be downtime for my 500 users. The backup takes approx. 30 minutes today using the Stash Backup Client.
I could wait for a window outside of the current SLA and turn off Outgoing email. But I also need to disable a bunch of plugins that communicates with surrounding systems, such as Jenkins, Hipchat etc. When these are disabled I can do the backup and then re-enable them again.
In my opinion this is not a good way to manage a mission critical Stash instance. There are too many changes made that may go wrong at some place. It is also done outside of office hours which makes it harder if somethings goes wrong. A better approach is to NOT change my production environment at all and then alter the restored version that shall be my Staging instance instead.
I have tried to disable the outgoing email via database update (See https://answers.atlassian.com/questions/9881301/disable-email-notification-from-stash) and it works fine. I also have a few SQL queries ready to disable enabled hooks on repo level (instead of disable the actual hook itself).
I will setup my staging environment during this week and can post my steps and SQL queries here if you like and they might be part of the documentation.
Cheers,
// Svante
For anyone looking at this issue, please refer to the KB written by us: https://confluence.atlassian.com/display/BitbucketServerKB/How+to+establish+staging+server+environments+for+Bitbucket+Server