<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivos ssl - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/ssl/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/ssl</link>
	<description>rudimar@remontti</description>
	<lastBuildDate>Wed, 11 Oct 2023 17:31:42 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.remontti.com.br/wp-content/uploads/2024/09/icone-rr-80x80.png</url>
	<title>Arquivos ssl - Remontti</title>
	<link>https://blog.remontti.com.br/tag/ssl</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Guia Passo a Passo para Instalar o Typebot em seu servidor próprio</title>
		<link>https://blog.remontti.com.br/7656</link>
					<comments>https://blog.remontti.com.br/7656#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Fri, 22 Sep 2023 15:32:29 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[automação]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[bookworm]]></category>
		<category><![CDATA[Certbot]]></category>
		<category><![CDATA[Chatbot]]></category>
		<category><![CDATA[Configuração]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[instalaçao]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[passo a passo]]></category>
		<category><![CDATA[PM2]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[Prisma]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Servidor]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[Typebot]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=7656</guid>

					<description><![CDATA[<p>O Typebot é uma ferramenta de código aberto que permite criar aplicativos ou formulários conversacionais de forma simples e eficaz. Ele oferece uma alternativa robusta a outras plataformas como o Landbot. Com o Typebot,&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/7656">Guia Passo a Passo para Instalar o Typebot em seu servidor próprio</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot.jpeg" alt="" width="1024" height="640" class="alignnone size-full wp-image-7666" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot.jpeg 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-300x188.jpeg 300w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-768x480.jpeg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></p>
<p>O <a href="https://typebot.io" rel="noopener" target="_blank"><strong>Typebot</strong></a> é uma ferramenta de código aberto que permite criar aplicativos ou formulários conversacionais de forma simples e eficaz. Ele oferece uma alternativa robusta a outras plataformas como o Landbot. Com o Typebot, você pode criar diferentes tipos de aplicativos conversacionais, como:</p>
<p>&#8211; Qualificação de leads<br />
&#8211; Lançamento de produtos<br />
&#8211; Integração de usuários<br />
&#8211; Suporte ao cliente</p>
<p>O Typebot é amado por equipes e criadores em todo o mundo e oferece uma experiência de construção fácil. Você pode arrastar e soltar blocos para criar seu aplicativo e integrá-lo facilmente em qualquer plataforma. Além disso, ele permite coletar resultados em tempo real, o que é uma grande vantagem.</p>
<p><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-scaled.webp" alt="" width="2560" height="1465" class="alignnone size-full wp-image-7664" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-scaled.webp 2560w, https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-300x172.webp 300w, https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-1024x586.webp 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-768x439.webp 768w, https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-1536x879.webp 1536w, https://blog.remontti.com.br/wp-content/uploads/2023/09/builder-screenshot-2048x1172.webp 2048w" sizes="(max-width: 2560px) 100vw, 2560px" /></p>
<h4>Exemplos de Uso</h4>
<p><strong>&#8211; Coleta de Informações de Contato:</strong> Substitua seus formulários tradicionais por um chatbot que pode coletar nomes, e-mails e outros detalhes de forma interativa.<br />
<strong>&#8211; Suporte ao Cliente:</strong> Use o Typebot para responder automaticamente a perguntas frequentes e fornecer suporte em tempo real.<br />
<strong>&#8211; Integração de Usuários:</strong> Facilite o processo de integração, fornecendo aos novos usuários um guia passo a passo interativo.<br />
&#8211; Campanhas de Marketing: Utilize o Typebot em suas landing pages para aumentar as taxas de conversão e engajamento.<br />
<strong>&#8211; Pesquisas e Feedback:</strong> Colete feedback do usuário ou conduza pesquisas de forma mais envolvente e interativa.</p>
<h4>Requesitos</h4>
<p><a href="https://blog.remontti.com.br/7236" rel="noopener" target="_blank">Debian 12 bookworm (Instalação Limpa)</a></p>
<h4>DNS</h4>
<p>Crie duas entradas em seu DNS exemplo:<br />
&#8211; typebot.remontti.cum.br apontando para os IPs do servidor<br />
&#8211; typebotapi.remontti.cum.br apontando para os IPs do servidor</p>
<p>Se você<a href="https://blog.remontti.com.br/5958" rel="noopener" target="_blank"> já é da turma do blog</a> vai entender o que temos a baixo la no amigo bind9:</p>
<pre class="remontti-code-plain">typebot       A       192.168.0.100
              AAAA    2001:db8:bebe:cafe::100

typebotapi    A       192.168.0.100
              AAAA    2001:db8:bebe:cafe::100</pre>
<h4>Atualização e Instalação de Pacotes</h4>
<pre class="remontti-code"># apt update; apt upgrade -y</pre>
<p>Instale os pacotes necessários para o projeto</p>
<pre class="remontti-code"># apt install -y nodejs npm git nginx postgresql postgresql-contrib</pre>
<p>Instala globalmente os pacotes pm2 e pnpm usando npm</p>
<pre class="remontti-code"># npm install -g pm2 pnpm</pre>
<h4>Configuração do PostgreSQL</h4>
<p>Alterne para o usuário postgres</p>
<pre class="remontti-code"># su - postgres</pre>
<p>Crie um novo usuário chamado &#8216;typebot&#8217; em seguida inserira uma senha.</p>
<pre class="remontti-code">$ createuser --pwprompt typebot</pre>
<p>Crie um novo banco de dados &#8216;typebot&#8217; e define &#8216;typebot&#8217; como o proprietário</p>
<pre class="remontti-code">$ createdb -O typebot typebot</pre>
<p>Sai do usuário postgres</p>
<pre class="remontti-code">$ exit</pre>
<h4>Preparando formas de autenticação</h4>
<p>Vou deixar 3 formas que são as mais fáceis, você pode optar em usar apenas uma.</p>
<h4>Email</h4>
<p>A mais fácil de todas, basta você utilizar um email, assim toda vez que você for logar ele ira lhe mandar um e-mail com o link. </p>
<h4>Google</h4>
<p>Crie um novo projeto em <a href="https://console.developers.google.com/apis/credentials" rel="noopener" target="_blank">https://console.developers.google.com/apis/credentials</a></p>
<pre class="remontti-code-plain">
Cria um novo projeto
&gt; OAuth consent screen
	&gt; externo 
	Nome: Typebot
	User support email: seu!
	Developer contact information: seu!
	 SAVE

	 ADD OR REMOVE SCOPES
	   	.../auth/userinfo.email
	   	.../auth/userinfo.profile
	   	 SAVE

	   	 SAVE

	   	 BACK TO DASH
&gt; Credentials 
	+ CREATE CREDENTALS
	  &gt; Create OAuth client ID 
		Application type: Web application
		Name: Typebot

		Authorized redirect URIs
		https://typebot.remontti.cum.br/api/auth/callback/google

	Client ID
	Anote

	Client secret
	Anote</pre>
<p>Será usado em:</p>
<pre class="remontti-code-plain">GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=</pre>
<h4>Github</h4>
<p>Acesse <a href="https://github.com/settings/developers" rel="noopener" target="_blank">https://github.com/settings/developers</a> e clique em <strong>New OAuth Apps</strong></p>
<pre class="remontti-code-plain">Application name: Typebot
Homepage URL: https://typebot.remontti.cum.br
Application description: Typebot Auth
Authorization callback URL: https://typebot.remontti.cum.br/api/auth/callback/github</pre>
<p>Anote o <strong>Client ID</strong> e clique em <strong>Generate a new client secret</strong> anote os dois para ser usado em </p>
<pre class="remontti-code-plain">GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=</pre>
<h4>Configuração do Projeto Typebot no Servidor</h4>
<p>Vamos armazenar o projeto mo diretório /opt. </p>
<pre class="remontti-code"># cd /opt/
# git clone https://github.com/baptisteArno/typebot.io.git</pre>
<p>Entre no diretório do projeto<br />
cd typebot.io</p>
<p>Crie arquivo <strong>.env</strong> onde irá ficar as <a href="https://docs.typebot.io/self-hosting/configuration" rel="noopener" target="_blank">variáveis de ambiente</a>.</p>
<pre class="remontti-code"># vim /opt/typebot.io/.env</pre>
<p>Faça os ajustes:</p>
<pre class="remontti-code-plain"># Define a chave de criptografia (Gere aqui https://senhasegura.remontti.cum.br/)
ENCRYPTION_SECRET=i9eRecwVJQeKENqdcrQeizOXFHzQdwAp

# Define a URL de conexão com o banco de dados PostgreSQL
DATABASE_URL=postgresql://typebot:minhasupersenha@localhost:5432/typebot

# Define as URLs para autenticação e API
NEXTAUTH_URL=https://typebot.remontti.cum.br
NEXT_PUBLIC_VIEWER_URL=https://typebotapi.remontti.cum.br

# Define o e-mail do administrador
ADMIN_EMAIL=typebot@remontti.cum.br

# Define as configurações para o servidor SMTP
SMTP_USERNAME=typebot@remontti.cum.br
SMTP_PASSWORD=minhasenha
SMTP_HOST=mail.remontti.cum.br
SMTP_PORT=25
NEXT_PUBLIC_SMTP_FROM=typebot@remontti.cum.br
SMTP_SECURE=false
SMTP_AUTH_DISABLED=false

# Configurações para autenticação via Google e GitHub (opcional)
# Google
GOOGLE_CLIENT_ID=98916e5d5dd1-e3lfmixxuditlz2egexp0n8bfwf3oie3.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=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

# GitHub
GITHUB_CLIENT_ID=6ewyvfeumndg2ve5kve1
GITHUB_CLIENT_SECRET=7r78f2vpmihgriebkp7p4b0ervd4qc7ufu1uu5nx

# Permite ou desabilita o cadastro de novas contas
DISABLE_SIGNUP=false</pre>
<p>Instale todas as dependências do projeto</p>
<pre class="remontti-code"># cd /opt/typebot.io/
# pnpm install</pre>
<p>Saída:</p>
<pre class="remontti-code-plain">Scope: all 19 workspace projects
Lockfile is up to date, resolution step is skipped
Packages: +2398
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Downloading registry.npmjs.org/next/13.4.3: 12,32 MB/12,32 MB, done
[...]
[...]
[...]
devDependencies:
+ cross-env 7.0.3
+ cz-emoji 1.3.2-canary.2
+ husky 8.0.3
+ prettier 2.8.8
+ turbo 1.10.12

. prepare$ husky install
│ husky - Git hooks installed
└─ Done in 288ms
Done in 2m 12.5s</pre>
<p>Compile os aplicativos</p>
<pre class="remontti-code"># cd /opt/typebot.io/
# pnpm run build:apps</pre>
<p>Saída</p>
<pre class="remontti-code-plain">&gt; typebot-os@2.17.2 build:apps /root/typebot.io
&gt; turbo run build --filter=builder... --filter=viewer...
[...]
[...]
[...]
[...]
builder:build: ○  (Static)  automatically rendered as static HTML (uses no initial props)
builder:build: 

 Tasks:    9 successful, 9 total
Cached:    0 cached, 9 total
  Time:    5m28.928s 

⠋ ...writing to cache...  [1s] 

─────────┴──────────┴──────────┘</pre>
<p>Copie o arquivo .env para os diretórios dos aplicativos</p>
<pre class="remontti-code"># cp /opt/typebot.io/.env /opt/typebot.io/apps/builder/
# cp /opt/typebot.io/.env /opt/typebot.io/apps/viewer/</pre>
<p>Configuração e migrações do banco de dados</p>
<pre class="remontti-code"># cd /opt/typebot.io/
# pnpm prisma generate &amp;&amp; pnpm db:migrate</pre>
<p>Saída:</p>
<pre class="remontti-code-plain">Environment variables loaded from .env
prisma:warn We could not find your Prisma schema at `prisma/schema.prisma`.
If you have a Prisma schema file in a custom path, you will need to run
`prisma generate --schema=./path/to/your/schema.prisma` to generate Prisma Client.
If you do not have a Prisma schema file yet, you can ignore this message.


&gt; typebot-os@2.17.2 db:migrate /opt/typebot.io
&gt; cd packages/prisma &amp;&amp; pnpm run db:migrate


&gt; @typebot.io/prisma@0.1.0 db:migrate /opt/typebot.io/packages/prisma
&gt; pnpm migrate:deploy


&gt; @typebot.io/prisma@0.1.0 migrate:deploy /opt/typebot.io/packages/prisma
&gt; dotenv -e ./.env -e ../../.env -- tsx scripts/migrate-deploy.ts

Executing for PostgreSQL schema
┌─────────────────────────────────────────────────────────┐
│  Update available 5.0.0 -&gt; 5.3.1                        │
│  Run the following to update                            │
│    npm i --save-dev prisma@latest                       │
│    npm i @prisma/client@latest                          │
└─────────────────────────────────────────────────────────┘</pre>
<p>Inicia os aplicativos com o PM2</p>
<pre class="remontti-code"># pm2 start --name=typebotwww --cwd /opt/typebot.io/apps/builder/ &quot;pnpm -- next start -p 54001&quot;
# pm2 start --name=typebotapi --cwd /opt/typebot.io/apps/viewer/ &quot;pnpm -- next start -p 54002&quot;</pre>
<pre class="remontti-code-plain">┌────┬───────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name          │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├────┼───────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 1  │ typebotapi    │ default     │ N/A     │ fork    │ 819      │ 0s     │ 0    │ online    │ 0%       │ 10.8mb   │ root     │ disabled │
│ 0  │ typebotwww    │ default     │ N/A     │ fork    │ 760      │ 19s    │ 0    │ online    │ 0%       │ 97.2mb   │ root     │ disabled │
└────┴───────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘</pre>
<p>Salva a configuração atual do PM2 e configura para iniciar com o sistema</p>
<pre class="remontti-code"># pm2 save
# pm2 startup</pre>
<h5>Configuração do Nginx</h5>
<p>Cria os arquivos de configuração do Nginx para os subdomínios</p>
<pre class="remontti-code"># vim /etc/nginx/sites-available/typebot.remontti.cum.br.conf</pre>
<pre class="remontti-code-plain">
server {
    listen 80;
    listen [::]:80;
 
    server_name typebot.remontti.cum.br;

    location / {
        proxy_pass http://localhost:54001;
        proxy_set_header Host $host;
    }
}

</pre>
<pre class="remontti-code"># vim /etc/nginx/sites-available/typebotapi.remontti.cum.br.conf</pre>
<pre class="remontti-code-plain">
server {
    listen 80;
    listen [::]:80;
 
    server_name typebotapi.remontti.cum.br;
 
    location / {
        proxy_pass http://localhost:54002;
        proxy_set_header Host $host;
    }
}
</pre>
<p>Ativa os sites no Nginx</p>
<pre class="remontti-code"># ln -s /etc/nginx/sites-available/typebot.remontti.cum.br.conf /etc/nginx/sites-enabled/
# ln -s /etc/nginx/sites-available/typebotapi.remontti.cum.br.conf /etc/nginx/sites-enabled/
# rm /etc/nginx/sites-enabled/default</pre>
<p>Verifica a sintaxe e reinicia o Nginx</p>
<pre class="remontti-code"># nginx -t
# systemctl restart nginx</pre>
<h5>Configuração do Certbot/Let&#8217;s Encrypt para HTTPS</h5>
<p>Instala o Certbot e o plugin do Nginx</p>
<pre class="remontti-code"># apt install certbot python3-certbot-nginx</pre>
<p>Executa o Certbot para obter os certificados SSL</p>
<pre class="remontti-code">certbot</pre>
<p>Responda: </p>
<pre class="remontti-code-plain">Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter &#039;c&#039; to cancel): noc@remontti.cum.br

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y &lt;&lt;&lt;&lt;&lt;

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let&#039;s Encrypt project and the non-profit organization that
develops Certbot? We&#039;d like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N &lt;&lt;&lt;&lt;
Account registered.

Which names would you like to activate HTTPS for?
We recommend selecting either all domains, or all domains in a VirtualHost/server block.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: typebotapi.remontti.cum.br
2: typebot.remontti.cum.br
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter &#039;c&#039; to cancel):  &lt;&lt;&lt;&lt;
Requesting a certificate for typebotapi.remontti.cum.br and typebot.remontti.cum.br

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/typebotapi.remontti.cum.br/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/typebotapi.remontti.cum.br/privkey.pem
This certificate expires on 2023-12-20.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for typebotapi.remontti.cum.br to /etc/nginx/sites-enabled/typebotapi.remontti.cum.br.conf
Successfully deployed certificate for typebot.remontti.cum.br to /etc/nginx/sites-enabled/typebot.remontti.cum.br.conf
Congratulations! You have successfully enabled HTTPS on https://typebotapi.remontti.cum.br and https://typebot.remontti.cum.br

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</pre>
<h5>Configuração do Cron para Renovação Automática do Certificado SSL.</h5>
<p>Adicione uma tarefa cron para renovar automaticamente o certificado SSL todo dia 1 de cada mês à meia-noite, e reinicie o cron.</p>
<pre class="remontti-code"># echo &#039;00 00   1 * *   root    /usr/bin/certbot renew -q&#039; &gt;&gt; /etc/crontab
# systemctl restart cron.service</pre>
<h5>Acessando a aplicação</h5>
<p>Abra seu navegador e acesse: https://typebot.remontti.cum.br<br />
<img decoding="async" src="https://blog.remontti.cum.br/wp-content/uploads/2023/09/typebot-remontti.png" alt="" width="900" height="403" class="alignnone size-full wp-image-7661" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti.png 900w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti-300x134.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti-768x344.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></p>
<p>Clique em <strong>Registre-se gratuitamente</strong><br />
Escolha a forma desejada.</p>
<h4><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2757.png" alt="❗" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2757.png" alt="❗" class="wp-smiley" style="height: 1em; max-height: 1em;" /><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2757.png" alt="❗" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </h4>
<p>Os registros <strong>ficam aberto</strong>, então registre toda sua equipe e em seguida desativa a possibilidade de novos registros nos arquivos .env (<strong>DISABLE_SIGNUP=true</strong>)<br />
Com o comando sed</p>
<pre class="remontti-code"># sed -i &#039;s/DISABLE_SIGNUP=false/DISABLE_SIGNUP=true/&#039; /opt/typebot.io/.env
# sed -i &#039;s/DISABLE_SIGNUP=false/DISABLE_SIGNUP=true/&#039; /opt/typebot.io/apps/viewer/.env
# sed -i &#039;s/DISABLE_SIGNUP=false/DISABLE_SIGNUP=true/&#039; /opt/typebot.io/apps/builder/.env</pre>
<p>Reinicie o pm2 </p>
<pre class="remontti-code"># systemctl restart pm2-root.service</pre>
<p>Se deseja realizar novos cadastros basta alterar <strong>DISABLE_SIGNUP=true</strong> para <strong>DISABLE_SIGNUP=false</strong> e reiniciar novamente.</p>
<pre class="remontti-code"># sed -i &#039;s/DISABLE_SIGNUP=true/DISABLE_SIGNUP=false/&#039; /opt/typebot.io/.env
# sed -i &#039;s/DISABLE_SIGNUP=true/DISABLE_SIGNUP=false/&#039; /opt/typebot.io/apps/viewer/.env
# sed -i &#039;s/DISABLE_SIGNUP=true/DISABLE_SIGNUP=false/&#039; /opt/typebot.io/apps/builder/.env</pre>
<p>Reinicie o pm2 </p>
<pre class="remontti-code"># systemctl restart pm2-root.service</pre>
<p>Se desejar fazer alterações faça os arquivos:</p>
<pre class="remontti-code-plain">/opt/typebot.io/.env
/opt/typebot.io/apps/viewer/.env
/opt/typebot.io/apps/builder/.env</pre>
<p><img loading="lazy" decoding="async" src="https://blog.remontti.cum.br/wp-content/uploads/2023/09/typebot-remontti-1.png" alt="" width="1050" height="411" class="alignnone size-full wp-image-7662" srcset="https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti-1.png 1050w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti-1-300x117.png 300w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti-1-1024x401.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2023/09/typebot-remontti-1-768x301.png 768w" sizes="auto, (max-width: 1050px) 100vw, 1050px" /></p>
<p>A parte mais complicada está feita!<br />
Existe vários videos no <a href="https://www.youtube.com/results?search_query=typebot" rel="noopener" target="_blank">YouTube</a> sobre como mexer nessa criança. Inclusive no <a href="https://www.youtube.com/@typebot4666" rel="noopener" target="_blank">canal oficial </a>dos desenvolvedores. <em>Dica ative a legenda e selecione traduzir!</em></p>
<p><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/jp3ggg_42-M?si=xPi09hAm6AqyZfcU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></p>
<p>Gostou e quer me ajudar manter o blog sem a inconveniência de anúncios intrusivos ou a imposição de taxas? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.cum.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.cum.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Abraço!</p>
<p><strong>Fonte:</strong><br />
<a href="https://docs.typebot.io/" rel="noopener" target="_blank">https://docs.typebot.io/</a></p>
<p>O post <a href="https://blog.remontti.com.br/7656">Guia Passo a Passo para Instalar o Typebot em seu servidor próprio</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/7656/feed</wfw:commentRss>
			<slash:comments>17</slash:comments>
		
		
			</item>
		<item>
		<title>Como criar um servidor FTP (Pure-FTPd) com usuário no banco de dados (MariaDB) usando Debian 10</title>
		<link>https://blog.remontti.com.br/3865</link>
					<comments>https://blog.remontti.com.br/3865#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 18 Dec 2019 00:50:02 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[buster]]></category>
		<category><![CDATA[certificado]]></category>
		<category><![CDATA[criptografado]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[debina buster]]></category>
		<category><![CDATA[Fail2ban]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[MariaDB]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[pure-ftpd]]></category>
		<category><![CDATA[seguro]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[tls]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=3865</guid>

					<description><![CDATA[<p>Neste tutorial vamos montar um servidor FTP utilizando o PureFTPd com usuários no banco de dados Mysql ao invés de usar usuários do sistema, vamos ainda poder configurar quotas e limites de upload e download. Requisito: Debian 10&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/3865">Como criar um servidor FTP (Pure-FTPd) com usuário no banco de dados (MariaDB) usando Debian 10</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: left;">Neste tutorial vamos montar um servidor FTP utilizando o PureFTPd com usuários no banco de dados Mysql ao invés de usar usuários do sistema, vamos ainda poder configurar quotas e limites de upload e download.</p>
<p><span id="more-3865"></span><br />
<img loading="lazy" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/12/ftp.jpg" alt="" width="1000" height="474" class="alignnone size-full wp-image-3876" srcset="https://blog.remontti.com.br/wp-content/uploads/2019/12/ftp.jpg 1000w, https://blog.remontti.com.br/wp-content/uploads/2019/12/ftp-300x142.jpg 300w, https://blog.remontti.com.br/wp-content/uploads/2019/12/ftp-768x364.jpg 768w, https://blog.remontti.com.br/wp-content/uploads/2019/12/ftp-520x245.jpg 520w, https://blog.remontti.com.br/wp-content/uploads/2019/12/ftp-720x340.jpg 720w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></p>
<p><strong>Requisito:</strong><br />
<a href="https://blog.remontti.com.br/2966" rel="noopener noreferrer" target="_blank">Debian 10 Stretch / Instalação Limpa</a></p>
<p>Vire root de maneira correta no Debian 10!</p>
<pre class="remontti-code"># su -</pre>
<h3>Instalação do banco de dados MariaDB</h3>
<pre class="remontti-code"># apt install mariadb-server mariadb-client </pre>
<p>Por padrão o pacote MaraiDB no Debian usa unix_socket para autenticar o login do usuário, o que basicamente significa que você pode usar o nome de usuário e a senha do sistema operacional para efetuar login no console do MariaDB.<br />
Assim, você pode logar diretamente sem fornecer a senha root do MariaDB. Mas isso é estranho, pois minha senha do root do MariaDB é diferente do meu usuário unix.<br />
Bom se você é meio paranoico com segurança, para alterar a senha do usuário root do MariaDB de forma bruta faça o seguinte:</p>
<pre class="remontti-code"># mariadb -u root</pre>
<pre class="remontti-code">USE mysql;
UPDATE user SET password=PASSWORD(&#039;SENHA_DB_ROOT&#039;) WHERE User=&#039;root&#039;;
UPDATE user SET plugin=&quot;mysql_native_password&quot;;
FLUSH PRIVILEGES;
quit;</pre>
<h3>Instalação do Pure FTP</h3>
<pre class="remontti-code"># apt install pure-ftpd-mysql</pre>
<p>Agora criaremos nosso grupo FTP (<em>grupoftp</em>) e usuário (<em>pureftpd</em>) para que nosso usuários virtuais sejam mapeados.</p>
<pre class="remontti-code"># groupadd -g 2001 ftpgroup
# useradd -u 2001 -s /bin/false -d /bin/null -c &quot;pureftpd user&quot; -g ftpgroup ftpuser</pre>
<pre class="remontti-code"># vim /etc/default/pure-ftpd-common</pre>
<p>altere</p>
<pre class="remontti-code">UPLOADUID=
UPLOADGID=</pre>
<p>para </p>
<pre class="remontti-code">UPLOADUID=2001
UPLOADGID=2001</pre>
<p>Próximo passo criar a nossa base de dados, onde ficaram armazenado as informações dos nossos usuários.</p>
<pre class="remontti-code"># mariadb -u root -p</pre>
<p>Entre com a senha de root criada anteriormente.  Não esqueça de alterar senha <strong>(SENHA_FTP_USER)</strong>.</p>
<pre class="remontti-code">CREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO &#039;pureftpd&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;SENHA_FTP_USER&#039;;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO &#039;pureftpd&#039;@&#039;localhost.localdomain&#039; IDENTIFIED BY &#039;SENHA_FTP_USER&#039;;
FLUSH PRIVILEGES;
</pre>
<p>Crie a tabela</p>
<pre class="remontti-code">USE pureftpd;

CREATE TABLE ftpd (
User varchar(16) NOT NULL default &#039;&#039;,
status enum(&#039;0&#039;,&#039;1&#039;) NOT NULL default &#039;0&#039;,
Password varchar(64) NOT NULL default &#039;&#039;,
Uid varchar(11) NOT NULL default &#039;-1&#039;,
Gid varchar(11) NOT NULL default &#039;-1&#039;,
Dir varchar(128) NOT NULL default &#039;&#039;,
ULBandwidth smallint(5) NOT NULL default &#039;0&#039;,
DLBandwidth smallint(5) NOT NULL default &#039;0&#039;,
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default &#039;*&#039;,
QuotaSize smallint(5) NOT NULL default &#039;0&#039;,
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
);

quit; 
</pre>
<p>Salve o arquivo original /etc/pure-ftpd/db/mysql.conf e crie um novo com novas configurações, mais uma vez preste atenção a senha [SENHA_FTP_USER].</p>
<pre class="remontti-code"># mv /etc/pure-ftpd/db/mysql.conf /etc/pure-ftpd/db/mysql.conf_orig
# vim /etc/pure-ftpd/db/mysql.conf</pre>
<p>Adicione:</p>
<pre class="remontti-code">MYSQLSocket /var/run/mysqld/mysqld.sock
MYSQLUser pureftpd
MYSQLPassword SENHA_FTP_USER
MYSQLDatabase pureftpd
MYSQLCrypt md5
MYSQLGetPW SELECT Password FROM ftpd WHERE User=&quot;\L&quot; AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MYSQLGetUID SELECT Uid FROM ftpd WHERE User=&quot;\L&quot; AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MYSQLGetGID SELECT Gid FROM ftpd WHERE User=&quot;\L&quot;AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MYSQLGetDir SELECT Dir FROM ftpd WHERE User=&quot;\L&quot;AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User=&quot;\L&quot;AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User=&quot;\L&quot;AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User=&quot;\L&quot;AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)
MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User=&quot;\L&quot;AND status=&quot;1&quot; AND (ipaccess = &quot;*&quot; OR ipaccess LIKE &quot;\R&quot;)</pre>
<p>Esteja certo que você mudou o campo MYSQLPassword &#8216;SENHA_FTP_USER&#8217;</p>
<p>A configuração <strong>ChrootEveryone</strong> fará com que o PureFTPd faça chroot em todos os usuários virtuais em seu diretório pessoal, para que ele não consiga procurar diretórios e arquivos fora do diretório pessoal. A linha <strong>CreateHomeDir</strong> fará com que o PureFTPd crie o diretório inicial de um usuário quando o usuário efetuar login e o diretório inicial ainda não existir.</p>
<pre class="remontti-code"># echo yes &gt; /etc/pure-ftpd/conf/ChrootEveryone
# echo yes &gt; /etc/pure-ftpd/conf/CreateHomeDir
# echo 1 &gt; /etc/pure-ftpd/conf/TLS
# echo HIGH &gt; /etc/pure-ftpd/conf/TLSCipherSuite</pre>
<p>Gere os certificados.</p>
<pre class="remontti-code"># openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048
# openssl req -x509 -nodes -newkey rsa:2048 -sha256 -keyout \
  /etc/ssl/private/pure-ftpd.pem \
  -out /etc/ssl/private/pure-ftpd.pem
# chmod 600 /etc/ssl/private/*.pem</pre>
<p>Vamos criar agora um usuário, Qual ficará dentro do diretório <strong>/var/pure-ftpd/ </strong> onde vou deixar todos meus usuários criado, porém você pode escolher qualquer diretório, usarei a pasta /var/ pois seria o &#8220;lugar correto&#8221;.</p>
<p>Entre no mariadb com seu usuario pureftpd e senha para fazer a criação do usuário ftp, no meu ex vou criar o usuário chamado remontti.</p>
<pre class="remontti-code"># mysql -u pureftpd -p</pre>
<pre class="remontti-code">USE pureftpd;

INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) 
VALUES (&#039;remontti&#039;, &#039;1&#039;, MD5(&#039;SUA_SENHA&#039;), &#039;2001&#039;, &#039;2001&#039;, &#039;/var/pure-ftpd/remontti&#039;, &#039;100&#039;, &#039;100&#039;, &#039;&#039;, &#039;*&#039;, &#039;50&#039;, &#039;0&#039;);

quit;</pre>
<p>Limpe o histórico do mariadb. Não queremos ninguém vendo o q digitamos lá <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f61b.png" alt="😛" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<pre class="remontti-code"># echo &gt; /root/.mysql_history</pre>
<p>Ao fazer login o diretório /var/pure-ftpd/USUARIO será criado automaticamente.</p>
<p>Restarte o serviço e verifique o status do mesmo</p>
<pre class="remontti-code"># systemctl restart pure-ftpd-mysql
# systemctl status pure-ftpd-mysql</pre>
<p>Sempre que você queira criar um novo usuário, você tem que criar uma entrada na tabela ftpd.<br />
Explicando a estrutura da tabela:</p>
<p><strong>User:</strong> Seu usuário (ex. como no nosso usuário acima: teste).<br />
<strong>Status: </strong>0 ou 1. 0 deixará sua conta inativa, e o usuário não pode logar.<br />
<strong>Password:</strong> A senha do usuário. A senha está encriptada com MD5.<br />
<strong>UID:</strong> O userid do usuário ftp que você criou (ex: 2001)<br />
<strong>GID: </strong>O groupid do grupo ftp que você criou (ex: 2001).<br />
<strong>Dir:</strong> Diretório home do usuário (ex: /home/teste). Se não existir será criado quando logar pela primeira vez via FTP. O usuário será preso neste diretório home.<br />
<strong>ULBandwidth: </strong>Controle de Upload em KB/Sec. Use 0 para que seja ilimitado.<br />
<strong>DLBandwidth: </strong>Controle de Download em KB/sec. Use 0 para que seja ilimitado.<br />
<strong>Comment: </strong>Você pode inserir qualquer comentário (ex: Usuário da administração). Você deixa este campo limpo.<br />
<strong>Ipaccess: </strong>Você pode definir o ip que serão permitidos para conectar nesta conta FTP. Ou &#8216;*&#8217; para qualquer endereço IP.<br />
<strong>QuotaSize: </strong>Espaço de armazenamento em MB (não KB, como em ULBandwidth eDLBandwidth) Defina 0 como ilimitado.<br />
<strong>QuotaFiles:</strong> Número total de arquivos que este usuário poderá salvar. Defina 0 para ilimitado.</p>
<h3>Protegendo com Fail2ban</h3>
<pre class="remontti-code"># apt install fail2ban
# echo yes &gt; /etc/pure-ftpd/conf/DontResolve
# vim /etc/fail2ban/jail.d/defaults-debian.conf</pre>
<p>Adicione o filtro pure-ftpd.</p>
<pre class="remontti-code">[sshd]
enabled = true
[pure-ftpd]
enabled = true</pre>
<p>Restarte o fail2ban</p>
<pre class="remontti-code"># systemctl restart fail2ban</pre>
<p>Se você tiver interesse em ter uma interface web para gerenciamento recomendo:<br />
<a href="https://blog.remontti.com.br/3006" rel="noopener noreferrer" target="_blank">Passo-a-passo como criar um servidor WEB Apache + PHP + MariaDB + phpMyAdmin no Debian 10 Buster “LAMP”</a></p>
<p>Gostou?</p>
<p>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!<br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>Abraço!</p>
<p>Fonte:<a href="http://download.pureftpd.org/pub/pure-ftpd/doc/README.MySQL" rel="noopener noreferrer" target="_blank"> http://download.pureftpd.org/pub/pure-ftpd/doc/README.MySQL</a></p>
<p>O post <a href="https://blog.remontti.com.br/3865">Como criar um servidor FTP (Pure-FTPd) com usuário no banco de dados (MariaDB) usando Debian 10</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/3865/feed</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Instalação do SpeedTest/OoklaServer no Linux</title>
		<link>https://blog.remontti.com.br/2725</link>
					<comments>https://blog.remontti.com.br/2725#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Wed, 24 Oct 2018 02:24:47 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriais]]></category>
		<category><![CDATA[completo]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[ookla]]></category>
		<category><![CDATA[ooklaserver]]></category>
		<category><![CDATA[speed]]></category>
		<category><![CDATA[speedtest]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[testador]]></category>
		<category><![CDATA[teste]]></category>
		<category><![CDATA[teste de velodicade]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=2725</guid>

					<description><![CDATA[<p>Já está disponível uma versão mais recente com Debian 10 Buster Instalação do SpeedTest/OoklaServer + Speedtest Custom no Debian 10 Buster &#8212;&#8212;&#8212;- Distribuição usada: Debian 9 (Instalação limpa) No exemplo vou usar o domínio&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/2725">Instalação do SpeedTest/OoklaServer no Linux</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h4><font color="red">Já está disponível uma versão mais recente com Debian 10 Buster</font></h4>
<p><strong><a href="https://blog.remontti.com.br/3218">Instalação do SpeedTest/OoklaServer + Speedtest Custom no Debian 10 Buster</a></strong></p>
<p>&#8212;&#8212;&#8212;-</p>
<p><strong>Distribuição usada</strong>: Debian 9 (<a href="https://blog.remontti.com.br/1152" target="_blank" rel="noopener noreferrer">Instalação limpa</a>)</p>
<p>No exemplo vou usar o domínio <strong>teste.remontti.com.br</strong>, então tenha o subdomínio teste configurado em seu<a href="https://blog.remontti.com.br/1397" target="_blank" rel="noopener noreferrer"> DNS Server</a></p>
<p>Vamos instalar nosso servidor web</p>
<pre class="remontti-code"># apt install apache2 libapache2-mod-php7.0 php7.0 unzip apt-transport-https</pre>
<p>É Recomendamos usar um usuário sem poderes de root para executar o servidor da ookla. Para isso vamos criar o usuário <em>ooklaserver</em>.</p>
<pre class="remontti-code"># addgroup ooklaserver
# useradd -d /etc/ooklaserver -m -g ooklaserver -s /bin/bash ooklaserver</pre>
<p>Transforme-se no usuário ooklaserver que acabamos de criar.</p>
<pre class="remontti-code"># su - ooklaserver</pre>
<p>Vamos baixar nosso script de instalação em /etc/ooklaserver e executa-lo.</p>
<pre class="remontti-code">$ cd ~
$ wget https://install.speedtest.net/ooklaserver/ooklaserver.sh --no-check-certificate
$ chmod +x ooklaserver.sh
$ ./ooklaserver.sh install
</pre>
<p><em>Server Platform is linux64<br />
This will install the Ookla server for linux64 to the current folder. Please confirm (y/n)</em> <strong>y</strong></p>
<p>O script detecta automaticamente o sistema operacional e baixará a versão apropriada e em seguira irá iniciar o serviço daemon.</p>
<p>Ao concluir abra seu navegador e insira seu domínio:8080<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_211049.png" data-rel="lightbox-gallery-ko2bU9YW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-2734" src="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_211049-300x166.png" alt="" width="300" height="166" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_211049-300x166.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_211049-768x426.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_211049.png 805w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><br />
Se a resposta for OoklaServer It worked! o serviço já está rodando.</p>
<p>Volte para o usuário root</p>
<pre class="remontti-code">$ exit</pre>
<p>Agora vamos configurar para que seja iniciado automaticamente.<br />
Edite /etc/rc.local ele deve ter os seguintes comandos para iniciar em modo segundo plano.</p>
<pre class="remontti-code"># vim /etc/rc.local</pre>
<pre class="remontti-code">#!/bin/sh
su ooklaserver -c &#039;./etc/ooklaserver/OoklaServer --daemon&#039;
exit 0</pre>
<pre class="remontti-code"># chmod +x /etc/rc.local</pre>
<p>Edite o arquivo <em>OoklaServer.properties</em> e descomente a linha <em>OoklaServer.allowedDomains</em> e adicione seu domínio também.</p>
<pre class="remontti-code"># vim /etc/ooklaserver/OoklaServer.properties</pre>
<pre class="remontti-code">...
...
OoklaServer.allowedDomains = *.ookla.com, *.speedtest.net, *.remontti.com.br
...
...</pre>
<p>Faça o mesmo no arquivo<em> OoklaServer.properties.default</em></p>
<pre class="remontti-code"># vim /etc/ooklaserver/OoklaServer.properties.default</pre>
<p>Agora reinicie seu servidor, e volte acesa seu domínio:8080 e verifique se o mesmo executou na inicialização.</p>
<pre class="remontti-code"># reboot</pre>
<p>Tudo certo? Meio caminho andado, vamos a configuração do nosso domínio no apache e configuração do nosso <a href="https://blog.remontti.com.br/1832" target="_blank" rel="noopener noreferrer">certificado grátis com o Let’s Encrypt</a>.</p>
<p>Crie a configuração do domínio virtual, no meu caso teste.remontti.com.br, qual ficará em /var/www/teste/</p>
<pre class="remontti-code"># vim /etc/apache2/sites-available/teste.conf</pre>
<pre class="remontti-code">
&lt;virtualhost *:80&gt;
        ServerName teste.remontti.com.br
        ServerAdmin seu@email.com.br 
        DocumentRoot /var/www/teste 
        &lt;directory /var/www/teste/ &gt;
                Options FollowSymLinks
                AllowOverride All
        &lt;/directory&gt; 
        LogLevel warn 
        ErrorLog ${APACHE_LOG_DIR}/error_teste.log
        CustomLog ${APACHE_LOG_DIR}/access_teste.log combined
&lt;/virtualhost&gt;
</pre>
<p>Por segurança recomendo remover a assinatura do servidor, evitando os &#8220;espertinhos&#8221;</p>
<pre class="remontti-code"># sed -i &#039;s/ServerTokens OS/ServerTokens Prod/&#039; /etc/apache2/conf-available/security.conf
# sed -i &#039;s/ServerSignature On/ServerSignature Off/&#039; /etc/apache2/conf-available/security.conf</pre>
<p>Aponte nosso arquivo para as configurações ativas</p>
<pre class="remontti-code"># ln -s /etc/apache2/sites-available/teste.conf /etc/apache2/sites-enabled/teste.conf
# /etc/init.d/apache2 restart</pre>
<p>Criaremos o diretório /var/www/teste/ para os arquivos <a href="https://support.ookla.com/hc/en-us/articles/234578548-Installing-HTTP-Legacy-Fallback" target="_blank" rel="noopener noreferrer">HTTP Legacy Fallback</a> necessários.</p>
<pre class="remontti-code"># mkdir /var/www/teste/
# cd /var/www/teste/
# wget http://install.speedtest.net/httplegacy/http_legacy_fallback.zip --no-check-certificate
# unzip http_legacy_fallback.zip
# rm http_legacy_fallback.zip -f
# cd /var/www/teste/speedtest/
# rm *.asp *.aspx *.jsp
# echo &gt; /var/www/teste/speedtest/index.html
# echo &gt; /var/www/teste/index.html
</pre>
<p>Adicione seu dominio em /var/www/teste/crossdomain.xml</p>
<pre class="remontti-code"> # vim /var/www/teste/crossdomain.xml</pre>
<pre class="remontti-code">&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;cross-domain-policy&gt;
  &lt;allow-access-from domain=&quot;*.speedtest.net&quot; /&gt;
  &lt;allow-access-from domain=&quot;*.ookla.com&quot; /&gt;
  &lt;allow-access-from domain=&quot;*.remontti.com.br&quot; /&gt;
&lt;/cross-domain-policy&gt;</pre>
<p>Você pode incluir no código fonte do /var/www/teste/index.html o iframe criado lá testador criando com<a href="https://account.speedtestcustom.com/" target="_blank" rel="noopener noreferrer">SpeedTest Custom</a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_221308.png" data-rel="lightbox-gallery-ko2bU9YW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-2746" src="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_221308-300x212.png" alt="" width="300" height="212" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_221308-300x212.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_221308-768x542.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_221308-1024x722.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_221308.png 1212w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Vamos instalar o <a href="https://blog.remontti.com.br/1832" target="_blank" rel="noopener noreferrer">letsencrypt</a> para gerar nosso certificado</p>
<pre class="remontti-code"># apt install letsencrypt python-certbot-apache
# apache2ctl stop
# letsencrypt --authenticator standalone --installer apache -d teste.remontti.com.br</pre>
<p>Informe seu e-mail:<br />
<em>Enter email address (used for urgent renewal and security notices) (Enter &#8216;c&#8217; to cancel):</em> <strong>seu@email.com.br</strong><br />
Aceite os termos:<br />
<em>(A)gree/(C)ancel:</em><strong> A</strong><br />
Selecione o método &#8211; 1 para deixar o acesso HTTP e HTTPS e 2 para sempre direcionar para HTTPS.<br />
Select the appropriate number [1-2] then [enter] (press &#8216;c&#8217; to cancel): 1 ou 2</p>
<p>Se receber a mensagem tudo ocorreu bem:<br />
<em>&#8211; Congratulations! Your certificate&#8230;<br />
&#8230;</em></p>
<p>Ao expirar o certificado do seu domínio você pode usar o comando para fazer a renovação. NÃO PRECISA EXECUTAR AGORA! Você acabou de gerar o certificado.</p>
<pre class="remontti-code"># certbot -q renew</pre>
<p>O Ideal é colocar o comanod <strong>certbot -q renew</strong> no seu <strong><a href="https://blog.remontti.com.br/90" target="_blank" rel="noopener noreferrer">CRON</a></strong> para executar a cada 15 dias.</p>
<p>Vamos incluir os certificado gerado nas configurações do OoklaServer. Altere teste.remontti.com.br para seu domínio.</p>
<pre class="remontti-code"># echo &#039;openSSL.server.certificateFile = /etc/letsencrypt/live/teste.remontti.com.br/fullchain.pem&#039; &gt;&gt; /etc/ooklaserver/OoklaServer.properties
# echo &#039;openSSL.server.privateKeyFile = /etc/letsencrypt/live/teste.remontti.com.br/privkey.pem&#039;    &gt;&gt; /etc/ooklaserver/OoklaServer.properties
# echo &#039;openSSL.server.certificateFile = /etc/letsencrypt/live/teste.remontti.com.br/fullchain.pem&#039; &gt;&gt; /etc/ooklaserver/OoklaServer.properties.default
# echo &#039;openSSL.server.privateKeyFile = /etc/letsencrypt/live/teste.remontti.com.br/privkey.pem&#039; &gt;&gt; /etc/ooklaserver/OoklaServer.properties.default</pre>
<p>Vai ser necessário dar acesso ao usuário ooklaserver ao diretório do /etc/letsencrypt/ onde estão o certificado para que o mesmo possa ler</p>
<pre class="remontti-code"># chown ooklaserver. /etc/letsencrypt/ -R</pre>
<p>Reinicie o serviço do ooklaserver</p>
<pre class="remontti-code"># cd /etc/ooklaserver
# ./ooklaserver.sh stop
# su ooklaserver -c  &#039;/etc/ooklaserver/ooklaserver.sh start&#039;</pre>
<p>Abra novamente seu domínio na porta 8080 porém com https agora.<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230317.png" data-rel="lightbox-gallery-ko2bU9YW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-2758" src="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230317-300x166.png" alt="" width="300" height="166" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230317-300x166.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230317-768x426.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230317.png 805w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>Vamos ao testes!<br />
Acesse: <a href="https://www.ookla.com/pt/host-tester" target="_blank" rel="noopener noreferrer">https://www.ookla.com/pt/host-tester</a></p>
<p>Preencha com as informações do seu servidor:<br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_220153.png" data-rel="lightbox-gallery-ko2bU9YW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-2754" src="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_220153-1024x683.png" alt="" width="1024" height="683" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_220153-1024x683.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_220153-300x200.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_220153-768x512.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_220153.png 1160w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>Clique em Submit para iniciar o teste</p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230507.png" data-rel="lightbox-gallery-ko2bU9YW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-large wp-image-2760" src="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230507-1024x741.png" alt="" width="1024" height="741" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230507-1024x741.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230507-300x217.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230507-768x556.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230507.png 1150w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230814.png" data-rel="lightbox-gallery-ko2bU9YW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-large wp-image-2761" src="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230814-1024x895.png" alt="" width="1024" height="895" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230814-1024x895.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230814-300x262.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230814-768x671.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230814.png 1142w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><br />
<a href="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230844.png" data-rel="lightbox-gallery-ko2bU9YW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-large wp-image-2762" src="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230844-1024x615.png" alt="" width="1024" height="615" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230844-1024x615.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230844-300x180.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230844-768x461.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_230844.png 1210w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>Se você passou nos testes é hora de fazer a solicitação para virar um host!<br />
<a href="https://account.ookla.com/servers/create" target="_blank" rel="noopener noreferrer">https://account.ookla.com/servers/create</a></p>
<p><a href="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_231256.png" data-rel="lightbox-gallery-ko2bU9YW" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="alignnone size-large wp-image-2764" src="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_231256-1024x640.png" alt="" width="1024" height="640" srcset="https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_231256-1024x640.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_231256-300x188.png 300w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_231256-768x480.png 768w, https://blog.remontti.com.br/wp-content/uploads/2018/10/Screenshot_20181023_231256.png 1680w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>Agora é só aguardar!!! Normalmente é necessário ter 1GB de banda disponível mas varia muito de região.</p>
<p>Gostou? Deixe seu comentário ficarei feliz em saber que lhe ajudei, e se tiver qualquer pergunta deixe-a também, se preferir acesse o menu <a href="https://blog.remontti.com.br/meucontato" target="_blank" rel="noopener noreferrer">Consultoria</a> lá você encontra meios de falar comigo!</p>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Fontes:<br />
<em>https://support.ookla.com/hc/en-us/articles/234578528-OoklaServer-Installation-Linux-Unix<br />
https://support.ookla.com/hc/en-us/articles/234578548-Installing-HTTP-Legacy-Fallback</em></p>
<p>O post <a href="https://blog.remontti.com.br/2725">Instalação do SpeedTest/OoklaServer no Linux</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/2725/feed</wfw:commentRss>
			<slash:comments>107</slash:comments>
		
		
			</item>
	</channel>
</rss>
