What's the difference between Crucible and Stash? Do I need both?
Stash's pull request (i.e. code review) feature is structured in a way that supports workflows used by distributed source control systems, like Git. Requests are created when a developer asks to merge their working branch or fork back into the main code line (typically known as master). All the changes/commits residing in that working copy can then be reviewed by other developers on the same team. Once the review is complete, the code can then be merged.
This type of review differs from the Crucible code review model in that all changes in a particular branch are reviewed at one time. Instead of comparing one branch to another, Crucible allows the user to select only 1 branch and pick the changes/commits they would like to include in the review. This is the biggest difference between Crucible reviews and Stash's pull requests.
If the pull request model doesn't meet your requirements for code review, then it is an option to continue to run Crucible on a local server. You can then point Crucible to your Git repositories stored in Stash.