I recently got my LAN onto IPv6 (besides the classic IPv4).
SixXs
The procedure wasn't especially hard: get an account at http://www.sixxs.net, register for a tunnel (/64). Once the necessary operations are done for the tunnel and it's up & running, apply for a subnet (/48), have it routed to you through the tunnel, and you're good to go.
Sounds easy, yes? There's a catch: the tunnel software wouldn't properly install on by Ubuntu boxen, and I ended up installing and configuring it all on a separate VM running Debian (my IPv6 gateway). The advantage is, I have everything v6-related on there: tunnel software aiccu, radvd (IPv6 autoconfiguration daemon), and last not least the IPv6 firewalling (using ip6tables). Don't forget restarting the networking stuff. SixXs have decent documentation, as does Debian/Ubuntu. There's an issue with the proposed stateful firewall script though, they forgot to allow answering traffic back to the gateway itself.
Webserver
Getting apache to listen on IPv6 was trivial: just add the fixed IPv6 address to the ethernet device, and restart. Of course, apache here is configured to listen to any local addresses (NameVirtualHost *, VirtualHost *).
Adding the IPv6 address is rather simple: edit the file /etc/network/interfaces, and add the definition as follows:
iface eth1 inet6 static
address 2001:7e8:220b::5
netmask 64
Mailserver
The host needs to have its IPv6 address configured. In sendmail, the listening to IPv6 has to be added to the /etc/mail/sendmail.mc file:
DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=2001:7e8:220b::5')dnl
Same goes for the submission port, if you want to use it, and of course the localhost address. Don't forget to regenerate the sendmail.cf, and restart sendmail.
For dovecot (POP/IMAP), you have to add IPv6 to the /etc/dovecot/dovecot.conf file:
listen = [::]
reload afterwards, that's it.
WIFI Access Point (Linksys WRT54G) using dd-wrt
dd-wrt theoretically promises IPv6 support, but doesn't actually deliver. I had to track down an alternative firmware version from CrushedHat, which did. Autoconfiguration doesn't seem to work though, I had to manually set an IPv6 address. It helps to be able to connect by SSH, so you'll want to enable that feature first. For now, I didn't try to configure the aiccu tunnel and radvd plus ip6tables on here, but may add this later - it would enable me to get rid of the Debian VM which does those tasks for now.
DNS for my domain. Here, the difficulty lies in the fact that I use dyndns for IPv4. My domain has CNAMEs pointing to my dyndns host, and you cannot define AAAA records for the same names where a CNAME exists. Thus, I had to define new names, www6.hellsnet.lu and mail6.hellsnet.lu with the corresponding IPv6 addresses.
Also, I decided to test unbound as local DNS resolver. I set it up in the same VM handling the aiccu tunnel, but got really bad delays. It turned out the ip6tables script I found somewhere online was buggy, didn't allow return traffic in for traffic originating from the local box. Since correcting this, unbound is running fine.
The aiccu tunnel won't work if the clock drifts too far. I've had to set up an ntp daemon for this task.