+++ date = '2025-09-30T03:09:52-03:00' draft = false title = 'Host a Blog With Hugo' tags = ["blog", "hugo", "server"] categories = ["web", "self-hosted"] description = "Tutorial de como criar um blog com Hugo e integrar comentários usando Comentario." +++ Hoje vou mostar como fiz para setar um blog com comentários usando [Hugo](https://gohugo.io/) e [Comentario](https://comentario.app/en/). - **Hugo** é um framework open source para construção de websites estáticos, extremamente rápido e flexível. - **Comentario** é uma engine open source de comentários, fácil de integrar e auto-hospedável. ## 1. Utilizando o Hugo ### Instalando o hugo Se sua distribuição linux for baseado em Debian rode o comando ```bash $ sudo apt install hugo ``` caso contrario você pode verificar na documentação. Agora que você já tem ele instalado basta dar ```bash hugo new site {nome-do-seu-blog} ``` que ele criara uma pasta com tudo que eh necessario. ### Instalando um tema Para instalar um tema veja os temas disponiveis pela comunidade no [link](https://themes.gohugo.io/), no meu caso atualmente estou usando o [Hugo - Classic](https://themes.gohugo.io/themes/hugo-classic/). Depois de achar um que gostou faca: ```bash cd {nome-do-seu-blog}/themes git init git submodule add link-do-github ``` Abra o arquivo hugo.toml e edite a variavel theme para a pasta criada dentro da pasta do hugo. ### Criando um post Para criar um post eh muito simples tambem, basta rodar ```bash hugo new content content/post/nome-do-post.md ``` Agora basta escrever o seu post em com markdown. Acesse [aqui](https://www.markdownguide.org/cheat-sheet/) para mais informacoes sobre markdown. ### Buildando Para finalizar rode ```bash hugo ``` que ele vai atualizar tudo que eh necessario e publicar seu post --- ## 2. Setando o comentario Existem diversas formas de voce instalar o comentario, porem eu fiz isso utilizando docker. Para isso certifique que você tenha o docker instalado ```bash docker version ``` e crie um arquivo chamado docker-compose.yml ```docker services: app: image: registry.gitlab.com/comentario/comentario:latest-ubuntu environment: BASE_URL: https://sua-url # mude aqui para sua url SECRETS_FILE: "/secrets.yaml" ports: - "6969:80" # mude para a porta que você quiser volumes: - ./secrets.yaml:/secrets.yaml:ro restart: always ``` essa eh so uma possivel forma, você pode editar o arquivo da maneira que preferir. Note que vou utilizar o sqlite3 como banco de dados (pois é usa menos memória), caso você queria usar postgress, ou usar um servidor diferente para o banco de dados você deve editar esse arquivo. Na mesma pasta crie um arquivo chamado secrets.yaml ``` sqlite3: file: ./comentario.db ``` Essa eh a configuracao minima que você deve fazer caso queria utilizar o sqlite3. agora rode no terminal ```bash docker compose up -d ``` Para finalizar basta adicionar no arquivo ./themes/hugo-classic/layouts/_default/single.html ```html ``` Agora eh so acessar a url que voce colocou e setar adicionar o seu servidor, como eh bem intuitivo nao vou colocar aqui --- ## 3. Setando o NGINX Caso você utilize o nginx como servidor web basta configurar a pagina principal como ```bash server { root /var/www/azuminha.com/public; index index.html index.htm index.nginx-debian.html; server_name azuminha.com www.azuminha.com; # mude aqui para sua url charset UTF-8; location / { try_files $uri $uri/ =404; } } ``` Você tambem deve arrumar um proxy reverso para a porta que o servico do comentario esta rodando. ```bash server { server_name comments.azuminha.com; # sua url que utilizou para configurar o comentario location / { proxy_pass http://0.0.0.0:6969/; # mude para a porta que vc utilizou proxy_set_header Host 127.0.0.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } ``` Pronto agora você tem seu proprio blog hospedado pro você mesmo, sem dependencias externas. :smile: +++ date = '2025-09-30T03:09:52-03:00' draft = false title = 'Host a Blog With Hugo' tags = ["blog", "hugo", "server"] categories = ["web", "self-hosted"] description = "Tutorial de como criar um blog com Hugo e integrar comentários usando Comentario." +++ Hoje vou mostrar como fiz para configurar um blog com comentários usando [Hugo](https://gohugo.io/) e [Comentario](https://comentario.app/en/). - **Hugo** é um framework open source para construção de websites estáticos, extremamente rápido e flexível. - **Comentario** é uma engine open source de comentários, fácil de integrar e auto-hospedável. ## 1. Utilizando o Hugo ### Instalando o Hugo Se sua distribuição Linux for baseada em Debian, rode o comando: ```bash sudo apt install hugo ``` Caso contrário, você pode verificar a instalação na documentação oficial. Agora que ele já está instalado, basta rodar: ```bash hugo new site {nome-do-seu-blog} ``` Isso criará uma pasta com tudo o que é necessário. ### Instalando um tema Para instalar um tema, veja os temas disponíveis pela comunidade no [link](https://themes.gohugo.io/). No meu caso, atualmente estou usando o [Hugo - Classic](https://themes.gohugo.io/themes/hugo-classic/). Depois de achar um tema que gostou, faça: ```bash cd {nome-do-seu-blog}/themes git init git submodule add link-do-github ``` Abra o arquivo `hugo.toml` e edite a variável `theme` para o nome da pasta criada dentro de `themes`. ### Criando um post Para criar um post é muito simples também, basta rodar: ```bash hugo new content content/post/nome-do-post.md ``` Agora é só escrever seu post em Markdown. Acesse [aqui](https://www.markdownguide.org/cheat-sheet/) para mais informações sobre Markdown. ### Buildando Para finalizar, rode: ```bash hugo ``` Ele vai atualizar tudo o que for necessário e publicar seu post. --- ## 2. Configurando o Comentario Existem diversas formas de instalar o Comentario, porém eu fiz isso utilizando Docker. Para isso, certifique-se de que você tenha o Docker instalado: ```bash docker version ``` Crie um arquivo chamado `docker-compose.yml`: ```docker services: app: image: registry.gitlab.com/comentario/comentario:latest-ubuntu environment: BASE_URL: https://sua-url # mude aqui para sua URL SECRETS_FILE: "/secrets.yaml" ports: - "6969:80" # mude para a porta que você quiser volumes: - ./secrets.yaml:/secrets.yaml:ro restart: always ``` Essa é apenas uma configuração possível — você pode editar o arquivo da maneira que preferir. Note que estou utilizando o **SQLite3** como banco de dados (pois usa menos memória). Caso você queira usar **PostgreSQL** ou hospedar o banco de dados em outro servidor, edite esse arquivo conforme necessário. Na mesma pasta, crie um arquivo chamado `secrets.yaml`: ``` sqlite3: file: ./comentario.db ``` Essa é a configuração mínima para utilizar o SQLite3. Agora rode no terminal: ```bash docker compose up -d ``` Para finalizar, basta adicionar no arquivo `./themes/hugo-classic/layouts/_default/single.html`: ```html ``` Agora é só acessar a URL que você configurou e adicionar o seu servidor. Como é bem intuitivo, não vou detalhar essa parte aqui. --- ## 3. Configurando o NGINX Caso você utilize o **NGINX** como servidor web, basta configurar a página principal assim: ```bash server { root /var/www/azuminha.com/public; index index.html index.htm index.nginx-debian.html; server_name azuminha.com www.azuminha.com; # mude aqui para sua URL charset UTF-8; location / { try_files $uri $uri/ =404; } } ``` Você também deve configurar um **proxy reverso** para a porta em que o serviço do Comentario está rodando: ```bash server { server_name comments.azuminha.com; # sua URL utilizada para configurar o Comentario location / { proxy_pass http://0.0.0.0:6969/; # mude para a porta que você utilizou proxy_set_header Host 127.0.0.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` Pronto! Agora você tem seu próprio blog hospedado por você mesmo, sem dependências externas. 😄