Eu já fiz isso antes e o processo é bem direto.
Eu executei um servidor da Web em uma conta dial-up que precisava desconectar e rotear IPs a cada 12 horas para estar em conformidade com os Termos de Serviço do ISP no momento. Eu vou assumir no seu caso que você não precisa se preocupar com a lógica para manter a coisa discada, então eu vou pular para a próxima parte.
a primeira coisa que você precisa fazer é criar um nome de domínio devidamente qualificado que possa ser resolvido na Internet. Você pode fazer isso se você executar o seu próprio servidor DNS ou você pode usar um serviço gratuito como o DynDNS para criar um nome estático, mas solucionável, que você usará para chegar ao seu servidor web.
Depois de selecionar seu nome de domínio e ter uma entrada DNS válida para resolvê-lo, o próximo passo é instalar o serviço de atualização DynDNS no seu servidor, que atualizará sua entrada DNS dinamicamente quando o seu IP for alterado.
O próximo passo é construir seu servidor web. Eu usei o IIS e o Apache com sucesso neste cenário. Seja qual for o servidor que você usa, é uma questão de preferência pessoal.
Depois de tudo isso, você precisará garantir que o roteador / firewall esteja configurado para redirecionar a porta para o seu servidor da Web dentro de sua rede. Eu recomendo o encaminhamento da porta 80, o que tornará o site acessível a todos que digitarem o FQDN em seu navegador. Se você quiser manter este servidor privado, você pode considerar colocar o servidor em outra porta.