To add a personal repository, you need to have a shell account. The steps to upload a new repo are something like this:
git clone --bare repo repo.git
cd repo.git
touch git-daemon-export-ok
vim description
cp hooks/post-update.sample hooks/post-update
cd ..
rsync -av repo.git git.xiph.org:public_git/
rm -rf repo.git
If you get an error from the final rsync command about the target directory not existing, create it with:
ssh git.xiph.org mkdir -p public_git
ssh git.xiph.org chmod 755 public_git
Then try the rsync command again.
Little party hats are optional.