{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreidjm4pxrkglwmaoqek4ra6zlxhubktmpzzlexitzwvatoyi5bsohy",
"commit": {
"cid": "bafyreie4m5yedr3xl4rxwdniv6zhudj6wp6yocaytgmoxtkhcihebdn46u",
"rev": "3mlmpvlatit22"
},
"uri": "at://did:plc:isq6zxp5gfm5zfi676sf6yvw/app.bsky.feed.post/3mlmpvl37xc24",
"validationStatus": "valid"
},
"content": {
"$type": "pub.leaflet.content",
"pages": [
{
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 71,
"byteStart": 60
}
}
],
"plaintext": "Esses últimos meses eu fiquei brincando com um hobby novo, homelabbing."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Basicamente, homelabbing é quando você tem um computador em sua casa que você transforma em um laboratório de tecnologia pra você testar coisas, hostear serviços, e mexer sem preocupações, já que não é seu computador pessoal."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Nisso, eu comecei a mexer com coisas como Home Assistant, jellyfin, Immich, e outros serviços desse tipo, e eu percebi uma semelhança entre eles... Embora eu possa rodar cada um individualmente como um app, ou como sistema operacional, tinha uma forma mais fácil e menos custosa de fazer isso, um tal de \"docker\"."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 1,
"plaintext": "Contêiners, o que são?"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Resolvi pesquisar sobre o que se tratava, e descobri um conceito novo de tecnologia que nunca havia ouvido falar, os contêiners. Basicamente, um contêiner é uma aplicação, ferramenta, ou sistema operacional fechado e portátil. \"O que isso significa?\" você deve estar pensando... Um cont6einer é fechado pois ele não tem acesso livre ao seu PC, ele é como se fosse uma mini máquina dentro do seu PC, que só pode acessar o que está nela. Assim como uma máquina virtual! Mas com uma leve diferença: Um contêiner é portátil, você pode transferir ele de um PC para o outro com muita facilidade, na maior parte dos casos, basta baixar um arquivo, ou nem isso!\nNisso entra o Docker, que é um dos vários tipos diferentes de contêiners. Ele é bem fácil de aprender a usar, a ponto que você vai começar a questionar se você não esqueceu de alguma coisa, de tão rápido que tudo é!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 1,
"plaintext": "Como Usar?"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Sem muitos segredos, vou te ensinar agora a instalar um serviço muito interessante chamado \"HomeAssistant\"! Pra isso, você vai precisar instalar algumas coisinhas:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.orderedList",
"children": [
{
"$type": "pub.leaflet.blocks.orderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Docker"
}
},
{
"$type": "pub.leaflet.blocks.orderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Docker Composer"
}
}
],
"startIndex": 1
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Após baixar elas, você irá criar uma pasta pro docke (~/docker)r, e uma subpasta pro seu projeto (nesse caso, HomeAssistant)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Docker"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Vou assumir que você esteja usando Linux, existe um Docker Desktop pra Windows e Mac, porém a melhor forma de usar ele é pelo terminal mesmo!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Instale o Docker pelo repositório oficial da sua distro!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "sudo apt install docker",
"syntaxHighlightingTheme": "catppuccin-macchiato"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "sudo pacman -S docker",
"syntaxHighlightingTheme": "catppuccin-macchiato"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Depois, adicione seu usuário ao grupo docker (pra não precisar usar sudo em todo comando kk)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "sudo usermod -aG docker $USER",
"syntaxHighlightingTheme": "catppuccin-macchiato"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Após isso, reinicie sua sessão (logout, reboot, o que vc preferir)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Docker Compose"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Você vai instalar da mesma maneira, deixei separado pois o docker compose não é necessário de fato, ele só torna tudo bem mais fácil!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "sudo apt install docker-compose",
"syntaxHighlightingTheme": "catppuccin-macchiato"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "sudo pacman -S docker-compose",
"syntaxHighlightingTheme": "catppuccin-macchiato"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Instalando o primeiro contêiner..."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Dentro dessa nova pasta, crie um arquivo chamado \"compose.yaml\", é nele onde iremos configurar o homeassistant"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "O arquivo vai ficar assim, vamos passar pra explicar cada detalhe, mas se quiser pode já copiar e colar!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "#compose.yaml\nservices:\n homeassistant:\n container_name: homeassistant\n image: \"ghcr.io/home-assistant/home-assistant:stable\"\n volumes:\n - ./ha:/config\n - /etc/localtime:/etc/localtime:ro\n - /run/dbus:/run/dbus:ro\n restart: unless-stopped\n privileged: true\n network_mode: host\n environment:\n TZ: America/Sao_Paulo",
"syntaxHighlightingTheme": "catppuccin-macchiato"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Explicando os detalhes chaves desse arquivo:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Temos um conteiner chamado homeassistant, ele possui três volumes montados, um pra suas configs, e outros dois pra acessar os dispositivos que você plugar (antenas e etc) e pra acessar o fuso-horário."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Ele vai reiniciar sempre, a não ser que você manualmentge o pare, então se crashar ou se o PC reiniciar, ele vai voltar a vida como se nada tivesse acontecido!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "O que é esse contêiner, e como eu rodo ele?"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "O Homeassistant é um serviço gratuito que te permite controlar dispositivos inteligentes na sua rede, como TVs, lâmpadas e etc! É tipo uma Alexa, só que você quem controla, não a Amazon!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignRight",
"block": {
"$type": "pub.leaflet.blocks.button",
"text": "Saiba Mais Sobre Open-Source!",
"url": "https://blog.snowfloke.com/3mk7chct63224"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Pra iniciar é bem simples, basta abrir um terminal na pasta que você colocou aquele arquivo, e digitar:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "docker compose up -d",
"syntaxHighlightingTheme": "catppuccin-macchiato"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "E pronto! Ele vai baixar a imagem pela internet, vai criar as pastas necessárias, e vai montar o contêiner pra você :3"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#highlight"
}
],
"index": {
"byteEnd": 21,
"byteStart": 20
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#highlight"
},
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "http://localhost:8123"
}
],
"index": {
"byteEnd": 32,
"byteStart": 21
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#highlight"
}
],
"index": {
"byteEnd": 33,
"byteStart": 32
}
}
],
"plaintext": "Para acessar, é só clicar aqui caso você esteja usando o mesmo PC que rodou esses comandos."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Caso tenha usado outro PC, digite no seu navegador: http://<ip-do-computador-com-homeassistant>:8123. (ex: http://192.168.0.46:8123) "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Se você não souber o IP dele, só digitar isso aqui no terminal:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"plaintext": "ip addr",
"syntaxHighlightingTheme": "catppuccin-macchiato"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "O IP certo é (geralmente) o que começa com \"192.168\". Se houver mais de um, tente todos :3"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignCenter",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Não se preocupe em vazar ele, este IP só é acessível na sua rede doméstica, e não oferece risco algum!",
"textSize": "small"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Eu não vou continuar ensinando o HomeAssistant, ele foi só um exemplo do quão fácil é iniciar um serviço novo. Se você quiser algum tutorial específico pra ele, deixe aqui nos comentários!!!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 1,
"plaintext": "Tá, mas por quê você tá tão empolgada com isso?"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "O motivo é bem simples, isso abriu uma gama infinita de possibilidades!!!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 397,
"byteStart": 384
}
}
],
"plaintext": "Eu aluguei uma VPS, um dia irei fazer um post detalhando mais sobre, mas tudo que você precisa saber agr é que é um servidor Linux na nuvem. E eu comecei a aproveitar essa tecnologia pra começar a hostear algumas coisas úteis pra mim, como o meu bot de Discord, um gerenciador de senhas, uma suíte office, um app de anotações, e muito mais! Como eu tenho um domínio de rede, snowfloke.com, eu já fui logo configurando proxies, e organizando de forma mais bonitinha esses serviços. No meu próximo post, eu vou entrar no lado mais técnico disso, e vou hostear um site pra mim, tornando o processo todo em um tutorial pra vocês!!!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 1,
"plaintext": "Eu também me interessei por isso, onde posso aprender mais sobre?"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "O que eu recomendaria é você procurar um curso, seja pago ou grátis, on-line ou presencial, e se aprofundar no assunto! Eu pessoalmente me aprofundei no assunto pelo YouTube, vou deixar a seguir os vídeos e canais que mais me ajudaram! Alguns em PT-BR, outros em EN-US."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Segue a lista:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignLeft",
"block": {
"$type": "pub.leaflet.blocks.button",
"text": "Vídeo DioLinux (BR)",
"url": "https://www.youtube.com/watch?v=ntbpIfS44Gw"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignLeft",
"block": {
"$type": "pub.leaflet.blocks.button",
"text": "Vídeo 2 DioLinux (BR)",
"url": "https://youtu.be/Y6kz884AoME?si=VDPyT5bkoMRhi0j_"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignLeft",
"block": {
"$type": "pub.leaflet.blocks.button",
"text": "Canal DioLinux (BR)",
"url": "https://www.youtube.com/@Diolinux"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignLeft",
"block": {
"$type": "pub.leaflet.blocks.button",
"text": "Playlist NetworkChuck (US)",
"url": "https://www.youtube.com/playlist?list=PLIhvC56v63IJlnU4k60d0oFIrsbXEivQo"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignLeft",
"block": {
"$type": "pub.leaflet.blocks.button",
"text": "Canal NetworkChuck (US)",
"url": "https://www.youtube.com/@NetworkChuck"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "conhece mais algum? deixe nos comentários!",
"textSize": "small"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignLeft",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 1,
"plaintext": "Obrigada por ler!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Esse post foi menos planejado que o resto, como você deve ter notado pela escrita mais improvissada, falta de imagens e tals kk\nÉ só que eu NÃO CONSIGO não falar sobre isso com alguém rsrs"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
},
{
"$type": "pub.leaflet.richtext.facet#italic"
}
],
"index": {
"byteEnd": 18,
"byteStart": 0
}
}
],
"plaintext": "Gostou desse post?",
"textSize": "large"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.poll",
"pollRef": {
"cid": "bafyreihshelrl2bczz3iphnxlgfelk3wfgro6244lww4cxj4svbtjhfeq4",
"uri": "at://did:plc:isq6zxp5gfm5zfi676sf6yvw/pub.leaflet.poll.definition/019e19f3-9250-7eea-8d66-f53ad8249ccd"
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.button",
"text": "Website",
"url": "https://snowfloke.com"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
}
],
"id": "019e19ba-ca81-788b-8ec6-d7dac5c5736e"
}
]
},
"description": "Isnoi nerdolando sobre uma tecnologia que interessou ela...",
"path": "/3mlmpv6rzwc2v",
"publishedAt": "2026-05-12T02:17:10.229Z",
"site": "at://did:plc:isq6zxp5gfm5zfi676sf6yvw/site.standard.publication/3mk7bxmzs522f",
"tags": [
"docker",
"tech"
],
"title": "Docker: Minha nova tecnologia favorita!"
}