It's actually pretty easy. On the client side you need to specify your hostname, your origin and the relay host. For example:
Mydestination must not be set otherwise mail will be delivered locally. Server side you need first rewrite the from field of every email coming from the satellite host. This is necessary in my case as I'm using a local domain that is unknown to the relay host and that will cause a rejection with "unknown domain". Secondly you would need to rewrite the To field of the email to deliver it either locally of send it somewhere else.
in brief:
Mydestination is to accept the email from the satellite host, the canonical_maps is to rewrite the From and the virtual_maps are to rewrite the To field.
For the canonical maps I use a regexp to match all my satellite hosts at once and rewrite them to $user-$host@example.net . For example:
Recent comments
1 min 50 sec ago
1 hour 27 min ago
13 hours 54 min ago
1 day 20 hours ago
1 day 21 hours ago
3 weeks 4 days ago
23 weeks 6 days ago
1 year 24 weeks ago
1 year 28 weeks ago
1 year 41 weeks ago