go-privnote Open-source alternative for self-destruct notes TODO templates api manually managed transaction -> DB.View/DB.Update Dockerfile Note expiration unittest