Configure sua própria rede privada com o OpenVPN
O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes
O Mastodon é um servidor de microblogging e rede social auto-hospedado de código aberto. Ele fornece recursos semelhantes ao Twitter; mas, em vez de ser controlado por uma única empresa, é uma federação de servidores descentralizados que se conectam para criar um sistema inteiro de rede social. Uma equipe pequena pode iniciar sua instância do servidor Mastodon para se comunicar entre si e com os outros usuários da comunidade federada. Também permite escolher suas próprias políticas de privacidade e moderação e definir como você se comunica com outros usuários de diferentes servidores. O conteúdo que um usuário individual cria e assina está hospedado no servidor em que sua conta é criada. Os usuários podem seguir um ao outro, mesmo que não estejam hospedados no mesmo servidor. Cada usuário na rede Mastodon tem seu nome ou ID exclusivo, que está no@[email protected]
formato. Os aplicativos clientes do Mastodon estão disponíveis para quase todas as plataformas.
Nota: Usaremos social.example.com
como o nome de domínio usado para a instância do Mastodon. Substitua todas as ocorrências social.example.com
pelo seu nome de domínio real que você deseja usar para o aplicativo Mastodon .
Atualize seu sistema básico usando o guia Como atualizar o CentOS 7 , se necessário. Depois que seu sistema for atualizado, continue com a instalação das dependências necessárias.
Mastodon requer várias dependências para funcionar. Instale a versão mais recente do Node.js
, que será usada para compilar os arquivos JavaScript.
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum -y install nodejs
Install Yarn
, que é um aplicativo de gerenciamento de dependências rápido, confiável e seguro. Usaremos o Yarn para instalar as dependências do Node.js.
sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
sudo yum -y install yarn
Instale Redis
. Redis é um aplicativo de armazenamento e cache de estrutura de dados na memória.
sudo yum -y install redis
Inicie o Redis e ative-o automaticamente na inicialização.
sudo systemctl start redis
sudo systemctl enable redis
Instale mais algumas dependências necessárias para construir a Ruby
instalação e outras dependências.
sudo yum -y install ImageMagick git libxml2-devel libxslt-devel gcc bzip2 openssl-devel zlib-devel gdbm-devel ncurses-devel autoconf automake bison gcc-c++ libffi-devel libtool patch readline-devel sqlite-devel glibc-headers glibc-devel libyaml-devel libicu-devel libidn-devel
Você também precisará instalar as ferramentas de desenvolvimento.
sudo yum -y groupinstall 'Development Tools'
O PostgreSQL é um sistema de banco de dados relacional de objetos. Você precisará adicionar o repositório PostgreSQL ao seu sistema, pois o yum
repositório padrão contém uma versão mais antiga do aplicativo.
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Instale o servidor de banco de dados PostgreSQL.
sudo yum -y install postgresql96-server postgresql96-contrib postgresql96-devel
Inicialize o banco de dados.
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
Edite o pg_hba.conf
arquivo para habilitar a MD5
autenticação baseada.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Encontre as seguintes linhas e altere peer
para trust
e ident
para md5
.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
Uma vez atualizada, a configuração deve ficar assim.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Inicie o servidor PostgreSQL e permita que ele inicie automaticamente na inicialização.
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Mude a senha do usuário padrão do PostgreSQL.
sudo passwd postgres
Efetue login no shell como PostgreSQL
usuário.
sudo su - postgres
Crie um novo PostgreSQL
usuário para o Mastodon.
createuser mastodon
O PostgreSQL fornece o psql
shell para executar consultas no banco de dados. Alterne para o shell do PostgreSQL executando.
psql
Defina uma senha para o usuário recém-criado para o banco de dados Mastodon e forneça a permissão para adicionar novos bancos de dados.
ALTER USER mastodon WITH ENCRYPTED password 'DBPassword' CREATEDB;
Substitua DBPassword
por uma senha forte. Saída do psql
shell:
\q
Mude para o sudo
usuário.
exit
Instale mais algumas dependências necessárias do PostgreSQL.
sudo yum -y install libpqxx-devel protobuf-devel
Crie um novo usuário para o Mastodon e mude para o usuário recém-criado.
sudo adduser mastodon -d /opt/mastodon
sudo su - mastodon
Instalaremos a versão mais recente do Ruby usando o Ruby Version Manager ou RVM. É usado para instalar e gerenciar várias versões do Ruby.
Adicione a GPG
chave do RVM ao seu servidor.
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Instale o RVM.
curl -sSL https://get.rvm.io | bash -s stable
source /opt/mastodon/.rvm/scripts/rvm
Agora, busque a lista das versões disponíveis do Ruby.
rvm list known
Você verá a seguinte saída.
[mastodon@vultr ~]$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
ruby-head
...
Agora instale a versão mais recente do Ruby da lista.
rvm install 2.4
Use a versão instalada do Ruby.
rvm use 2.4
Você deve poder verificar sua versão.
ruby -v
Você deve ver uma saída semelhante.
[mastodon@vultr ~]$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
Instalar bundler
, que é o gerenciador de dependência do aplicativo Ruby.
gem install bundler
Agora mude para o diretório inicial do usuário Mastodon e clone os arquivos do repositório de aplicativos no Github.
cd ~
git clone https://github.com/tootsuite/mastodon.git app
Mova o diretório do aplicativo e faça o check-out dos últimos lançamentos do aplicativo.
cd ~/app
git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
Configure o bundle
para usar um caminho personalizado para a configuração do PostgreSQL. Além disso, instale as dependências do Ruby.
bundle config build.pg --with-pg-config=/usr/pgsql-9.6/bin/pg_config
bundle install --deployment --without development test
Instale as dependências do Node.js usando o Yarn.
yarn install --pure-lockfile
Você precisará criar um arquivo de configuração para o aplicativo Mastodon. Copie o arquivo de configuração de amostra.
cd ~/app
cp .env.production.sample .env.production
Antes de editar o arquivo, gere três diferentes secrets
executando o seguinte comando três vezes. Você precisará definir esses segredos no arquivo de configuração.
RAILS_ENV=production bundle exec rake secret
Você deve obter uma saída semelhante.
[mastodon@vultr app]$ RAILS_ENV=production bundle exec rake secret
0f17dab1cf4a07f6fac671ecd5815adcb59d012b338dae9350c66402250c6c729dccd6182b1a8f75c4fde55453ce283ea66e07ed4466cdc6d4d6974c98512967
Edite o arquivo de configuração usando o nano
editor.
nano .env.production
Encontre as seguintes linhas e altere os valores de acordo.
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
Forneça as credenciais do banco de dados, de acordo com o usuário do banco de dados que você criou durante a instalação do PostgreSQL. Forneça qualquer nome para o nome do banco de dados, pois o Mastodon criará automaticamente o banco de dados com o nome que você fornecer.
DB_HOST=127.0.0.1
DB_USER=mastodon
DB_NAME=mastodon
DB_PASS=DBPassword
DB_PORT=5432
Defina o nome do domínio do aplicativo.
LOCAL_DOMAIN=social.example.com
Encontre as seguintes linhas e defina seu valor para os segredos que você gerou.
PAPERCLIP_SECRET=
SECRET_KEY_BASE=
OTP_SECRET=
Salve o arquivo e saia do editor.
Agora, execute o seguinte comando para gerar Web Push VAPID
chaves. Você receberá um erro ao gerar as chaves VAPID da Web Push se não tiver definido os segredos no arquivo de configuração mencionado acima.
RAILS_ENV=production bundle exec rake mastodon:webpush:generate_vapid_key
Você deve ver a seguinte saída.
[mastodon@vultr app]$ RAILS_ENV=production bundle exec rake mastodon:webpush:generate_vapid_key
VAPID_PRIVATE_KEY=DCMQdSPkdm-mepsNh4F3suc-UIvsABCvwFd03jSVemM=
VAPID_PUBLIC_KEY=BMMVcVXmqnV0C8S_ybZ7eQH-MXBEX2exqfdPSYQiMMUF2rRxfhoEtVF931i26ebMgmslHB_nvVadOdcBPhaFEjw=
Abra o arquivo de configuração novamente e defina as chaves geradas em suas respectivas linhas.
VAPID_PRIVATE_KEY=
VAPID_PUBLIC_KEY=
Por fim, forneça as informações do seu servidor de email SMTP para que o aplicativo possa enviar emails aos usuários. É importante que você use um servidor SMTP ativo, pois, após o novo registro, os usuários receberão um email com um link de ativação. Novos usuários terão que clicar no link de ativação para ativar sua conta.
SMTP_SERVER=mail.example.com
SMTP_PORT=456
[email protected]
SMTP_PASSWORD=MailPassword
[email protected]
SMTP_TLS=true
Uma vez feito, salve o arquivo e saia do editor. Você fez a configuração básica da instância do Mastodon.
Configure o banco de dados PostgreSQL pela primeira vez.
RAILS_ENV=production bundle exec rails db:setup
Primeiro, o comando acima criará um novo banco de dados com o nome mencionado na configuração. Em seguida, ele gravará o banco de dados de acordo com a configuração.
Pré-compile todos os arquivos CSS
e JavaScript
para criar o cache.
RAILS_ENV=production bundle exec rails assets:precompile
Agora o Mastodon está instalado no seu servidor. Agora você precisará configurar um Nginx
servidor da web para servir os aplicativos e Systemd
serviços de configuração para executar os serviços Mastodon.
A partir de agora, precisaremos executar os comandos usando o sudo
usuário.
Usaremos o servidor da web Nginx como um proxy reverso para atender o aplicativo aos usuários. Também obteremos e instalaremos certificados SSL no Let's Encrypt.
Instale o Nginx e o Certbot. Certbot é o cliente oficial de emissão de certificados para Let's Encrypt CA.
sudo yum -y install nginx certbot
Ajuste sua configuração de firewall para permitir o padrão HTTP
e as HTTPS
portas através do firewall, pois o Certbot precisa fazer uma conexão HTTP para verificar a autoridade do domínio.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Nota: Para obter certificados da Let's Encrypt CA, você deve garantir que o domínio para o qual você deseja gerar os certificados esteja apontado para o servidor. Caso contrário, faça as alterações necessárias nos registros DNS do seu domínio e aguarde a propagação do DNS antes de fazer a solicitação de certificado novamente. O Certbot verifica a autoridade do domínio antes de fornecer os certificados .
Agora use o servidor da Web incorporado no Certbot para gerar os certificados para o seu domínio.
sudo certbot certonly --standalone -d social.example.com
Os certificados gerados provavelmente serão armazenados no /etc/letsencrypt/live/social.example.com/
diretório O certificado SSL será retido como fullchain.pem
e a chave privada será salva como privkey.pem
.
Os certificados Let's Encrypt expiram em 90 dias, por isso é recomendável configurar a renovação automática para os certificados usando trabalhos Cron. Cron é um serviço do sistema usado para executar tarefas periódicas.
Abra o arquivo de tarefa cron.
sudo crontab -e
Adicione a seguinte linha.
0 0 * * * /usr/bin/certbot renew --quiet
O trabalho cron acima será executado diariamente à meia-noite. Se o prazo de validade do certificado expirar, ele será renovado automaticamente.
Agora crie um novo bloco de servidor Nginx para o site Mastodon.
sudo nano /etc/nginx/conf.d/mastodon.conf
Preencha o arquivo com isso.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
listen [::]:80;
server_name social.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name social.example.com;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!MEDIUM:!LOW:!aNULL:!NULL:!SHA;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_certificate /etc/letsencrypt/live/social.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/social.example.com/privkey.pem;
keepalive_timeout 70;
sendfile on;
client_max_body_size 0;
root /opt/mastodon/app/public;
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
add_header Strict-Transport-Security "max-age=31536000";
location / {
try_files $uri @proxy;
}
location ~ ^/(emoji|packs|system/accounts/avatars|system/media_attachments/files) {
add_header Cache-Control "public, max-age=31536000, immutable";
try_files $uri @proxy;
}
location @proxy {
proxy_set_header Host $host;
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 https;
proxy_set_header Proxy "";
proxy_pass_header Server;
proxy_pass http://127.0.0.1:3000;
proxy_buffering off;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
tcp_nodelay on;
}
location /api/v1/streaming {
proxy_set_header Host $host;
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 https;
proxy_set_header Proxy "";
proxy_pass http://127.0.0.1:4000;
proxy_buffering off;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
tcp_nodelay on;
}
error_page 500 501 502 503 504 /500.html;
}
Certifique-se de alterar o nome do domínio e o caminho para os certificados SSL.
Agora você pode iniciar o servidor da web Nginx e permitir que ele inicie automaticamente na inicialização.
sudo systemctl start nginx
sudo systemctl enable nginx
Você também precisará permitir a porta 4000
através do firewall, pois a porta fornecerá o serviço da API de streaming.
sudo firewall-cmd --permanent --zone=public --add-port=4000/tcp
sudo firewall-cmd --reload
Forneça as permissões de execução para o diretório Mastodon.
sudo chmod +x /opt/mastodon
Você precisará iniciar três processos diferentes para iniciar o servidor Mastodon com êxito. O uso do serviço Systemd garantirá que o servidor Mastodon seja iniciado automaticamente na inicialização e processe falhas.
Crie um novo serviço systemd para executar o serviço da web Mastodon. Este serviço iniciará o servidor da web incorporado na porta 3000
.
sudo nano /etc/systemd/system/mastodon-web.service
Preencha o arquivo com o seguinte conteúdo.
[Unit]
Description=Mastodon Web Service
After=network.target
[Service]
Type=simple
User=mastodon
Group=mastodon
WorkingDirectory=/opt/mastodon/app
Environment="RAILS_ENV=production"
Environment="PORT=3000"
ExecStart=/bin/bash -lc 'bundle exec puma -C config/puma.rb'
TimeoutSec=15
Restart=always
[Install]
WantedBy=multi-user.target
Crie o segundo serviço Systemd para executar o serviço de fila em segundo plano Mastodon. O serviço de fila Mastodon cuida de todas as tarefas em segundo plano.
sudo nano /etc/systemd/system/mastodon-queue.service
Preencha o arquivo com o seguinte conteúdo.
[Unit]
Description=Mastodon Queue Service
After=network.target
[Service]
Type=simple
User=mastodon
WorkingDirectory=/opt/mastodon/app
Environment="RAILS_ENV=production"
Environment="DB_POOL=5"
ExecStart=/bin/bash -lc 'bundle exec sidekiq -c 5 -q default -q mailers -q pull -q push'
TimeoutSec=15
Restart=always
[Install]
WantedBy=multi-user.target
Por fim, crie o último arquivo de serviço para o serviço da API de streaming Mastodon.
sudo nano /etc/systemd/system/mastodon-api.service
Preencha o arquivo com o seguinte conteúdo.
[Unit]
Description=Mastodon Streaming
After=network.target
[Service]
Type=simple
User=mastodon
WorkingDirectory=/opt/mastodon/app
Environment="NODE_ENV=production"
Environment="PORT=4000"
ExecStart=/bin/npm run start
TimeoutSec=15
Restart=always
[Install]
WantedBy=multi-user.target
Ative os serviços Mastodon para iniciar no momento da inicialização automaticamente.
sudo systemctl enable mastodon-web mastodon-queue mastodon-api
Para iniciar os serviços Mastodon, você pode executar isso.
sudo systemctl start mastodon-web mastodon-queue mastodon-api
Para verificar o status dos serviços, você pode executar isso.
sudo systemctl status mastodon-web mastodon-queue mastodon-api
Agora você pode acessar o aplicativo Mastodon acessando https://social.example.com
. Crie uma nova conta de usuário no seu servidor e verifique a conta abrindo o link enviado no email. Para fornecer privilégios de administrador à conta que você acabou de criar, execute isso.
sudo su - mastodon && cd ~/app
RAILS_ENV=production bundle exec rails mastodon:make_admin USERNAME=<user_name>
Substitua <user_name>
pelo nome de usuário real que você usou para criar a conta na interface Mastodon.
Sua instância do Mastodon agora está instalada e configurada para execução. Comece convidando seus amigos para ingressarem na sua instância e explore os recursos fornecidos pelo Mastodon. Você pode usar seu site de rede social no celular baixando qualquer um dos aplicativos disponíveis para várias plataformas.
O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes
Usando um sistema diferente? Introdução O CyberPanel é um dos primeiros painéis de controle do mercado, tanto de código aberto quanto de OpenLiteSpeed. What thi
Usando um sistema diferente? O ESpeak pode gerar arquivos de áudio de conversão de texto em fala (TTS). Isso pode ser útil por vários motivos, como criar seu próprio Turim
Usando um sistema diferente? O LibreNMS é um sistema de monitoramento de rede de código aberto completo. Ele usa o SNMP para obter os dados de diferentes dispositivos. Uma variedade
Usar um usuário sudo para acessar um servidor e executar comandos no nível raiz é uma prática muito comum entre o Linux e o Unix Systems Administrator. O uso de um sud
Usando um sistema diferente? O RabbitMQ é um intermediário de mensagens de código aberto amplamente usado, escrito na linguagem de programação Erlang. Como um middleware orientado a mensagens
Usando um sistema diferente? O RTMP é ótimo para veicular conteúdo ao vivo. Quando o RTMP é emparelhado com o FFmpeg, os fluxos podem ser convertidos em várias qualidades. Vultr i
Usando um sistema diferente? Gradle é um conjunto de ferramentas de automação de compilação de código aberto e gratuito baseado nos conceitos do Apache Ant e Apache Maven. Gradle fornece
Usando um sistema diferente? Neste guia, veremos como configurar um servidor FTP (ProFTPd) para transferir arquivos entre o seu PC e o seu servidor.
Usando um sistema diferente? O Netdata é uma estrela em ascensão no campo do monitoramento de métricas do sistema em tempo real. Comparado com outras ferramentas do mesmo tipo, o Netdata:
Usando um sistema diferente? O Apache Cassandra é um sistema de gerenciamento de banco de dados NoSQL gratuito e de código aberto, projetado para fornecer escalabilidade, alta
Neste tutorial, aprenda como configurar um servidor multiplayer Just Cause 2. Pré-requisitos Verifique se o sistema está totalmente atualizado antes de começarmos
Usando um sistema diferente? Neste tutorial, explicarei como configurar um servidor Starbound no CentOS 7. Pré-requisitos Você precisa ser o proprietário deste jogo
O ZNC é um segurança IRC gratuito e de código aberto que permanece permanentemente conectado a uma rede para que os clientes possam receber mensagens enviadas enquanto estiverem offline. Thi
O Django é uma estrutura Python popular para escrever aplicativos da web. Com o Django, você pode criar aplicativos mais rapidamente, sem reinventar a roda. Se você quiser você
Outubro é um sistema de gerenciamento de conteúdo de código aberto baseado no Laravel PHP Framework. Com uma interface elegante e uma arquitetura modular concisa
Após alterar a porta SSH, configurar a batida na porta e fazer outros ajustes para a segurança SSH, talvez haja mais uma maneira de protegê-lo
Introdução O MyCLI é um cliente de linha de comando para MySQL e MariaDB que permite concluir automaticamente e ajuda na sintaxe de seus comandos SQL. MyCL
Usando um sistema diferente? O Directus 6.4 CMS é um sistema de gerenciamento de conteúdo sem cabeça (CMS) poderoso e flexível, gratuito e de código aberto que fornece
Usando um sistema diferente? O Reader Self 3.5 é um leitor de RSS auto-hospedado, simples e flexível, gratuito e de código aberto, e uma alternativa ao Google Reader. Leitor Sel
Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane
ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.
O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+
Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.
Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais
13 Ferramentas de Extração de Dados Comerciais de Big Data
Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true
À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.
Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1
A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA na área da saúde ainda está crescendo dia a dia.