<http://schema.org/articleBody>
"Imagine que voc\u00EA est\u00E1 desenvolvendo um projeto e precisa apresentar o prot\u00F3tipo, ou mesmo o sistema pronto, para outra pessoa da equipe ou cliente que n\u00E3o se encontra presente no local. O seu cliente quer testar, ver, clicar, mas voc\u00EA n\u00E3o colocou o sistema no ar. Como resolver tal problema?\r\n\r\nNeste artigo apresentarei uma solu\u00E7\u00E3o para o problema acima. A qual permite que com apenas a execu\u00E7\u00E3o do seguinte comando\r\n&lt;pre class=\"lang-shell\"&gt;user@tableless:~/site$ ngrok http -subdomain=umNomeParaMeuDominio 8000\r\n&lt;/pre&gt;\r\nSeu\u00A0 sistema ficar\u00E1 acess\u00EDvel em &lt;a&gt;https://umNomeParaMeuDominio.ngrok.com&lt;/a&gt;, expondo o servi\u00E7o que est\u00E1 rodando em localhost e utilizando a porta 8000\r\n&lt;h2&gt;Pequena introdu\u00E7\u00E3o ao Ngrok e tutorial&lt;/h2&gt;\r\n[caption id=\"attachment_50549\" align=\"alignnone\" width=\"800\"]&lt;a href=\"http://tableless.com.br/wp-content/uploads/2015/08/68747470733a2f2f6e67726f6b2e636f6d2f7374617469632f696d672f6f766572766965772e706e67.png\"&gt;&lt;img class=\"wp-image-50549 size-full\" src=\"http://tableless.com.br/wp-content/uploads/2015/08/68747470733a2f2f6e67726f6b2e636f6d2f7374617469632f696d672f6f766572766965772e706e67.png\" alt=\"Esquema de funcionamento do Ngrok\" width=\"800\" height=\"498\" /&gt;&lt;/a&gt; Extra\u00EDdo do reposit\u00F3rio oficial do projeto, &lt;a href=\"https://github.com/inconshreveable/ngrok\"&gt;GitHub&lt;/a&gt;[/caption]\r\n\r\nA ideia bem resumida \u00E9 a seguinte: o servidor ngrokd cria um t\u00FAnel entre os colaboradores e um servi\u00E7o local rodando na sua m\u00E1quina. Para isso, ele utiliza um conceito de API chamado Webhooks, o qual permite que uma dada aplica\u00E7\u00E3o forne\u00E7a informa\u00E7\u00E3o em tempo real para outras aplica\u00E7\u00F5es distintas. O servidor ngrokd criar\u00E1 um subdom\u00EDnio para cada servi\u00E7o conectado a ele, e cada requisi\u00E7\u00E3o feita pelos colaboradores e redirecionada para o servi\u00E7o correspondente. A ideia \u00E9 simples, mas poderosa. Ent\u00E3o, m\u00E3os \u00E0 obra!\r\n&lt;ol&gt;\r\n\t&lt;li&gt;Baixe o arquivo em &lt;a href=\"https://ngrok.com\"&gt;ngrok.com&lt;/a&gt;(OSX,Windows, linux), vers\u00E3o linux: http://bit.ly/1u9XuZ0&lt;/li&gt;\r\n\t&lt;li&gt;Extraia em uma pasta desejada: &lt;code&gt;user@tableless:~/site$ unzip grok&lt;/code&gt;&lt;/li&gt;\r\n&lt;/ol&gt;\r\n\r\nVoc\u00EA pode preferir criar um link simb\u00F3lico para o ngrok, ou um alias no bashrc para torn\u00E1-lo mais acess\u00EDvel.\r\n\r\n&lt;ol&gt;\r\n\t&lt;li&gt;Podemos utilizaropython para criar umservidorhttp simples &lt;code&gt;user@tableless:~/site$ python -m simpleHTTPServer 8000&lt;/code&gt;\r\no comando acima disponibilizara o ~/site/index.html em http://localhost:8000.&lt;/li&gt;\r\n\t&lt;li&gt;Torne \u00A0seu sistema p\u00FAblico com o seguinte comando &lt;code&gt;user@tableless:~/site$ ./ngrok  http 8000&lt;/code&gt;\r\n&lt;a href=\"http://tableless.com.br/wp-content/uploads/2015/08/tela01.jpg\"&gt;&lt;img class=\"aligncenter size-full wp-image-50565\" src=\"http://tableless.com.br/wp-content/uploads/2015/08/tela01.jpg\" alt=\"Sa\u00EDda do ngrok\" width=\"1366\" height=\"179\" /&gt;&lt;/a&gt;&lt;/li&gt;\r\n&lt;/ol&gt;\r\n\r\nPronto! O sistema est\u00E1 acess\u00EDvel em &lt;a href=\"#!\"&gt;https://20af6470.ngrok.com&lt;/a&gt; ou &lt;a href=\"#!\"&gt;http://20af6470.ngrok.com&lt;/a&gt; !\u00A0Da para melhorar mais!\r\n\r\nEntre em &lt;a href=\"http://dashboard.ngrok.com/user/signup\"&gt;dashboard.ngrok.com/user/signup&lt;/a&gt; e realize o cadastro, o qual fornecer\u00E1 a voc\u00EA um Token de Autentica\u00E7\u00E3o. V\u00E1 no terminal \u00E9 edite o arquivo de configura\u00E7\u00E3o que \u00E9 criado pelo ngrok.\r\n\r\n&lt;pre class=\"lang-shell\"&gt;user@tableless:~/site$ vim ~/.ngrok&lt;/pre&gt;\r\n\r\nAcrescente\u00A0a seguinte linha:\r\n\r\n&lt;pre class=\"lang-text\"&gt;auth_token: tokenFornecido&lt;/pre&gt;\r\n\r\nA autentifica\u00E7\u00E3o pode ser feita tamb\u00E9m atrav\u00E9s da linha de comando\r\n\r\n&lt;pre class=\"lang-shell\"&gt;user@tableless:~/site$ ./ngrok authtoken tokenFornecido&lt;/pre&gt;\r\n\r\nCom a autentica\u00E7\u00E3o feita pode-se\u00A0rodar o \u00A0servi\u00E7o em um subdom\u00EDnio espec\u00EDfico basta mandar o seguinte comando &lt;code&gt;user@tableless:~/site$ ngrok  http  -subdomain=tableless 8000&lt;/code&gt;\r\n\r\nCom o comando acima qualquer pessoa poder\u00E1 acessar seu sistema a partir de &lt;a href=\"#!\"&gt;https://tableless.ngrok.com&lt;/a&gt; ou &lt;a href=\"#!\"&gt;http://tableless.ngrok.com&lt;/a&gt;\r\n\r\n&lt;h3&gt;Considera\u00E7\u00F5es Finais e Dicas:&lt;/h3&gt;\r\n&lt;ul&gt;\r\n\t&lt;li&gt;Se voc\u00EA encontra-se atr\u00E1s deumproxy,otunelamento pode ser criado inserindo o item abaixo no arquivo de configura\u00E7\u00E3o\r\n&lt;pre class=\"lang-txt\"&gt;http_proxy: \"http://user:password@endereco:porta\" \r\n&lt;/pre&gt;\r\n&lt;/li&gt;\r\n\t&lt;li&gt;\u00C9 poss\u00EDvel restringir o acesso ao sistema &lt;a href=\"https://ngrok.com/docs#auth\"&gt;https://ngrok.com/docs#auth&lt;/a&gt;&lt;/li&gt;\r\n\t&lt;li&gt;Utilizei o ngrok para construir o Front End de um sistema para uma empresa que se localiza em outra cidade, o que me permitiu ter um feedback imediato do cliente.&lt;/li&gt;\r\n\t&lt;li&gt;Estou usando o ngrok para testar uma API desenvolvida em Django(j\u00E1 que o facebook n\u00E3o permite login em aplica\u00E7\u00F5es rodando em 192.168... essa foi a melhor alternativa)&lt;/li&gt;\r\n\t&lt;li&gt;Existem in\u00FAmeras funcionalidades para o ngrok, por isso, se voc\u00EA se interessou sobre essa ferramenta seria interessante voc\u00EA dar uma olhada na documenta\u00E7\u00E3o\r\n&lt;a href=\"//ngrok.com/docs\"&gt;https://ngrok.com/docs&lt;/a&gt;&lt;/li&gt;\r\n&lt;/ul&gt;"^^<http://www.w3.org/2001/XMLSchema#string>
<http://tableless.com.br/demo-sem-deploy-disponibilize-seu-projeto-de-forma-rapida-e-segura/>