diff options
| author | Núbio C. Hott <bio@brigadadigital.tec.br> | 2026-04-27 21:43:40 -0300 |
|---|---|---|
| committer | Núbio C. Hott <bio@brigadadigital.tec.br> | 2026-04-27 21:43:40 -0300 |
| commit | a0190a6ce6cdba78bb67b23c0233de0f32bd39f3 (patch) | |
| tree | 4384af75256d19430be8178146beb5524ec1baa6 | |
| download | website-a0190a6ce6cdba78bb67b23c0233de0f32bd39f3.tar.gz website-a0190a6ce6cdba78bb67b23c0233de0f32bd39f3.tar.bz2 website-a0190a6ce6cdba78bb67b23c0233de0f32bd39f3.zip | |
Início do repositório
230 files changed, 8698 insertions, 0 deletions
@@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4621a22 --- /dev/null +++ b/Makefile @@ -0,0 +1,86 @@ +PY?=python3 +PELICAN?=pelican +PELICANOPTS= + +BASEDIR=$(CURDIR) +INPUTDIR=$(BASEDIR)/content +OUTPUTDIR=$(BASEDIR)/output +CONFFILE=$(BASEDIR)/pelicanconf.py +PUBLISHCONF=$(BASEDIR)/publishconf.py + +SSH_HOST=brigadadigital.org.br +SSH_PORT=2221 +SSH_USER=nbio +SSH_TARGET_DIR=/var/www + + +DEBUG ?= 0 +ifeq ($(DEBUG), 1) + PELICANOPTS += -D +endif + +RELATIVE ?= 0 +ifeq ($(RELATIVE), 1) + PELICANOPTS += --relative-urls +endif + +help: + @echo 'Makefile for a pelican Web site ' + @echo ' ' + @echo 'Usage: ' + @echo ' make html (re)generate the web site ' + @echo ' make clean remove the generated files ' + @echo ' make regenerate regenerate files upon modification ' + @echo ' make publish generate using production settings ' + @echo ' make serve [PORT=8000] serve site at http://localhost:8000' + @echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 ' + @echo ' make devserver [PORT=8000] serve and regenerate together ' + @echo ' make ssh_upload upload the web site via SSH ' + @echo ' make rsync_upload upload the web site via rsync+ssh ' + @echo ' ' + @echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html ' + @echo 'Set the RELATIVE variable to 1 to enable relative urls ' + @echo ' ' + +html: + $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) + +clean: + [ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR) + +regenerate: + $(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) + +serve: +ifdef PORT + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) +else + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) +endif + +serve-global: +ifdef SERVER + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) -b $(SERVER) +else + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) -b 0.0.0.0 +endif + + +devserver: +ifdef PORT + $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) +else + $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) +endif + +publish: + $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS) + +ssh_upload: publish + scp -P $(SSH_PORT) -r $(OUTPUTDIR)/* $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) + +rsync_upload: publish + rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --cvs-exclude --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) + + +.PHONY: html help clean regenerate serve serve-global devserver stopserver publish ssh_upload rsync_upload
\ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..ea06ffe --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +Title: README + +# Site brigadadigital.org.br diff --git a/__pycache__/pelicanconf.cpython-310.pyc b/__pycache__/pelicanconf.cpython-310.pyc Binary files differnew file mode 100644 index 0000000..240163e --- /dev/null +++ b/__pycache__/pelicanconf.cpython-310.pyc diff --git a/__pycache__/pelicanconf.cpython-312.pyc b/__pycache__/pelicanconf.cpython-312.pyc Binary files differnew file mode 100644 index 0000000..9825f67 --- /dev/null +++ b/__pycache__/pelicanconf.cpython-312.pyc diff --git a/__pycache__/pelicanconf.cpython-38.pyc b/__pycache__/pelicanconf.cpython-38.pyc Binary files differnew file mode 100644 index 0000000..3973fae --- /dev/null +++ b/__pycache__/pelicanconf.cpython-38.pyc @@ -0,0 +1,4 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true diff --git a/content/articles/artigos/a-libertacao-trabaladora-do-controle-proprietario-da-tecnologia.html b/content/articles/artigos/a-libertacao-trabaladora-do-controle-proprietario-da-tecnologia.html new file mode 100644 index 0000000..170ec41 --- /dev/null +++ b/content/articles/artigos/a-libertacao-trabaladora-do-controle-proprietario-da-tecnologia.html @@ -0,0 +1,17 @@ +<html> + <head> + <title>A libertação trabalhadora do controle proprietário da tecnologia</title> + <meta name="tags" content="artigos, política, , controle social, extração de valor" /> + <meta name="date" content="2024-04-17 21:30" /> + <meta name="category" content="blog" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="a-libertacao-trabalhadora-do-controle-proprietario-da-tecnologia" /> + <meta name="summary" content="Este artigo desenvolve sobre a etapa artesanal do processo de libertação trabalhadora das formas de controle proprietário da tecnologia." /> + <meta name="status" content="draft" /> + </head> + <body class="features"> + <p> + Este artigo desenvolve sobre a etapa artesanal do processo de libertação trabalhadora das formas de controle proprietário da tecnologia. + </p> + </body> +</html> diff --git a/content/articles/artigos/a-libertacao-trabaladora-do-controle-proprietario-da-tecnologia.html~ b/content/articles/artigos/a-libertacao-trabaladora-do-controle-proprietario-da-tecnologia.html~ new file mode 100644 index 0000000..7339444 --- /dev/null +++ b/content/articles/artigos/a-libertacao-trabaladora-do-controle-proprietario-da-tecnologia.html~ @@ -0,0 +1,16 @@ +<html> + <head> + <title>A libertação trabalhadora do controle proprietário da tecnologia</title> + <meta name="tags" content="artigos, política, , controle social, extração de valor" /> + <meta name="date" content="2024-04-10 14:37" /> + <meta name="category" content="blog" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="a-pirataria-de-informação-da-indústria-capitalista-de-tecnologia" /> + <meta name="summary" content="Este artigo desenvolve sobre a etapa artesanal do processo de libertação trabalhadora das formas de controle proprietário da tecnologia." /> + </head> + <body class="features"> + <p> + Como opera a pirataria de informação pela indústria capitalista de tecnologia. + </p> + </body> +</html> diff --git a/content/articles/artigos/a-pirataria-de-informação-da-industria-capitalista-de-tecnologia.html b/content/articles/artigos/a-pirataria-de-informação-da-industria-capitalista-de-tecnologia.html new file mode 100644 index 0000000..306d53c --- /dev/null +++ b/content/articles/artigos/a-pirataria-de-informação-da-industria-capitalista-de-tecnologia.html @@ -0,0 +1,17 @@ +<html> + <head> + <title>A pirataria de informação da indústria capitalista de tecnologia</title> + <meta name="tags" content="artigos, política, pirataria, controle social, extração de valor" /> + <meta name="date" content="2024-04-10 14:37" /> + <meta name="category" content="blog" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="a-pirataria-de-informação-da-indústria-capitalista-de-tecnologia" /> + <meta name="summary" content="Como opera a pirataria de informação pela indústria capitalista de tecnologia." /> + <meta name="status" content="draft" /> + </head> + <body class="features"> + <p> + Como opera a pirataria de informação pela indústria capitalista de tecnologia. + </p> + </body> +</html> diff --git a/content/articles/artigos/a-pirataria-de-informação-da-industria-capitalista-de-tecnologia.html~ b/content/articles/artigos/a-pirataria-de-informação-da-industria-capitalista-de-tecnologia.html~ new file mode 100644 index 0000000..7ef37a4 --- /dev/null +++ b/content/articles/artigos/a-pirataria-de-informação-da-industria-capitalista-de-tecnologia.html~ @@ -0,0 +1,16 @@ +<html> + <head> + <title>A pirataria de informação da indústria capitalista de tecnologia</title> + <meta name="tags" content="artigos, política, pirataria, controle social, extração de valor" /> + <meta name="date" content="2024-04-10 14:37" /> + <meta name="category" content="Artigos" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="a-pirataria-de-informação-da-indústria-capitalista-de-tecnologia" /> + <meta name="summary" content="Como opera a pirataria de informação pela indústria capitalista de tecnologia." /> + </head> + <body class="features"> + <p> + Como opera a pirataria de informação pela indústria capitalista de tecnologia. + </p> + </body> +</html> diff --git a/content/articles/artigos/as-tecnologias-proprietarias-e-o-empoderamento-capitalista.html b/content/articles/artigos/as-tecnologias-proprietarias-e-o-empoderamento-capitalista.html new file mode 100644 index 0000000..3cbaaac --- /dev/null +++ b/content/articles/artigos/as-tecnologias-proprietarias-e-o-empoderamento-capitalista.html @@ -0,0 +1,17 @@ +<html> + <head> + <title>As tecnologias proprietárias e o empoderamento capitalista</title> + <meta name="tags" content="artigos, política, pirataria, controle social, extração de valor" /> + <meta name="date" content="2024-04-10 15:00" /> + <meta name="category" content="blog" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="as-tecnologias-proprietarias-e-o-empoderamento-capitalista" /> + <meta name="summary" content="O desenvolvimento e a popularização das tecnologias proprietárias da informação proporcionou o empoderamento capitalista" /> + <meta name="status" content="draft" /> + </head> + <body class="features"> + <p> + O desenvolvimento e a popularização das tecnologias proprietárias da informação proporcionou o empoderamento capitalista. + </p> + </body> +</html> diff --git a/content/articles/artigos/as-tecnologias-proprietarias-e-o-empoderamento-capitalista.html~ b/content/articles/artigos/as-tecnologias-proprietarias-e-o-empoderamento-capitalista.html~ new file mode 100644 index 0000000..7b4c4e5 --- /dev/null +++ b/content/articles/artigos/as-tecnologias-proprietarias-e-o-empoderamento-capitalista.html~ @@ -0,0 +1,16 @@ +<html> + <head> + <title>As tecnologias proprietárias e o empoderamento capitalista</title> + <meta name="tags" content="artigos, política, pirataria, controle social, extração de valor" /> + <meta name="date" content="2024-04-10 15:00" /> + <meta name="category" content="Artigos" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="as-tecnologias-proprietarias-e-o-empoderamento-capitalista" /> + <meta name="summary" content="O desenvolvimento e a popularização das tecnologias proprietárias da informação proporcionou o empoderamento capitalista" /> + </head> + <body class="features"> + <p> + O desenvolvimento e a popularização das tecnologias proprietárias da informação proporcionou o empoderamento capitalista. + </p> + </body> +</html> diff --git a/content/articles/artigos/o-controle-proprietario-da-tecnologia-trabalhadora.html b/content/articles/artigos/o-controle-proprietario-da-tecnologia-trabalhadora.html new file mode 100644 index 0000000..1f1948f --- /dev/null +++ b/content/articles/artigos/o-controle-proprietario-da-tecnologia-trabalhadora.html @@ -0,0 +1,15 @@ +<html> + <head> + <title>O controle proprietário da tecnologia da classe trabalhadora</title> + <meta name="tags" content="artigos, política, controle social, extração de valor" /> + <meta name="date" content="2024-04-07 23:41" /> + <meta name="category" content="blog" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="o-controle-proprietario-da-tecnologia-da-classe-trabalhadora" /> + <meta name="summary" content="Os proprietários dos meios de produção de tecnologia mantém formas de controle nos dispositivos de tecnologia da classe trabalhadora." /> + <meta name="status" content="draft" /> + </head> + <body class="features"> + <p>Os proprietários dos meios de produção de tecnologia mantém formas de controle nos dispositivos de tecnologia da classe trabalhadora.</p> + </body> +</html> diff --git a/content/articles/artigos/o-controle-proprietario-da-tecnologia-trabalhadora.html~ b/content/articles/artigos/o-controle-proprietario-da-tecnologia-trabalhadora.html~ new file mode 100644 index 0000000..4c66998 --- /dev/null +++ b/content/articles/artigos/o-controle-proprietario-da-tecnologia-trabalhadora.html~ @@ -0,0 +1,14 @@ +<html> + <head> + <title>O controle proprietário da tecnologia da classe trabalhadora</title> + <meta name="tags" content="artigos, política, controle social, extração de valor" /> + <meta name="date" content="2024-04-07 23:41" /> + <meta name="category" content="Artigos" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="o-controle-proprietario-da-tecnologia-da-classe-trabalhadora" /> + <meta name="summary" content="Os proprietários dos meios de produção de tecnologia mantém formas de controle nos dispositivos de tecnologia da classe trabalhadora." /> + </head> + <body class="features"> + <p>Os proprietários dos meios de produção de tecnologia mantém formas de controle nos dispositivos de tecnologia da classe trabalhadora.</p> + </body> +</html> diff --git a/content/articles/blog/recebemos-a-doacao-de-um-smartfone-compativel-com-o-replicant.html b/content/articles/blog/recebemos-a-doacao-de-um-smartfone-compativel-com-o-replicant.html new file mode 100644 index 0000000..da6be56 --- /dev/null +++ b/content/articles/blog/recebemos-a-doacao-de-um-smartfone-compativel-com-o-replicant.html @@ -0,0 +1,23 @@ +<html> + <head> + <title>Recebemos a doação de um smartphone compatível com o Replicant</title> + <meta name="tags" content="Doação" /> + <meta name="date" content="2024-05-03 09:07" /> + <meta name="category" content="Blog" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="recebemos-a-doacao-de-um-smartphone-compatível-com-o-replicant" /> + <meta name="summary" content="Recebemos uma excelete doação de smartphone Samsung S3 I9300, modelo compatível com o sistema operacional livre Replicant que será muito útil para a Brigada." /> + <meta name="status" content="published" /> + </head> + <body class="features"> + <section class="features"> + <img style="float: left; margin: 2% 2% 2% 0;" src="/images/blog/apoie/smartphone-samsung-galaxy-s3-gt-i9300.jpg" title="Smartphone Samsung Galaxy S3 GT I9300" alt="Imagem de smartphone Samsung Galaxy S3 GT I9300" /> + <p> + Recebemos a excelente doação de um smartphone Samsung Galaxy S3 GT I9300. Esse modelo é compatível com o sistema operacional livre Replicant e já não é mais fácil de ser encontrado para venda. + </p> + <p>Realizamos a limpeza do dispositivo e equipamos com capa e película novas, depois instalamos o sistema operacional <a href="/pages/sistemas.html#sistemas-operacionais-replicant" title="Sistema Operacional Replicant">Replicant</a>.</p> + <p>O dispositivo está funcionando bem e será muito útil para os trabalhos da Brigada.</p> + <p>Muito obrigado, Ricardo!</p> + </section> + </body> +</html> diff --git a/content/articles/blog/recebemos-a-doacao-de-um-smartfone-compativel-com-o-replicant.html~ b/content/articles/blog/recebemos-a-doacao-de-um-smartfone-compativel-com-o-replicant.html~ new file mode 100644 index 0000000..8bd8bdf --- /dev/null +++ b/content/articles/blog/recebemos-a-doacao-de-um-smartfone-compativel-com-o-replicant.html~ @@ -0,0 +1,23 @@ +<html> + <head> + <title>Recebemos a doação de um smartfone compatível com Replicant</title> + <meta name="tags" content="Doação" /> + <meta name="date" content="2024-04-09 01:13" /> + <meta name="category" content="Blog" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="recebemos-a-doacao-de-um-smartfone-compatível-como-replicant" /> + <meta name="summary" content="Recebemos uma excelete doação de smartfone Samsung S3 I9300, modelo compatível com o sistema operacional livre Replicant que será muito útil para a Brigada." /> + <meta name="status" content="published" /> + </head> + <body class="features"> + <section class="features"> + <img style="float: left; margin: 2% 2% 2% 0;" src="/images/blog/apoie/smartfone-samsung-galaxy-s3-gt-i9300.jpg" title="Smartfone Samsung Galaxy S3 GT I9300" alt="Imagem de smartfone Samsung Galaxy S3 GT I9300" /> + <p> + Recebemos a excelente doação de um smartfone Samsung Galaxy S3 GT I9300. Esse modelo é compatível com o sistema operacional livre Replicant e já não é mais fácil de ser encontrado para venda. + </p> + <p>Realizamos a limpeza do dispositivo e equipamos com capa e película novas, depois instalamos o sistema operacional <a href="/pages/sistemas.html#sistemas-operacionais-replicant" title="Sistema Operacional Replicant">Replicant<a>.</p> + <p>O dispositivo está funcionando bem e será muito útil para os trabalhos da Brigada.</p> + <p>Agradecemos o doador Ultralivre, da cidade XXXXXX.</p> + </section> + </body> +</html> diff --git a/content/articles/tutoriais/como-usar-o-cliente-de-e-mail-thunderbird-e-icedove-uxp.html b/content/articles/tutoriais/como-usar-o-cliente-de-e-mail-thunderbird-e-icedove-uxp.html new file mode 100644 index 0000000..24c8fdd --- /dev/null +++ b/content/articles/tutoriais/como-usar-o-cliente-de-e-mail-thunderbird-e-icedove-uxp.html @@ -0,0 +1,14 @@ +<html> + <head> + <title>Como usar o cliente de e-mail Thunderbird Icedove-uxp</title> + <meta name="tags" content="Brigada Digital" /> + <meta name="date" content="2024-04-14 12:00" /> + <meta name="category" content="blog" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="como-usar-o-cliente-de-e-mail-thunderbird-e-icedove-uxp" /> + <meta name="summary" content="Como instalar e configurar o cliente de e-mail Thunderbird/icedove-uxp" /> + <meta name="status" content="draft" /> + </head> + <body class="features"> + </body> +</html> diff --git a/content/articles/tutoriais/como-usar-o-cliente-de-tox-qtox.html b/content/articles/tutoriais/como-usar-o-cliente-de-tox-qtox.html new file mode 100644 index 0000000..faf67c3 --- /dev/null +++ b/content/articles/tutoriais/como-usar-o-cliente-de-tox-qtox.html @@ -0,0 +1,14 @@ +<html> + <head> + <title>Como usar o cliente de tox Qtox</title> + <meta name="tags" content="Brigada Digital" /> + <meta name="date" content="2024-04-13 22:03" /> + <meta name="category" content="blog" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="como-usar-o-cliente-de-tox-qtox" /> + <meta name="summary" content="Como instalar e configurar o cliente de tox Qtox" /> + <meta name="status" content="draft" /> + </head> + <body class="features"> + </body> +</html> diff --git a/content/articles/tutoriais/como-usar-o-cliente-de-xmpp-pidgin.html b/content/articles/tutoriais/como-usar-o-cliente-de-xmpp-pidgin.html new file mode 100644 index 0000000..0025b2b --- /dev/null +++ b/content/articles/tutoriais/como-usar-o-cliente-de-xmpp-pidgin.html @@ -0,0 +1,14 @@ +<html> + <head> + <title>Como usa o cliente de xmpp Pidgin</title> + <meta name="tags" content="Brigada Digital" /> + <meta name="date" content="2024-04-13 22:02" /> + <meta name="category" content="blog" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="como-usar-o-cliente-de-xmpp-pidgin" /> + <meta name="summary" content="Como instalar e configurar o cliente de xmpp Pidgin" /> + <meta name="status" content="draft" /> + </head> + <body class="features"> + </body> +</html> diff --git a/content/articles/tutoriais/como-usar-o-cliente-de-xmpp-pidgin.html~ b/content/articles/tutoriais/como-usar-o-cliente-de-xmpp-pidgin.html~ new file mode 100644 index 0000000..3ced5f0 --- /dev/null +++ b/content/articles/tutoriais/como-usar-o-cliente-de-xmpp-pidgin.html~ @@ -0,0 +1,13 @@ +<html> + <head> + <title>Pidgin</title> + <meta name="tags" content="Brigada Digital" /> + <meta name="date" content="2024-04-13 22:02" /> + <meta name="category" content="blog" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="como-usar-o-cliente-de-xmpp-pidgin" /> + <meta name="summary" content="Como instalar e configurar o cliente de xmpp Pidgin" /> + </head> + <body class="features"> + </body> +</html> diff --git a/content/articles/tutoriais/gnupg.html b/content/articles/tutoriais/gnupg.html new file mode 100644 index 0000000..390d764 --- /dev/null +++ b/content/articles/tutoriais/gnupg.html @@ -0,0 +1,667 @@ +<html> + <head> + <title>GnuPG</title> + <meta name="tags" content="brigada digital, tutorial, software livre, sistemas, replicant, smartfone, tablet" /> + <meta name="date" content="2025-05-21 22:50" /> + <meta name="category" content="Tutoriais" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="gnupg" /> + <meta name="summary" content="Guia de utilização do sistema de criptografia de e-mail e arquivos GnuPG." /> + <meta name="status" content="draft" /> + </head> + <body class="features"> + <section class="indice"> + <h1>Índice</h1> + <ul> + <li><a href="#introducao">Introdução</a></li> + <li><a href="#instalacao">Instalação</a></li> + <li><a href="#operadoras-de-telefonia-movel">Operadoras de telefonia móvel</a></li> + <li><a href="#android-debug-bridge-adb">Android Debug Bridge (ADB)</a></li> + <li><a href="#backup-e-restauracao-da-particao-do-modem-efs">Backup e restauração da <br> partição do modem - EFS</a></li> + <li><a href="#tela-de-bloqueio">Tela de bloqueio</a></li> + <li><a href="#criptografia-do-sistema">Criptografia do sistema</a></li> + <li><a href="#wi-fi">Wi-Fi</a></li> + <li><a href="#tethering">Tethering</a></li> + <li><a href="#cartao-de-memoria">Cartão de memória</a></li> + <li><a href="#certificado-lets-encrypt">Certificado Let's Encrypt</a></li> + <li><a href="#aplicativos-indicados">Aplicativos indicados</a></li> + <li><a href="#backup">Backup</a></li> + <li><a href="#reset-de-fabrica-reset-factory">Reset de fábrica</a></li> + <li><a href="#futuro-do-replicant">Futuro do replicant</a></li> + <li><a href="#bibliografia">Bibliografia</a></li> + </ul> + </section> + <section class="features"> + <h1><a name="introducao"><a href="#introducao" title="Introdução">Introdução</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <figure class="image img"> + <img src="/images/tutoriais/gnupg-logo-light-purple-bg.png" + title="Logo do GnuPG" + alt="Logo do GnuPG" /> + <figcaption>Logo do GnuPG</figcaption> + </figure> + <p> + A tradução literal do <a href="https://replicant.us/">GnuPG</a> é Guarda de Privacidade GNU. O GnuPG é uma implementação completa e gratuita do padrão OpenPGP conforme definido pelo RFC4880 (também conhecido como PGP). O GnuPG permite criptografar e assinar seus dados e comunicações; possui um sistema de gerenciamento de chaves versátil, juntamente com módulos de acesso para todos os tipos de diretórios de chaves públicas. GnuPG, também conhecido como GPG, é uma ferramenta de linha de comando com recursos para fácil integração com outras aplicações. Uma riqueza de aplicações e bibliotecas frontend estão disponíveis. GnuPG também fornece suporte para S/MIME e Secure Shell (ssh). + </p> + <p> + Desde a sua introdução em 1997, GnuPG é Software Livre (significando que respeita a sua liberdade). Pode ser livremente usado, modificado e distribuído sob os termos da Licença Pública Geral GNU. + </p> + <p> + Usar criptografia ajuda a proteger suas informações, bem como das pessoas com quem você se comunica. A Criptografia torna difícil a atividade dos sistemas de vigilância em massa. GnuPG, por exemplo, é uma das ferramentas que Snowden usou para guardar documentos da NSA que comprovam as operações de vigilância em massa e de agentes políticos e, por fim, passar despercebido para fazer o vazamento. + </p> + </section> + <section class="features"> + <h1><a name="instalacao"><a href="#instalacao" title="Instalação">Instalação</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + GnuPG é manipulado através do terminal, mas possui muitas alternativas de frontend para ser usado por interface gráfica (janelas). Para instalar o GnuPG, siga os passos a seguir. + </p> + <p> + Gpg4win é uma versão do Windows do GnuPG com uma ferramenta de menu de contexto, um gerenciador de criptografia e um plugin do Outlook para enviar e receber emails PGP/MIME padrão. A versão atual do Gpg4win é 4.4.1. + </p> + <h2>Suíte</h2> + + </section> + <section class="features"> + <h1><a name="operadoras-de-telefonia-movel"><a href="#operadoras-de-telefonia-movel" title="Operadoras de telefonia móvel ">Operadoras de telefonia móvel</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + A primeira coisa que geralmente fazemos antes mesmo de ligar os dispositivos móveis é instalar o cartão eSim para acessar as redes operadas pelas empresas de comunicação de dispositivos móveis. Contudo, é importante salientar que essas redes são ruins, porque as operadoras podem rastrear seu dispositivo, obtendo sua localização aproximada, conexões de internet, escutar suas ligações, ler suas mensagens SMS, etc. Então, para evitar esses mecanismos de vigilância, não utilize chip eSIM de telefonia móvel e se comunique através da internet pelas redes Wi-Fi. + </p> + <p> + Caso necessite das chamadas telefônicas ou do acesso à internet móvel, leve em consideração esses problemas de segurança. É possível minimizá-los se comunicando pela internet trafegando pelas redes de anonimato como, por exemplo, i2p ou Tor, mantendo, assim, sua comunicação criptografada e oculta, protegida da vigilância da operadora. Orbot e Invizible Pro são aplicativos fáceis de configurar que direcionam todo o fluxo de internet do dispositivo para a rede de anonimato Tor. Fazendo com que os aplicativos de mensagens, voz e vídeo usem as redes de anonimato. + </p> + </section> + <section class="features"> + <h1><a name="android-debug-bridge-adb"><a href="#android-debug-bridge-adb" title="Android Debug Bridge ADB">Android Debug Bridge (ADB)</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + A primeira coisa a fazer quando se tem um Replicant é instalar o ADB no seu computador para poder manipular o dispositivo móvel. O ADB é um programa de linha de comando muito poderoso que conecta o desktop ao sistema do smartfone/tablets para realizar diversas operações como, por exemplo, configurar conexões de rede, empurrar e puxar arquivos, fazer backup, e etc, e será necessário para realizar tópicos importantes deste guia. + </p> + <p> + <i>Tenha cuidado ao executar qualquer operação com ADB, pois ele tem a capacidade de realizar alterações profundas no sistema que pode comprometer seu funcionamento.</i> + <p/> + <h2>Instalação do ADB</h2> + <p> + Para instalar o ADB no desktop, siga as instrução abaixo referentes ao seu sistema operacional. + </p> + <h3>Parabola e Hyperbola</h3> + <code> + pacman -S android-tools android-udev heimdall + </code> + <h3>Trisquel e PureOS</h3> + <code> + apt install android-tools-adb android-tools-fastboot heimdall-flash + </code> + <h3>GNU Guix</h3> + <code> + guix install adb heimdall fastboot mkbootimg + </code> + <h2>Acesso superusuário</h2> + <p> + Habilite o acesso a superusuário para aplicativos e ADB. + </p> + <code> + Configurações -> Opções do desenvolvedor -> Acesso superusuário -> Aplicativos e ADB + </code> + <h2>Depuração Android</h2> + <p> + Habilite a interface de Ponte de Depuração Android (adb): + </p> + <code> + Configurações -> Opções do desenvolvedor -> Depuração Android + </code> + <p> + Conecte o smartfone ao computador através de cabo microUSB/USB. Uma mensagem é exibida no smartfone pedindo permissão para ativar a depuração USB com o computador. Confirme. + </p> + <p> + Verifique se a conexão entre o Replicant e o desktop está ativa usando o terminal com o comando: + </p> + <code> + adb devices + </code> + <p> + Se estiver tudo correto, o terminal exibirá o <i>número serial</i> do smartfone seguido de <i>device</i>. + </p> + </section> + <section class="features"> + <h1><a name="backup-e-restauracao-da-particao-do-modem-efs"><a href="#backup-e-restauracao-da-particao-do-modem-efsb" title="Backup e restauracao da particao do modem efs">Backup e restauração da partição do modem efs</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Muitos dispositivos suportados pelo Replicant têm uma partição com os dados do modem (IMEI, etc) que é chamado de EFS. É uma boa ideia fazer um backup dessa partição para que você possa restaurá-la se algum arquivo se corromper, o que às vezes pode acontecer com o Replicant. Sem esse backup o modem torna-se inutilizável. + </p> + <p> + A operação de backup tem especificidades em relação aos diferentes modelos. Entre na página do projeto e siga as <a href="https://redmine.replicant.us/projects/replicant/wiki/BackupTheEFS">orientações sobre backup da partição EFS</a>, e, caso precise, as <a href="https://redmine.replicant.us/projects/replicant/wiki/RestoreEfsNvDataBackupFile">orientações de restauração</a>. + </p> + <p> + <i>É muito importante fazer esse backup, pois a possibilidade de corrupção de arquivos na partição EFS é real e sem uma cópia funcional dos arquivos para a devida correção o modem torna-se inutilizável.</i> + </p> + </section> + <section class="features"> + <h1><a name="tela-de-bloqueio"><a href="#tela-de-bloqueio" title="Tela de bloqueio">Tela de Bloqueio</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Para manter seguro o sistema e os arquivos de acesso físico não autorizado ao dispositivo é importante definir uma senha de bloqueio da tela. Para tanto, siga o caminho abaixo e as instruções do sistema. + </p> + <code> + Configurações -> Tela de bloqueio -> Bloqueio de tela + </code> + </section> + <section class="features"> + <h1><a name="criptografia-do-sistema"><a href="#criptografia-do-sistema" title="Criptografia do sistema">Criptografia do sistema</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O principal objetivo do Replicant é manter a segurança dos arquivos dos usuário. Então, criptografar seu dispositivo garante que ninguém com acesso físico consiga ler, escrever ou copiar seus arquivos. O Replicant suporta criptografar seu dispositivo, defendendo-o contra esses acessos não autorizados. A criptografaria é habilitada no caminho indicado abaixo. + </p> + <code> + Configurações -> Segurança -> Criptografar o Telefone + </code> + <p> + Siga as demais instruções do sistema. A bateria precisa estar com, pelo menos, 80% de carga e, além disso, carregando (plugado na fonte de energia e não na entrada USB do computador). A criptografia não deve ser interrompida para não danificar o sistema e nem perder os seus dados. + </p> + </section> + <section class="features"> + <h1><a name="wi-fi"><a href="#wi-fi" title="Wi-Fi">Wi-Fi</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O Wi-Fi interno dos dispositivos suportados pelo Replicant não funcionam com firmware livre. A solução, então, é adicionar um dongle Wi-Fi USB externo através da porta microUSB fêmea que suporte firmware livre. Os modelos de <a href="https://redmine.replicant.us/projects/replicant/wiki/WifiAdapter" title="Modelos Wi-Fi compatíveis com replicant">Wi-Fi com chip Qualcomm Atheros AR9271</a> funcionam bem com o firmware livre Atheros ath9k e são facilmente encontrados no mercado. Nós também <b>vendemos adaptadores compatíveis com Replicant e com Gnu/Linux-libre</b>. Se tiver interesse, entre em nossa <a href="/pages/equipamentos.html" name="pagina-equipamentos" title="Página de equipamentos produzidos pela Brigada Digital">página de equipamento e dispositivos</a> para mais informações. + </p> + <p> + Contudo, os smartfones e tablets dificilmente aguentam alimentar um dispositivo externo, ocasionando instabilidade e rápido consumo da bateria. Então a solução é conectar o dongle Wi-Fi através de um <i>Cabo Y (três plugues)</i> com pulgos USB fêmea, microUSB macho e microUSB fêmea (ou USB macho), e fornecer alimentação de energia ao dongle diretamente. + </p> + <p> + O processo é simples, plugamos o dongle Wi-Fi na entrada USB fêmea do Cabo Y; a fonte de alimentação externa na entrada microUSB fêmea; e, o smartfone/tablet na entrada microUSB macho. Depois, no Replicant, basta habilitar o Wi-Fi pelo menu suspenso ou nas configurações de Wi-Fi e escolher uma rede para se conectar. + </p> + </section> + <section class="features"> + <h1><a name="tethering"><a href="#tethering" title="tethering">Tethering</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p>Tethering é o compartilhamento de internet entre dispositivos através do Wi-Fi ou USB.</p> + <h2>Tethering Wi-Fi</h2> + <p>A configuração do compartilhamento da internet do Replicant para outros dispositivos através do Wi-Fi é realizada no caminho a seguir. Lembre-se de conectar o dongle USB Wi-Fi.</p> + <code> + Configurações -> Mais -> Tethering de acesso portátil -> Configurar ponto de acesso Wi-Fi + </code> + <p> + Depois de configurar o tethering Wi-Fi, habilite-o no caminho a seguir. + </p> + <code> + Configurações -> Mais -> Tethering de acesso portátil -> Ponto de acesso Wi-Fi portátil + </code> + <h2>Tethering USB</h2> + <p>O compartilhamento da internet do Replicant via USB para outro dispositivos é realizada no caminho a seguir.</p> + <code> + Configurações -> Mais -> Tethering de acesso portátil -> Vínculo USB + </code> + <h2>Tethering USB Reverso</h2> + <p> + É o compartilhamento da internet do computador desktop para o Replicant. Nesse caso, é necessário fazer algumas operações pelo ADB para para enviar o script que cria a rede no Replicant e criar a rede no computador desktop + </p> + <p> + Primeiramente, instale o wget. + </p> + <code> + apt install wget + </code> + <p> + Faça o download do script do Replicant. + </p> + <code> + wget https://git.replicant.us/replicant/vendor_replicant-scripts/plain/networking/usb/usb_networking_device.sh + </code> + <p> + Edite o script para ajustar o serviço de DNS primário e secundário. + </p> + <code> + nano usb_networking_device.sh + </code> + <p> + Altere o valor de DNS1 para 10.42.0.1 e DNS2 para 10.42.1.1. + </p> + <p>DNS1 devem ficar assim:</p> + <code> + DNS1="10.42.0.1" + </code> + <p> e DNS2 assim:</p> + <code> + DNS2="10.42.1.1" + </code> + <p> + Agora inicie o adb como root. + </p> + <code> + adb root + </code> + <p> + Empurre o script <i>usb_networking_device.sh</i> para <i>/data</i>. + </p> + <code> + adb push usb_networking_device.sh /data/ + </code> + <p> + Altere sua propriedade para execução. + </p> + <code> + adb shell "chmod a+x /data/usb_networking_device.sh" + </code> + <p> + Inicie a primeira etapa da conexão de tethering reverso. + </p> + <code> + adb shell "/data/usb_networking_device.sh start1" + </code> + <p> + Configure uma conexão ethernet (ou wired) no computador de mesa com o dispositivo móvel conectado na porta usb (Geralmente esse passo é acessível pelo applet do Network Manager da barra de ferramentas). + </p> + <ol> + <li>No applet do Network Manager, crie uma nova conexão "Ethernet" ou "Wired"</li> + <li>Na aba para configurações IPv4, selecione o método "Compartilhado com outros computadores"</li> + <li>Salve a conexão com um nome distinguível como, por exemplo, "Replicant USB Reverso"</li> + <li>Na aba Ethernet, selecione a conexão para o dispositivo ethernet (eno ou enp3s0)</li> + <li>Agora execute a segunda etapa do script de criação do tethering reverso</li> + </ol> + <code> + adb shell "/data/usb_networking_device.sh start2" + </code> + <p> + Para desconectar o Replicant e o computador. + </p> + <code> + adb shell "/data/usb_networking_device.sh stop" + </code> + </section> + <section class="features"> + <h1><a name="cartao-de-memoria"><a href="#cartao-de-memoria" title="cartao-de-memoria">Cartão de Memória</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Os modelos suportados pelo Replicant geralmente possuem pouca memória interna de armazenamento, trazendo a necessidade expansão através de cartão SD, que pode ser de até 64GB. A expansão pode ser configurada para armazenamento portátil ou armazenamento interno. O armazenamento portátil geralmente é utilizado para transferência de arquivos entre dispositivos como, por exemplo, fotos e músicas. Já a configuração como armazenamento intento possibilita que as aplicações utilizem o cartão SD para armazenar arquivos. Isso aumenta a capacidade de armazenamento, mas o cartão só funcionará no equipamento. + </p> + <p> É possível instalar alguns aplicativos no cartão de memória quando configurado como armazenamento interno. Contudo, <i>a instalação de aplicativos no cartão SD, eventualmente causa instabilidade gerando reinicializações e, eventualmente, corrupção do sistema e reinicializações em loop</i>. Então, <b>não faça a instalação de aplicativos no cartão SD</b>. + </p> + </section> + <section class="features"> + <h1><a name="certificado-lets-encrypt"><a href="#certificado-lets-encrypt" title="Certificao Let's Encrypt">Certificado Let's Encrypt</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + A autoridade certificadora <a href="https://letsencrypt.org/">Let's Encrypt</a>, muito utilizada nas aplicações de internet, pois gera certificados gratuitamente, atualizou seu certificado logo após o lançamento do Replicant versão 6.0004. Então, o Replicant reclama da confiabilidade de seus certificados. Para resolver essa questão, é necessário inserir manualmente o certificado atualizado. Basta seguir o <a href="https://www.stoutner.com/lets-encrypt-isrg-root-x1-and-privacy-browser/" target="_blank" title="Tutorial para inserir o certificado atualizado Let's Encrypt no Replicant 6.0004">tutorial do Navegador Privado para resolver essa questão</a>. + </p> + </section> + <section class="features"> + <h1><a name="aplicativos-indicados"><a href="#aplicativos-indicados" title="Aplicativos indicados">Aplicativos indicados</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O Replicant removeu a loja de aplicativos do F-Droid, porque o repositório não segue as <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.pt-br.html" target="_blank" title="Diretrizes para Distribuições de Sistemas Livres (FSDG)">Diretrizes para Distribuições de Sistemas Livres (FSDG) do Projeto GNU</a>. Então, fizemos uma lista de aplicativos livres (<a href="https://www.gnu.org/licenses/gpl-3.0.html" target="_blank" title="GNU General Public License v3.0">GNU General Public License v3.0</a>) úteis que podem ser baixados diretamente do repositório e instalados. + </p> + <table> + <tr> + <th style="text-align: left">Aplicativo</th><th style="text-align: left">Descrição</th> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/anupam.acrylic/" target="_blank" title="Link download Acrylic Paint">Acrylic Paint</a></td> + <td>Pintura simples com o dedo</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.beemdevelopment.aegis/" target="_blank" title="Link download Aegis Authenticator">Aegis Authenticator</a></td> + <td>Gerenciador de autenticação de 2 fatores - 2FA</td> + </tr> + <tr> + <td><a href="https://f-droid.org/en/packages/com.tughi.aggregator/" target="_blank" title="Link download Aggregator">Aggregator</a></td> + <td>Simples e flexível leitor de notícias</td> + </tr> + <tr> + <td><a href="https://f-droid.org/packages/de.danoeh.antennapod/" target="_blank" title="Link AntennaPod">AntennaPod</a></td> + <td>Um player de podcasts fácil de usar, flexível e de código aberto</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/ltd.evilcorp.atox/" target="_blank" title="Link aTox">aTox</a></td> + <td>Cliente de mensagens privada p2p</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.gaurav.avnc/" target="_blank" title="Link download AVNC">AVNC</a></td> + <td>Cliente VNC rápido e seguro</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/de.markusfisch.android.binaryeye/" target="_blank" title="Link Binary Eye">Binary Eye</a></td> + <td>Mais um leitor de código de barras</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.briarproject.briar.android/" target="_blank" title="Link Briar">Briar</a></td> + <td>Aplicativo de mensagens p2p destinado para ativistas, jornalistas e pessoas que precisam de segurança</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/corewala.gemini.buran/" target="_blank" title="Link Buran">Buran</a></td> + <td>Navegador simples para o protocolo Gemini</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.github.axet.callrecorder/" target="_blank" title="Link Call Recorder">Call Recorder</a></td> + <td>Gravador de chamadas simples, sem anúncios, código aberto</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.connectbot/" target="_blank" title="Link ConnectBot">ConnectBot</a></td> + <td>Cliente SSH e Telnet e emulador de terminal para shell local</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/eu.siacs.conversations/" target="_blank" title="Link Conversations">Conversations</a></td> + <td>Cliente de XMPP fácil de usar com suporte a criptografia Omemo e OpenPGP.</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.github.cythara/" target="_blank" title="Link Cythara">Cythara</a></td> + <td>Afinador de instrumentos musicais</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/at.bitfire.davdroid/" target="_blank" title="Link DAVx⁵">DAVx⁵</a></td> + <td>Sincronização e Cliente CalDAV/CardDAV</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.decsync.cc/" target="_blank" title="Link DecSync CC">DecSync CC</a></td> + <td>Sincronização de contatos, calendários e tarefas sem um servidor</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.tachibana.downloader/" target="_blank" title="Link Download Navi">Download Navi</a></td> + <td>Download Navi é um gerenciador de download</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/ru.nsu.bobrofon.easysshfs/" target="_blank" title="Link EasySSHFS">EasySSHFS</a></td> + <td>Sistema de arquivos e cliente SSH</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.gnu.emacs/" target="_blank" title="Link Emacs">Emacs</a></td> + <td>Editor de texto avançado, extensível e autodocumentado, muito utilizado por programadores</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/eu.toldi.infinityforlemmy/" target="_blank" title="Link Eternity">Eternity</a></td> + <td>Cliente para a rede Federada Lemmy com suporte ao protocolo ActivityPub, fork do Infinity para Reddit</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.purplei2p.i2pd/" target="_blank" title="Link Eternity">I2pd</a></td> + <td>Implementação completa do cliente I2P em C++</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.joinmastodon.android/" target="_blank" title="Link Mastodon">Mastodon</a></td> + <td>Rede social descentralizada</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.nononsenseapps.feeder/" target="_blank" title="Link Feeder">Feeder</a></td> + <td>Um fantástico leitor de RSS Feed</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/de.qwerty287.ftpclient/" target="_blank" title="Link FTPClient">FTPClient</a></td> + <td>Cliente FTP, FTPS e SFTP</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/net.slions.fulguris.full.fdroid/" target="_blank" title="Link Fulguris">Fulguris</a></td> + <td>Cliente FTP, FTPS e SFTP</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/de.kaffeemitkoffein.imagepipe/" target="_blank" title="Link Image Pipe">Image Pipe</a></td> + <td>remove os dados exif e reduz o tamanho de imagens antes de compartilhá-las</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/cx.ring/" target="_blank" title="Link Jami">Jami</a></td> + <td>Aplicativo p2p multiplataforma de mensageria, ligação audiovisual, conferência e grupos do Projeto GNU</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/at.techbee.jtx/" target="_blank" title="Link Jtx">Jtx</a></td> + <td>Diário, notas e tarefas caldav sincronizados através do aplicativo DAVx⁵</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.fsck.k9/" target="_blank" title="Link K9 Mail">K9 Mail</a></td> + <td>Cliente de e-mail cheio de funcionalidades</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/net.stargw.fok/" target="_blank" title="Link Karma Firewall">Karma Firewall</a></td> + <td>Bloqueia aplicativos de acesso a internet</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.kunzisoft.keepass.libre/" target="_blank" title="Link KeepassDX">KeePassDX - FOSS Password Safe</a></td> + <td>Gerenciador de password keepass</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.documentfoundation.libreoffice//" target="_blank" title="Link LibreOffice Viewer">LibreOffice Viewer </a></td> + <td>Visualizador de documentos</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.foobnix.pro.pdf.reader/" target="_blank" title="Link Librera Reader">Librera Reader</a></td> + <td>Leitor de livros e PDF</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.github.libretube/" target="_blank" title="Link Libretube">Libretube</a></td> + <td>Alternativa frontend para Youtube com piped</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/se.manyver/" target="_blank" title="Link Manyverse">Manyverse</a></td> + <td>Uma rede social p2p fora da grade, pautada scuttlebutt</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/net.gsantner.markor/" target="_blank" title="Link Markor">Markor</a></td> + <td>Editor de texto - notas e tarefas -, leve de markdown e tarefas.txt</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/moe.matsuri.lite/" target="_blank" title="Link Markor">Matsuri</a></td> + <td>Proxy</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.manichord.mgit/" target="_blank" title="Link MGit">MGit</a></td> + <td>Visualizar e interagir com repositórios git</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.joinmastodon.android.moshinda/" target="_blank" title="Link para Moshidon">Moshidon</a></td> + <td>Mastodon para Android mas é Material You e tem mais recursos</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/se.lublin.mumla/" target="_blank" title="Link Mumla">Mumla</a></td> + <td>Chat de voz para servidores Mumble</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.artifex.mupdf.viewer.app/" target="_blank" title="Link MuPDF viewer">MuPDF viewer</a></td> + <td> Visualizador de documentos leve</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.stoutner.privacybrowser.standard/" target="_blank" title="Link Navegador Privado">Navegador Privado</a></td> + <td>Um navegador da web que respeita sua privacidade</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.schabi.newpipe/" target="_blank" title="Link Navegador Newpipe">Front-end leve do Youtube</a></td> + <td>Um navegador da web que respeita sua privacidade</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/eu.faircode.netguard/" target="_blank" title="Link NetGuard">NetGuard</a></td> + <td>Uma maneira simples de bloquear o acesso à internet por aplicação</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/at.bitfire.nophonespam/" target="_blank" title="Link NoPhoneSpam">NoPhoneSpam</a></td> + <td>Bloquear chamadas indesejadas</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/io.heckel.ntfy/" target="_blank" title="Link ntfy">ntfy</a></td> + <td>Enviar notificações ao telefone via qualquer script usando requisições PUT/POST</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/io.github.subhamtyagi.ocr/" target="_blank" title="Link OCR (ROC)">OCR (ROC)</a></td> + <td>Uma aplicação de reconhecimento de caracteres (OCR) baseada em Tesseract que reconhece textos em imagens</td> + </tr> + <tr> + <td><a href="https://apt.izzysoft.de/fdroid/index/apk/dk.jens.backup?repo=archive" target="_blank" title="Link oandbackup">oandbackup</a></td> + <td>Faça backups de apps selecionados e restaure</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.sufficientlysecure.keychain/" target="_blank" title="Link OpenKeychain: Easy PGP">OpenKeychain: Easy PGP</a></td> + <td> Criptografar os ficheiros e Comunicações. Compatível com o padrão OpenPGP</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.todobom.opennotescanner/" target="_blank" title="Link Open Note Scanner">Open Note Scanner</a></td> + <td>Digitalizar documentos, notas manuscritas ou artes</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/app.organicmaps/" target="_blank" title="Link Organic Maps">Organic Maps: Mapas Offline e Navegador GPS</a></td> + <td>Mapas colaborativos de software livre para turistas, ciclistas e caminhantes</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/app.pachli/" target="_blank" title="Link Pachli for Mastodon">Pachli for Mastodon</a></td> + <td>Um cliente Android completo para Mastodon e servidores semelhantes</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.catrobat.paintroid/" target="_blank" title="Link Pocket Paint">Pocket Paint</a></td> + <td>Paint avançada</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/io.mrarm.irc/" target="_blank" title="Link Revolution IRC">Revolution IRC</a></td> + <td>O cliente IRC de última geração</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.gnosco.share2archivetoday/" target="_blank" title="Link Share 2 Archive Today">Share 2 Archive Today</a></td> + <td>Compartilhamento de URL com Archive.today e Archive.Is. Para acessar o conteúdo de sites com bloqueio ao Tor ou a navegação sem javascript</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.wbrawner.simplemarkdown.free/" target="_blank" title="Link SimpleMarkdown">SimpleMarkdown</a></td> + <td>A simple markdown editor</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.maxistar.textpad/" target="_blank" title="Link SimpleTextEditor">SimpleTextEditor</a></td> + <td>Simple Text Editor</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/juloo.keyboard2/" target="_blank" title="Link Teclado Unexpected">Teclado Unexpected</a></td> + <td>Um teclado virtual leve para desenvolvedores</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.termoneplus/" target="_blank" title="Link Terminal Emulator">Terminal Emulator</a></td> + <td>Transforme seu aparelho num terminal de computador</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/net.schueller.peertube/" target="_blank" title="Link Thorium, um cliente PeerTube">Thorium, um cliente PeerTube</a</td> + <td>Um leitor do PeerTube</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/ru.yourok.torrserve/" target="_blank" title="Link TorrServe">TorrServe</a></td> + <td>Download torrent files</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.bnyro.translate/" target="_blank" title="Link Translate You">Translate You</a></td> + <td>Tradutor com foco em privacidade</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/app.fedilab.nitterizemelite/" target="_blank" title="Link UntrackMe Lite">UntrackMe Lite</a></td> + <td>Redirecione links do Youtube, Twitter e Instagram para Front-end livres</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.videolan.vlc/" target="_blank" title="Link VLC">VLC</a></td> + <td>VLC para Android é o melhor leitor de vídeo e música open source, fácil e rápido</td> + </tr> + </table> + </section> + <section class="features"> + <h1><a name="backup"><a href="#backup" title="Backup">Backup</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Aconselhamos criar periodicamente cópias de segurança criptografadas dos dados armazenados no sistema para restaurá-los caso ocorra problema. Podem ser salvos dados de apps do sistema ou instalados de fontes externas (/system/data e /data/app), arquivos internos (/data/data) e do cartão SD (/storage/emulated). O procedimento pode ser realizado através de apps especializados em backup como, por exemplo, <b>oandbackup</b>, ou pelo programa de desktop <b>Android Debug Bridge (adb)</b>. + </p> + <h2>oandbackup</h2> + <p> + O oandbackup é um aplicativo de backup rico em recursos como, por exemplo, criptografia através do app <i>openkeychain</i>, backup programado, etc. Para fazer o backup. + </p> + <code> + oandbackup -> Backup em lote -> Dados e Apkk + </code> + <p> + Marcar os apps para backup. + </p> + <code> + oandbackup -> Backup em lote -> Marcar Tudo + </code> + <p> + Executar o backup. + </p> + <code> + oandbackup -> Backup em lote -> Backup + </code> + <h2>Backup pelo ADB</h2> + <h2>Configurações para ADB</h2> + <h4>Senha de criptografia para o backup</h4> + <p> + Defina uma senha de segurança para criptografar o backup: + </p> + <code> + Configurações -> Opções do desenvolvedor -> Senha do backup local + </code> + <h3>Backup dos dados de apps e arquivos</h3> + <p> + A sintaxe do comando de backup é a seguinte: + </p> + <code> + adb backup [-f file] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [packages...] + </code> + <p> + -f cria o arquivo de backup + </p> + <p> + -apk|-noapk habilita/desabilita o backup de aplicativos (padrão é -noapk) + </p> + <p> + -obb|-noobb habilita/desabilita o backup de arquivos associados aos apps (padrão é -noob b) + </p> + <p> + -shared|-noshared habilita/desabilita o backup de arquivos do cartão SD (padrão é -noshared) + </p> + <p> + -all faz o backup de todos os aplicativos instalados, incluindo aplicações do sistema. + </p> + <p> + -system|-nosystem incluir ou não aplicações de sistema. + </p> + <p> + Para fazer o backup de todos os aplicativos (apk) do sistema e instalados de fontes externas com seus respectivos dados e configurações (obb), execute o seguinte comando: + </p> + <code> + # adb backup -f 2025.03.23-apps-backup-replicant-6.0004-n7100.adb -apk -obb -all + </code> + <p> + Quando executar o comando uma janela será aberta no Replicant pedindo a <i>senha de backup atual</i> que configuramos anteriormente. Insira a senha e selecione o botão <i>Fazer backup de meus dados</i>. O progresso do backup será exibido na parte inferior da tela do Replicant. Quando o backup terminar a janela de backup no Replicant será fechada e o terminal no desktop será desbloqueado. + </p> + <h3>Restauração do backup</h3> + <p> + A restauração dos dados só é compatível com a mesma versão do Replicant e modelo do dispositivo que o backup foi realizado. + </p> + <p> + Para restaurar o backup, esteja com a etapas de configuração do ADB satisfeitas e execute o comando no terminal: + </p> + <code> + adb restore file.adb + </code> + </section> + <section class="features"> + <h1><a name="reset-de-fabrica-reset-factory"><a href="#reset-de-fabrica-reset-factory" title="Reset de fabrica (reset factory)">Reset de fabrica (reset factory)</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Pode ser desejável resetar o aparelho para as configurações iniciais do Replicant, também conhecido como reset de fábrica (reset factory). Essa operação poder ser feita através do programa de configuração ou pelo programa de recuperação. + </p> + <h2>Reset pelo programa de Configuração</h2> + <p> + Execute o programa de redefinição e backup. Não é possível fazer o backup dos dados e restaurá-lo pelo respectivo programa se o dispositivo estiver criptografado. Mas é possível recuperar os dados após a redefinição de fábrica pelos meios abordados na seção <i>Backup</i>. + </p> + <code> + Configurações -> Fazer backup e redefinir + </code> + <h2>Reset pelo programa de recuperação (recovery)</h2> + <p> + Desligue o aparelho sem cabo de usb ou alimentação. Após, com o aparelho desligado, pressionar simultaneamente os botões de volume + início + power, fazendo o aparelho inicializar no modo de recuperação (recovery). Selecione Redefinição completa de fábrica. Ele solicitará que você confirme a redefinição, portanto, você precisará selecionar Sim para confirmá-la. + </p> + <code> + Factory reset -> Full factory reset + </code> + <p> + Pressione a tecla Voltar para voltar ao menu principal de recuperação e, em seguida, reinicie o sistema. + </p> + </section> + <section class="features"> + <h1><a name="futuro-do-replicant"><a href="#futuro-do-replicant" title="Futuro do Replicant">Futuro do Replicant</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Recentemente o projeto declarou que vai abandonar o Android e os dispositivos Samsung porque a indústria dos dispositivos móveis vem dificultando cada vez mais o desenvolvimento de suporte livre para a base Android. Os atuais modelos serão abandonado e o port para a versão 11 do Android foi suspensa. O projeto começou a debater migrar sua base para o <a href="https://redmine.replicant.us/projects/replicant/wiki/AddSupportForThePinephone">Pinephone</a>. Esse sistema é um GNU/Linux para dispositivos móveis que suporta aplicativos Android por meio do emulador de Android <a href="https://glodroid.github.io/">GLoDroid</a>. Atualmente o GLoDroid emula o Android 12 baseado na versão AOSP. Também existe um debate sobre <a href="https://blog.replicant.us/2025/05/future-of-ngi-funding/">fontes de financiamento disponíveis na União Europeia</a>. + </p> + </section> + <section class="features"> + <h1><a name="bibliografia"><a href="#bibliografia" title="Bibliografia">Bibliografia</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <ul> + <li>Página do projeto Replicant - <a href="https://replicant.us/" name="site-do-projeto-replicant" title="Site do projeto Replicant">https://replicant.us</a></li> + <li>Certificação da Fundação de Software Livre (FSF) - <a href="https://www.gnu.org/distros/free-non-gnu-distros.html" name="certificacao-fsf" title="Certificação FSF - Distribuições Não-GNU Livres">https://www.gnu.org/distros/free-non-gnu-distros.html</a></li> + <li>Fundação de Software Livre - <a href="https://www.fsf.org/" name="free-software-fundation" title="Site da Fundação de Software Livre - FSF">https://www.fsf.org/</a></li> + <li>Dispositivos suportados - <a href="https://replicant.us/supported-devices.php" name="site-do-projeto-replicant" title="Página de dispositivos suportados pelo Replicant">https://replicant.us/supported-devices.php</a></li> + <li>Instalação - <a href="https://redmine.replicant.us/projects/replicant/wiki/Installation" name="instalacao-replicant" title="Página de instalação do Replicant">https://redmine.replicant.us/projects/replicant/wiki/Installation</a></li> + <li>Instalação do Android Debug Bridge (ADB) - <a href="https://redmine.replicant.us/projects/replicant/wiki/ToolsInstallation" name="replicant-adb" title="Página de instalação das ferramentas Gnu/Linux utilizadas pelo Replicant">https://redmine.replicant.us/projects/replicant/wiki/ToolsInstallation</a></li> + <li>Configuração do Android Debug Bridge (ADB) - <a href="https://redmine.replicant.us/projects/replicant/wiki/ADB" name="configuracao-adb" title="Página de configuração do ADB"></a></li> + <li>Adaptador Wi-Fi USB - <a href="https://redmine.replicant.us/projects/replicant/wiki/WifiAdapter" name="tethering-usb-reverso" title="Página de configuração do tethering usb reverso">https://redmine.replicant.us/projects/replicant/wiki/WifiAdapter</a></li> + <li>Tethering usb reverso - <a href="https://redmine.replicant.us/projects/replicant/wiki/USBNetworking" name="tethering-usb-reverso" title="Página de configuração do tethering usb reverso">https://redmine.replicant.us/projects/replicant/wiki/USBNetworking</a></li> + <li>Backup da partição do modem (EFS) - <a href="https://redmine.replicant.us/projects/replicant/wiki/BackupTheEFS" name="backup-particao-modem-efs" title="Página de guia para backup da partição de modem - EFS">https://redmine.replicant.us/projects/replicant/wiki/BackupTheEFS</a></li> + <li>Restauração da partição do modem (EFS) - <a href="https://redmine.replicant.us/projects/replicant/wiki/RestoreEfsNvDataBackupFile" name="restauracao-particao-modem-efs" title="Página de guia para a restauração do backup da partição de modem - EFS">https://redmine.replicant.us/projects/replicant/wiki/RestoreEfsNvDataBackupFile</a></li> + <li>Futuro do Replicant com o Pinephone I - <a href="https://blog.replicant.us/2024/03/replicant-status-and-report-of-the-37c3-and-fosdem-2024-conferences/" name="futuro-do-replicant" title="Futuro do Replicant - fontes de financiamento, base de desenvolvimento e dispositivos suportados">https://blog.replicant.us/2024/03/replicant-status-and-report-of-the-37c3-and-fosdem-2024-conferences/</a></li> + <li>Futuro do Replicant como o Pinephone II - <a href="https://blog.replicant.us/2025/05/future-of-ngi-funding/" name="futuro-do-replicant" title="Futuro do Replicant - fontes de financiamento, base de desenvolvimento e dispositivos suportados">https://blog.replicant.us/2025/05/future-of-ngi-funding/</a></li> + </ul> + </section> + </body> +</html> diff --git a/content/articles/tutoriais/gnupg.html~ b/content/articles/tutoriais/gnupg.html~ new file mode 100644 index 0000000..5999d9f --- /dev/null +++ b/content/articles/tutoriais/gnupg.html~ @@ -0,0 +1,665 @@ +<html> + <head> + <title>Replicant</title> + <meta name="tags" content="brigada digital, tutorial, software livre, sistemas, replicant, smartfone, tablet" /> + <meta name="date" content="2025-05-18 22:50" /> + <meta name="category" content="Tutoriais" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="replicant" /> + <meta name="summary" content="Guia de utilização do sistema operacional livre para dispositivos móveis Replicant Android." /> + <meta name="status" content="published" /> + </head> + <body class="features"> + <section class="indice"> + <h1>Índice</h1> + <ul> + <li><a href="#introducao">Introdução</a></li> + <li><a href="#instalacao">Instalação</a></li> + <li><a href="#operadoras-de-telefonia-movel">Operadoras de telefonia móvel</a></li> + <li><a href="#android-debug-bridge-adb">Android Debug Bridge (ADB)</a></li> + <li><a href="#backup-e-restauracao-da-particao-do-modem-efs">Backup e restauração da <br> partição do modem - EFS</a></li> + <li><a href="#tela-de-bloqueio">Tela de bloqueio</a></li> + <li><a href="#criptografia-do-sistema">Criptografia do sistema</a></li> + <li><a href="#wi-fi">Wi-Fi</a></li> + <li><a href="#tethering">Tethering</a></li> + <li><a href="#cartao-de-memoria">Cartão de memória</a></li> + <li><a href="#certificado-lets-encrypt">Certificado Let's Encrypt</a></li> + <li><a href="#aplicativos-indicados">Aplicativos indicados</a></li> + <li><a href="#backup">Backup</a></li> + <li><a href="#reset-de-fabrica-reset-factory">Reset de fábrica</a></li> + <li><a href="#futuro-do-replicant">Futuro do replicant</a></li> + <li><a href="#bibliografia">Bibliografia</a></li> + </ul> + </section> + <section class="features"> + <h1><a name="introducao"><a href="#introducao" title="Introdução">Introdução</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <figure class="image img"> + <img src="/images/sistemas/replicant.png" + title="Logo da distribuição livre Replicant do sistema operacional Android" + alt="Imagem do logo do Projeto Replicant" /> + <figcaption>Logo do Projeto Replicant</figcaption> + </figure> + <p> + O <a href="https://replicant.us/">Replicant</a> é uma distribuição Android auditada e certificada pela <a href="https://www.fsf.org/">Fundação de Software Livre</a>. Isso significa que o Replicant é uma versão do Android, sistema operacional dedicado a dispositivos móveis, composta exclusivamente por software livre. Todos os programas proprietários, firmwares e aplicativos, foram removidos ou substituídos por versões livres. Seu desenvolvimento é realizado pela comunidade hacker de software livre, que possibilita o compartilhamento de tecnologias e maior segurança, pois as licenças livres garantem a liberdade de executar, consultar, modificar e distribuir cópias dos programas. + </p> + <p> + As barreiras de controle proprietário, capitalista, dificultam o desenvolvimento. Por isso, o Replicant suporta apenas alguns <a href="https://replicant.us/supported-devices.php">modelos de smartfones e tabletes</a> e, dependendo do modelo, determinados dispositivos internos como Wi-Fi, câmera, gps e etc, podem não funcionar. Então, é preciso estar firme no propósito de emancipação da classe trabalhadora, porque usar o Replicant exige abrir mão deles. Mas os benefícios são muito maiores que os sacrifícios, visto que o Replicant é o único sistema operacional para dispositivos móveis sem controles proprietários. + </p> + </section> + <section class="features"> + <h1><a name="instalacao"><a href="#instalacao" title="Instalação">Instalação</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O processo de instalação do Replicant não é muito complicando, mas exige atenção para não fazer seu dispositivo ficar inutilizável. Não está no escopo desse guia cobrir a instalação, mesmo porque ela muda de acordo com o modelo do dispositivo a ser instalado. Se você quiser fazer a instalação, tenha em mente a <a href="https://replicant.us/supported-devices.php">lista de modelos suportados</a> e o <a href="https://redmine.replicant.us/projects/replicant/wiki#Replicant-installation-and-update">manual de instalação do projeto</a>. <b>Caso queira, podemos fazer a instalação para você, enquanto nos ajuda a manter as atividades da Brigada</b>. Entre em nossa <a href="/pages/equipamentos.html" name="pagina-equipamentos" title="Página de equipamentos produzidos pela Brigada Digital">página de equipamento</a> e veja como pedir um dispositivo com Replicant. + </p> + <figure class="image img"> + <img src="/images/equipamentos/note2-s3-replicant.png" + title="Samgung Galaxy Note 2 N7100 e Samsung Galaxy S3 I9300" + alt="Imagem de dois smartfones à esquerda Samsung Galaxy Note 2 N7100 e à direita Samsung Galaxy S3 I9300" /> + <figcaption>Samsung Galaxy Note 2 N7100 e Samsung Galaxy S3 I9300</figcaption> + </figure> + </section> + <section class="features"> + <h1><a name="operadoras-de-telefonia-movel"><a href="#operadoras-de-telefonia-movel" title="Operadoras de telefonia móvel ">Operadoras de telefonia móvel</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + A primeira coisa que geralmente fazemos antes mesmo de ligar os dispositivos móveis é instalar o cartão eSim para acessar as redes operadas pelas empresas de comunicação de dispositivos móveis. Contudo, é importante salientar que essas redes são ruins, porque as operadoras podem rastrear seu dispositivo, obtendo sua localização aproximada, conexões de internet, escutar suas ligações, ler suas mensagens SMS, etc. Então, para evitar esses mecanismos de vigilância, não utilize chip eSIM de telefonia móvel e se comunique através da internet pelas redes Wi-Fi. + </p> + <p> + Caso necessite das chamadas telefônicas ou do acesso à internet móvel, leve em consideração esses problemas de segurança. É possível minimizá-los se comunicando pela internet trafegando pelas redes de anonimato como, por exemplo, i2p ou Tor, mantendo, assim, sua comunicação criptografada e oculta, protegida da vigilância da operadora. Orbot e Invizible Pro são aplicativos fáceis de configurar que direcionam todo o fluxo de internet do dispositivo para a rede de anonimato Tor. Fazendo com que os aplicativos de mensagens, voz e vídeo usem as redes de anonimato. + </p> + </section> + <section class="features"> + <h1><a name="android-debug-bridge-adb"><a href="#android-debug-bridge-adb" title="Android Debug Bridge ADB">Android Debug Bridge (ADB)</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + A primeira coisa a fazer quando se tem um Replicant é instalar o ADB no seu computador para poder manipular o dispositivo móvel. O ADB é um programa de linha de comando muito poderoso que conecta o desktop ao sistema do smartfone/tablets para realizar diversas operações como, por exemplo, configurar conexões de rede, empurrar e puxar arquivos, fazer backup, e etc, e será necessário para realizar tópicos importantes deste guia. + </p> + <p> + <i>Tenha cuidado ao executar qualquer operação com ADB, pois ele tem a capacidade de realizar alterações profundas no sistema que pode comprometer seu funcionamento.</i> + <p/> + <h2>Instalação do ADB</h2> + <p> + Para instalar o ADB no desktop, siga as instrução abaixo referentes ao seu sistema operacional. + </p> + <h3>Parabola e Hyperbola</h3> + <code> + pacman -S android-tools android-udev heimdall + </code> + <h3>Trisquel e PureOS</h3> + <code> + apt install android-tools-adb android-tools-fastboot heimdall-flash + </code> + <h3>GNU Guix</h3> + <code> + guix install adb heimdall fastboot mkbootimg + </code> + <h2>Acesso superusuário</h2> + <p> + Habilite o acesso a superusuário para aplicativos e ADB. + </p> + <code> + Configurações -> Opções do desenvolvedor -> Acesso superusuário -> Aplicativos e ADB + </code> + <h2>Depuração Android</h2> + <p> + Habilite a interface de Ponte de Depuração Android (adb): + </p> + <code> + Configurações -> Opções do desenvolvedor -> Depuração Android + </code> + <p> + Conecte o smartfone ao computador através de cabo microUSB/USB. Uma mensagem é exibida no smartfone pedindo permissão para ativar a depuração USB com o computador. Confirme. + </p> + <p> + Verifique se a conexão entre o Replicant e o desktop está ativa usando o terminal com o comando: + </p> + <code> + adb devices + </code> + <p> + Se estiver tudo correto, o terminal exibirá o <i>número serial</i> do smartfone seguido de <i>device</i>. + </p> + </section> + <section class="features"> + <h1><a name="backup-e-restauracao-da-particao-do-modem-efs"><a href="#backup-e-restauracao-da-particao-do-modem-efsb" title="Backup e restauracao da particao do modem efs">Backup e restauração da partição do modem efs</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Muitos dispositivos suportados pelo Replicant têm uma partição com os dados do modem (IMEI, etc) que é chamado de EFS. É uma boa ideia fazer um backup dessa partição para que você possa restaurá-la se algum arquivo se corromper, o que às vezes pode acontecer com o Replicant. Sem esse backup o modem torna-se inutilizável. + </p> + <p> + A operação de backup tem especificidades em relação aos diferentes modelos. Entre na página do projeto e siga as <a href="https://redmine.replicant.us/projects/replicant/wiki/BackupTheEFS">orientações sobre backup da partição EFS</a>, e, caso precise, as <a href="https://redmine.replicant.us/projects/replicant/wiki/RestoreEfsNvDataBackupFile">orientações de restauração</a>. + </p> + <p> + <i>É muito importante fazer esse backup, pois a possibilidade de corrupção de arquivos na partição EFS é real e sem uma cópia funcional dos arquivos para a devida correção o modem torna-se inutilizável.</i> + </p> + </section> + <section class="features"> + <h1><a name="tela-de-bloqueio"><a href="#tela-de-bloqueio" title="Tela de bloqueio">Tela de Bloqueio</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Para manter seguro o sistema e os arquivos de acesso físico não autorizado ao dispositivo é importante definir uma senha de bloqueio da tela. Para tanto, siga o caminho abaixo e as instruções do sistema. + </p> + <code> + Configurações -> Tela de bloqueio -> Bloqueio de tela + </code> + </section> + <section class="features"> + <h1><a name="criptografia-do-sistema"><a href="#criptografia-do-sistema" title="Criptografia do sistema">Criptografia do sistema</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O principal objetivo do Replicant é manter a segurança dos arquivos dos usuário. Então, criptografar seu dispositivo garante que ninguém com acesso físico consiga ler, escrever ou copiar seus arquivos. O Replicant suporta criptografar seu dispositivo, defendendo-o contra esses acessos não autorizados. A criptografaria é habilitada no caminho indicado abaixo. + </p> + <code> + Configurações -> Segurança -> Criptografar o Telefone + </code> + <p> + Siga as demais instruções do sistema. A bateria precisa estar com, pelo menos, 80% de carga e, além disso, carregando (plugado na fonte de energia e não na entrada USB do computador). A criptografia não deve ser interrompida para não danificar o sistema e nem perder os seus dados. + </p> + </section> + <section class="features"> + <h1><a name="wi-fi"><a href="#wi-fi" title="Wi-Fi">Wi-Fi</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O Wi-Fi interno dos dispositivos suportados pelo Replicant não funcionam com firmware livre. A solução, então, é adicionar um dongle Wi-Fi USB externo através da porta microUSB fêmea que suporte firmware livre. Os modelos de <a href="https://redmine.replicant.us/projects/replicant/wiki/WifiAdapter" title="Modelos Wi-Fi compatíveis com replicant">Wi-Fi com chip Qualcomm Atheros AR9271</a> funcionam bem com o firmware livre Atheros ath9k e são facilmente encontrados no mercado. Nós também <b>vendemos adaptadores compatíveis com Replicant e com Gnu/Linux-libre</b>. Se tiver interesse, entre em nossa <a href="/pages/equipamentos.html" name="pagina-equipamentos" title="Página de equipamentos produzidos pela Brigada Digital">página de equipamento e dispositivos</a> para mais informações. + </p> + <p> + Contudo, os smartfones e tablets dificilmente aguentam alimentar um dispositivo externo, ocasionando instabilidade e rápido consumo da bateria. Então a solução é conectar o dongle Wi-Fi através de um <i>Cabo Y (três plugues)</i> com pulgos USB fêmea, microUSB macho e microUSB fêmea (ou USB macho), e fornecer alimentação de energia ao dongle diretamente. + </p> + <p> + O processo é simples, plugamos o dongle Wi-Fi na entrada USB fêmea do Cabo Y; a fonte de alimentação externa na entrada microUSB fêmea; e, o smartfone/tablet na entrada microUSB macho. Depois, no Replicant, basta habilitar o Wi-Fi pelo menu suspenso ou nas configurações de Wi-Fi e escolher uma rede para se conectar. + </p> + </section> + <section class="features"> + <h1><a name="tethering"><a href="#tethering" title="tethering">Tethering</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p>Tethering é o compartilhamento de internet entre dispositivos através do Wi-Fi ou USB.</p> + <h2>Tethering Wi-Fi</h2> + <p>A configuração do compartilhamento da internet do Replicant para outros dispositivos através do Wi-Fi é realizada no caminho a seguir. Lembre-se de conectar o dongle USB Wi-Fi.</p> + <code> + Configurações -> Mais -> Tethering de acesso portátil -> Configurar ponto de acesso Wi-Fi + </code> + <p> + Depois de configurar o tethering Wi-Fi, habilite-o no caminho a seguir. + </p> + <code> + Configurações -> Mais -> Tethering de acesso portátil -> Ponto de acesso Wi-Fi portátil + </code> + <h2>Tethering USB</h2> + <p>O compartilhamento da internet do Replicant via USB para outro dispositivos é realizada no caminho a seguir.</p> + <code> + Configurações -> Mais -> Tethering de acesso portátil -> Vínculo USB + </code> + <h2>Tethering USB Reverso</h2> + <p> + É o compartilhamento da internet do computador desktop para o Replicant. Nesse caso, é necessário fazer algumas operações pelo ADB para para enviar o script que cria a rede no Replicant e criar a rede no computador desktop + </p> + <p> + Primeiramente, instale o wget. + </p> + <code> + apt install wget + </code> + <p> + Faça o download do script do Replicant. + </p> + <code> + wget https://git.replicant.us/replicant/vendor_replicant-scripts/plain/networking/usb/usb_networking_device.sh + </code> + <p> + Edite o script para ajustar o serviço de DNS primário e secundário. + </p> + <code> + nano usb_networking_device.sh + </code> + <p> + Altere o valor de DNS1 para 10.42.0.1 e DNS2 para 10.42.1.1. + </p> + <p>DNS1 devem ficar assim:</p> + <code> + DNS1="10.42.0.1" + </code> + <p> e DNS2 assim:</p> + <code> + DNS2="10.42.1.1" + </code> + <p> + Agora inicie o adb como root. + </p> + <code> + adb root + </code> + <p> + Empurre o script <i>usb_networking_device.sh</i> para <i>/data</i>. + </p> + <code> + adb push usb_networking_device.sh /data/ + </code> + <p> + Altere sua propriedade para execução. + </p> + <code> + adb shell "chmod a+x /data/usb_networking_device.sh" + </code> + <p> + Inicie a primeira etapa da conexão de tethering reverso. + </p> + <code> + adb shell "/data/usb_networking_device.sh start1" + </code> + <p> + Configure uma conexão ethernet (ou wired) no computador de mesa com o dispositivo móvel conectado na porta usb (Geralmente esse passo é acessível pelo applet do Network Manager da barra de ferramentas). + </p> + <ol> + <li>No applet do Network Manager, crie uma nova conexão "Ethernet" ou "Wired"</li> + <li>Na aba para configurações IPv4, selecione o método "Compartilhado com outros computadores"</li> + <li>Salve a conexão com um nome distinguível como, por exemplo, "Replicant USB Reverso"</li> + <li>Na aba Ethernet, selecione a conexão para o dispositivo ethernet (eno ou enp3s0)</li> + <li>Agora execute a segunda etapa do script de criação do tethering reverso</li> + </ol> + <code> + adb shell "/data/usb_networking_device.sh start2" + </code> + <p> + Para desconectar o Replicant e o computador. + </p> + <code> + adb shell "/data/usb_networking_device.sh stop" + </code> + </section> + <section class="features"> + <h1><a name="cartao-de-memoria"><a href="#cartao-de-memoria" title="cartao-de-memoria">Cartão de Memória</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Os modelos suportados pelo Replicant geralmente possuem pouca memória interna de armazenamento, trazendo a necessidade expansão através de cartão SD, que pode ser de até 64GB. A expansão pode ser configurada para armazenamento portátil ou armazenamento interno. O armazenamento portátil geralmente é utilizado para transferência de arquivos entre dispositivos como, por exemplo, fotos e músicas. Já a configuração como armazenamento intento possibilita que as aplicações utilizem o cartão SD para armazenar arquivos. Isso aumenta a capacidade de armazenamento, mas o cartão só funcionará no equipamento. + </p> + <p> É possível instalar alguns aplicativos no cartão de memória quando configurado como armazenamento interno. Contudo, <i>a instalação de aplicativos no cartão SD, eventualmente causa instabilidade gerando reinicializações e, eventualmente, corrupção do sistema e reinicializações em loop</i>. Então, <b>não faça a instalação de aplicativos no cartão SD</b>. + </p> + </section> + <section class="features"> + <h1><a name="certificado-lets-encrypt"><a href="#certificado-lets-encrypt" title="Certificao Let's Encrypt">Certificado Let's Encrypt</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + A autoridade certificadora <a href="https://letsencrypt.org/">Let's Encrypt</a>, muito utilizada nas aplicações de internet, pois gera certificados gratuitamente, atualizou seu certificado logo após o lançamento do Replicant versão 6.0004. Então, o Replicant reclama da confiabilidade de seus certificados. Para resolver essa questão, é necessário inserir manualmente o certificado atualizado. Basta seguir o <a href="https://www.stoutner.com/lets-encrypt-isrg-root-x1-and-privacy-browser/" target="_blank" title="Tutorial para inserir o certificado atualizado Let's Encrypt no Replicant 6.0004">tutorial do Navegador Privado para resolver essa questão</a>. + </p> + </section> + <section class="features"> + <h1><a name="aplicativos-indicados"><a href="#aplicativos-indicados" title="Aplicativos indicados">Aplicativos indicados</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O Replicant removeu a loja de aplicativos do F-Droid, porque o repositório não segue as <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.pt-br.html" target="_blank" title="Diretrizes para Distribuições de Sistemas Livres (FSDG)">Diretrizes para Distribuições de Sistemas Livres (FSDG) do Projeto GNU</a>. Então, fizemos uma lista de aplicativos livres (<a href="https://www.gnu.org/licenses/gpl-3.0.html" target="_blank" title="GNU General Public License v3.0">GNU General Public License v3.0</a>) úteis que podem ser baixados diretamente do repositório e instalados. + </p> + <table> + <tr> + <th style="text-align: left">Aplicativo</th><th style="text-align: left">Descrição</th> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/anupam.acrylic/" target="_blank" title="Link download Acrylic Paint">Acrylic Paint</a></td> + <td>Pintura simples com o dedo</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.beemdevelopment.aegis/" target="_blank" title="Link download Aegis Authenticator">Aegis Authenticator</a></td> + <td>Gerenciador de autenticação de 2 fatores - 2FA</td> + </tr> + <tr> + <td><a href="https://f-droid.org/en/packages/com.tughi.aggregator/" target="_blank" title="Link download Aggregator">Aggregator</a></td> + <td>Simples e flexível leitor de notícias</td> + </tr> + <tr> + <td><a href="https://f-droid.org/packages/de.danoeh.antennapod/" target="_blank" title="Link AntennaPod">AntennaPod</a></td> + <td>Um player de podcasts fácil de usar, flexível e de código aberto</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/ltd.evilcorp.atox/" target="_blank" title="Link aTox">aTox</a></td> + <td>Cliente de mensagens privada p2p</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.gaurav.avnc/" target="_blank" title="Link download AVNC">AVNC</a></td> + <td>Cliente VNC rápido e seguro</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/de.markusfisch.android.binaryeye/" target="_blank" title="Link Binary Eye">Binary Eye</a></td> + <td>Mais um leitor de código de barras</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.briarproject.briar.android/" target="_blank" title="Link Briar">Briar</a></td> + <td>Aplicativo de mensagens p2p destinado para ativistas, jornalistas e pessoas que precisam de segurança</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/corewala.gemini.buran/" target="_blank" title="Link Buran">Buran</a></td> + <td>Navegador simples para o protocolo Gemini</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.github.axet.callrecorder/" target="_blank" title="Link Call Recorder">Call Recorder</a></td> + <td>Gravador de chamadas simples, sem anúncios, código aberto</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.connectbot/" target="_blank" title="Link ConnectBot">ConnectBot</a></td> + <td>Cliente SSH e Telnet e emulador de terminal para shell local</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/eu.siacs.conversations/" target="_blank" title="Link Conversations">Conversations</a></td> + <td>Cliente de XMPP fácil de usar com suporte a criptografia Omemo e OpenPGP.</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.github.cythara/" target="_blank" title="Link Cythara">Cythara</a></td> + <td>Afinador de instrumentos musicais</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/at.bitfire.davdroid/" target="_blank" title="Link DAVx⁵">DAVx⁵</a></td> + <td>Sincronização e Cliente CalDAV/CardDAV</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.decsync.cc/" target="_blank" title="Link DecSync CC">DecSync CC</a></td> + <td>Sincronização de contatos, calendários e tarefas sem um servidor</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.tachibana.downloader/" target="_blank" title="Link Download Navi">Download Navi</a></td> + <td>Download Navi é um gerenciador de download</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/ru.nsu.bobrofon.easysshfs/" target="_blank" title="Link EasySSHFS">EasySSHFS</a></td> + <td>Sistema de arquivos e cliente SSH</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.gnu.emacs/" target="_blank" title="Link Emacs">Emacs</a></td> + <td>Editor de texto avançado, extensível e autodocumentado, muito utilizado por programadores</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/eu.toldi.infinityforlemmy/" target="_blank" title="Link Eternity">Eternity</a></td> + <td>Cliente para a rede Federada Lemmy com suporte ao protocolo ActivityPub, fork do Infinity para Reddit</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.purplei2p.i2pd/" target="_blank" title="Link Eternity">I2pd</a></td> + <td>Implementação completa do cliente I2P em C++</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.joinmastodon.android/" target="_blank" title="Link Mastodon">Mastodon</a></td> + <td>Rede social descentralizada</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.nononsenseapps.feeder/" target="_blank" title="Link Feeder">Feeder</a></td> + <td>Um fantástico leitor de RSS Feed</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/de.qwerty287.ftpclient/" target="_blank" title="Link FTPClient">FTPClient</a></td> + <td>Cliente FTP, FTPS e SFTP</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/net.slions.fulguris.full.fdroid/" target="_blank" title="Link Fulguris">Fulguris</a></td> + <td>Cliente FTP, FTPS e SFTP</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/de.kaffeemitkoffein.imagepipe/" target="_blank" title="Link Image Pipe">Image Pipe</a></td> + <td>remove os dados exif e reduz o tamanho de imagens antes de compartilhá-las</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/cx.ring/" target="_blank" title="Link Jami">Jami</a></td> + <td>Aplicativo p2p multiplataforma de mensageria, ligação audiovisual, conferência e grupos do Projeto GNU</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/at.techbee.jtx/" target="_blank" title="Link Jtx">Jtx</a></td> + <td>Diário, notas e tarefas caldav sincronizados através do aplicativo DAVx⁵</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.fsck.k9/" target="_blank" title="Link K9 Mail">K9 Mail</a></td> + <td>Cliente de e-mail cheio de funcionalidades</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/net.stargw.fok/" target="_blank" title="Link Karma Firewall">Karma Firewall</a></td> + <td>Bloqueia aplicativos de acesso a internet</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.kunzisoft.keepass.libre/" target="_blank" title="Link KeepassDX">KeePassDX - FOSS Password Safe</a></td> + <td>Gerenciador de password keepass</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.documentfoundation.libreoffice//" target="_blank" title="Link LibreOffice Viewer">LibreOffice Viewer </a></td> + <td>Visualizador de documentos</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.foobnix.pro.pdf.reader/" target="_blank" title="Link Librera Reader">Librera Reader</a></td> + <td>Leitor de livros e PDF</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.github.libretube/" target="_blank" title="Link Libretube">Libretube</a></td> + <td>Alternativa frontend para Youtube com piped</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/se.manyver/" target="_blank" title="Link Manyverse">Manyverse</a></td> + <td>Uma rede social p2p fora da grade, pautada scuttlebutt</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/net.gsantner.markor/" target="_blank" title="Link Markor">Markor</a></td> + <td>Editor de texto - notas e tarefas -, leve de markdown e tarefas.txt</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/moe.matsuri.lite/" target="_blank" title="Link Markor">Matsuri</a></td> + <td>Proxy</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.manichord.mgit/" target="_blank" title="Link MGit">MGit</a></td> + <td>Visualizar e interagir com repositórios git</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.joinmastodon.android.moshinda/" target="_blank" title="Link para Moshidon">Moshidon</a></td> + <td>Mastodon para Android mas é Material You e tem mais recursos</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/se.lublin.mumla/" target="_blank" title="Link Mumla">Mumla</a></td> + <td>Chat de voz para servidores Mumble</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.artifex.mupdf.viewer.app/" target="_blank" title="Link MuPDF viewer">MuPDF viewer</a></td> + <td> Visualizador de documentos leve</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.stoutner.privacybrowser.standard/" target="_blank" title="Link Navegador Privado">Navegador Privado</a></td> + <td>Um navegador da web que respeita sua privacidade</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.schabi.newpipe/" target="_blank" title="Link Navegador Newpipe">Front-end leve do Youtube</a></td> + <td>Um navegador da web que respeita sua privacidade</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/eu.faircode.netguard/" target="_blank" title="Link NetGuard">NetGuard</a></td> + <td>Uma maneira simples de bloquear o acesso à internet por aplicação</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/at.bitfire.nophonespam/" target="_blank" title="Link NoPhoneSpam">NoPhoneSpam</a></td> + <td>Bloquear chamadas indesejadas</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/io.heckel.ntfy/" target="_blank" title="Link ntfy">ntfy</a></td> + <td>Enviar notificações ao telefone via qualquer script usando requisições PUT/POST</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/io.github.subhamtyagi.ocr/" target="_blank" title="Link OCR (ROC)">OCR (ROC)</a></td> + <td>Uma aplicação de reconhecimento de caracteres (OCR) baseada em Tesseract que reconhece textos em imagens</td> + </tr> + <tr> + <td><a href="https://apt.izzysoft.de/fdroid/index/apk/dk.jens.backup?repo=archive" target="_blank" title="Link oandbackup">oandbackup</a></td> + <td>Faça backups de apps selecionados e restaure</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.sufficientlysecure.keychain/" target="_blank" title="Link OpenKeychain: Easy PGP">OpenKeychain: Easy PGP</a></td> + <td> Criptografar os ficheiros e Comunicações. Compatível com o padrão OpenPGP</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.todobom.opennotescanner/" target="_blank" title="Link Open Note Scanner">Open Note Scanner</a></td> + <td>Digitalizar documentos, notas manuscritas ou artes</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/app.organicmaps/" target="_blank" title="Link Organic Maps">Organic Maps: Mapas Offline e Navegador GPS</a></td> + <td>Mapas colaborativos de software livre para turistas, ciclistas e caminhantes</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/app.pachli/" target="_blank" title="Link Pachli for Mastodon">Pachli for Mastodon</a></td> + <td>Um cliente Android completo para Mastodon e servidores semelhantes</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.catrobat.paintroid/" target="_blank" title="Link Pocket Paint">Pocket Paint</a></td> + <td>Paint avançada</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/io.mrarm.irc/" target="_blank" title="Link Revolution IRC">Revolution IRC</a></td> + <td>O cliente IRC de última geração</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.gnosco.share2archivetoday/" target="_blank" title="Link Share 2 Archive Today">Share 2 Archive Today</a></td> + <td>Compartilhamento de URL com Archive.today e Archive.Is. Para acessar o conteúdo de sites com bloqueio ao Tor ou a navegação sem javascript</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.wbrawner.simplemarkdown.free/" target="_blank" title="Link SimpleMarkdown">SimpleMarkdown</a></td> + <td>A simple markdown editor</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.maxistar.textpad/" target="_blank" title="Link SimpleTextEditor">SimpleTextEditor</a></td> + <td>Simple Text Editor</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/juloo.keyboard2/" target="_blank" title="Link Teclado Unexpected">Teclado Unexpected</a></td> + <td>Um teclado virtual leve para desenvolvedores</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.termoneplus/" target="_blank" title="Link Terminal Emulator">Terminal Emulator</a></td> + <td>Transforme seu aparelho num terminal de computador</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/net.schueller.peertube/" target="_blank" title="Link Thorium, um cliente PeerTube">Thorium, um cliente PeerTube</a</td> + <td>Um leitor do PeerTube</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/ru.yourok.torrserve/" target="_blank" title="Link TorrServe">TorrServe</a></td> + <td>Download torrent files</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.bnyro.translate/" target="_blank" title="Link Translate You">Translate You</a></td> + <td>Tradutor com foco em privacidade</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/app.fedilab.nitterizemelite/" target="_blank" title="Link UntrackMe Lite">UntrackMe Lite</a></td> + <td>Redirecione links do Youtube, Twitter e Instagram para Front-end livres</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.videolan.vlc/" target="_blank" title="Link VLC">VLC</a></td> + <td>VLC para Android é o melhor leitor de vídeo e música open source, fácil e rápido</td> + </tr> + </table> + </section> + <section class="features"> + <h1><a name="backup"><a href="#backup" title="Backup">Backup</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Aconselhamos criar periodicamente cópias de segurança criptografadas dos dados armazenados no sistema para restaurá-los caso ocorra problema. Podem ser salvos dados de apps do sistema ou instalados de fontes externas (/system/data e /data/app), arquivos internos (/data/data) e do cartão SD (/storage/emulated). O procedimento pode ser realizado através de apps especializados em backup como, por exemplo, <b>oandbackup</b>, ou pelo programa de desktop <b>Android Debug Bridge (adb)</b>. + </p> + <h2>oandbackup</h2> + <p> + O oandbackup é um aplicativo de backup rico em recursos como, por exemplo, criptografia através do app <i>openkeychain</i>, backup programado, etc. Para fazer o backup. + </p> + <code> + oandbackup -> Backup em lote -> Dados e Apkk + </code> + <p> + Marcar os apps para backup. + </p> + <code> + oandbackup -> Backup em lote -> Marcar Tudo + </code> + <p> + Executar o backup. + </p> + <code> + oandbackup -> Backup em lote -> Backup + </code> + <h2>Backup pelo ADB</h2> + <h2>Configurações para ADB</h2> + <h4>Senha de criptografia para o backup</h4> + <p> + Defina uma senha de segurança para criptografar o backup: + </p> + <code> + Configurações -> Opções do desenvolvedor -> Senha do backup local + </code> + <h3>Backup dos dados de apps e arquivos</h3> + <p> + A sintaxe do comando de backup é a seguinte: + </p> + <code> + adb backup [-f file] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [packages...] + </code> + <p> + -f cria o arquivo de backup + </p> + <p> + -apk|-noapk habilita/desabilita o backup de aplicativos (padrão é -noapk) + </p> + <p> + -obb|-noobb habilita/desabilita o backup de arquivos associados aos apps (padrão é -noob b) + </p> + <p> + -shared|-noshared habilita/desabilita o backup de arquivos do cartão SD (padrão é -noshared) + </p> + <p> + -all faz o backup de todos os aplicativos instalados, incluindo aplicações do sistema. + </p> + <p> + -system|-nosystem incluir ou não aplicações de sistema. + </p> + <p> + Para fazer o backup de todos os aplicativos (apk) do sistema e instalados de fontes externas com seus respectivos dados e configurações (obb), execute o seguinte comando: + </p> + <code> + # adb backup -f 2025.03.23-apps-backup-replicant-6.0004-n7100.adb -apk -obb -all + </code> + <p> + Quando executar o comando uma janela será aberta no Replicant pedindo a <i>senha de backup atual</i> que configuramos anteriormente. Insira a senha e selecione o botão <i>Fazer backup de meus dados</i>. O progresso do backup será exibido na parte inferior da tela do Replicant. Quando o backup terminar a janela de backup no Replicant será fechada e o terminal no desktop será desbloqueado. + </p> + <h3>Restauração do backup</h3> + <p> + A restauração dos dados só é compatível com a mesma versão do Replicant e modelo do dispositivo que o backup foi realizado. + </p> + <p> + Para restaurar o backup, esteja com a etapas de configuração do ADB satisfeitas e execute o comando no terminal: + </p> + <code> + adb restore file.adb + </code> + </section> + <section class="features"> + <h1><a name="reset-de-fabrica-reset-factory"><a href="#reset-de-fabrica-reset-factory" title="Reset de fabrica (reset factory)">Reset de fabrica (reset factory)</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Pode ser desejável resetar o aparelho para as configurações iniciais do Replicant, também conhecido como reset de fábrica (reset factory). Essa operação poder ser feita através do programa de configuração ou pelo programa de recuperação. + </p> + <h2>Reset pelo programa de Configuração</h2> + <p> + Execute o programa de redefinição e backup. Não é possível fazer o backup dos dados e restaurá-lo pelo respectivo programa se o dispositivo estiver criptografado. Mas é possível recuperar os dados após a redefinição de fábrica pelos meios abordados na seção <i>Backup</i>. + </p> + <code> + Configurações -> Fazer backup e redefinir + </code> + <h2>Reset pelo programa de recuperação (recovery)</h2> + <p> + Desligue o aparelho sem cabo de usb ou alimentação. Após, com o aparelho desligado, pressionar simultaneamente os botões de volume + início + power, fazendo o aparelho inicializar no modo de recuperação (recovery). Selecione Redefinição completa de fábrica. Ele solicitará que você confirme a redefinição, portanto, você precisará selecionar Sim para confirmá-la. + </p> + <code> + Factory reset -> Full factory reset + </code> + <p> + Pressione a tecla Voltar para voltar ao menu principal de recuperação e, em seguida, reinicie o sistema. + </p> + </section> + <section class="features"> + <h1><a name="futuro-do-replicant"><a href="#futuro-do-replicant" title="Futuro do Replicant">Futuro do Replicant</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Recentemente o projeto declarou que vai abandonar o Android e os dispositivos Samsung porque a indústria dos dispositivos móveis vem dificultando cada vez mais o desenvolvimento de suporte livre para a base Android. Os atuais modelos serão abandonado e o port para a versão 11 do Android foi suspensa. O projeto começou a debater migrar sua base para o <a href="https://redmine.replicant.us/projects/replicant/wiki/AddSupportForThePinephone">Pinephone</a>. Esse sistema é um GNU/Linux para dispositivos móveis que suporta aplicativos Android por meio do emulador de Android <a href="https://glodroid.github.io/">GLoDroid</a>. Atualmente o GLoDroid emula o Android 12 baseado na versão AOSP. Também existe um debate sobre <a href="https://blog.replicant.us/2025/05/future-of-ngi-funding/">fontes de financiamento disponíveis na União Europeia</a>. + </p> + </section> + <section class="features"> + <h1><a name="bibliografia"><a href="#bibliografia" title="Bibliografia">Bibliografia</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <ul> + <li>Página do projeto Replicant - <a href="https://replicant.us/" name="site-do-projeto-replicant" title="Site do projeto Replicant">https://replicant.us</a></li> + <li>Certificação da Fundação de Software Livre (FSF) - <a href="https://www.gnu.org/distros/free-non-gnu-distros.html" name="certificacao-fsf" title="Certificação FSF - Distribuições Não-GNU Livres">https://www.gnu.org/distros/free-non-gnu-distros.html</a></li> + <li>Fundação de Software Livre - <a href="https://www.fsf.org/" name="free-software-fundation" title="Site da Fundação de Software Livre - FSF">https://www.fsf.org/</a></li> + <li>Dispositivos suportados - <a href="https://replicant.us/supported-devices.php" name="site-do-projeto-replicant" title="Página de dispositivos suportados pelo Replicant">https://replicant.us/supported-devices.php</a></li> + <li>Instalação - <a href="https://redmine.replicant.us/projects/replicant/wiki/Installation" name="instalacao-replicant" title="Página de instalação do Replicant">https://redmine.replicant.us/projects/replicant/wiki/Installation</a></li> + <li>Instalação do Android Debug Bridge (ADB) - <a href="https://redmine.replicant.us/projects/replicant/wiki/ToolsInstallation" name="replicant-adb" title="Página de instalação das ferramentas Gnu/Linux utilizadas pelo Replicant">https://redmine.replicant.us/projects/replicant/wiki/ToolsInstallation</a></li> + <li>Configuração do Android Debug Bridge (ADB) - <a href="https://redmine.replicant.us/projects/replicant/wiki/ADB" name="configuracao-adb" title="Página de configuração do ADB"></a></li> + <li>Adaptador Wi-Fi USB - <a href="https://redmine.replicant.us/projects/replicant/wiki/WifiAdapter" name="tethering-usb-reverso" title="Página de configuração do tethering usb reverso">https://redmine.replicant.us/projects/replicant/wiki/WifiAdapter</a></li> + <li>Tethering usb reverso - <a href="https://redmine.replicant.us/projects/replicant/wiki/USBNetworking" name="tethering-usb-reverso" title="Página de configuração do tethering usb reverso">https://redmine.replicant.us/projects/replicant/wiki/USBNetworking</a></li> + <li>Backup da partição do modem (EFS) - <a href="https://redmine.replicant.us/projects/replicant/wiki/BackupTheEFS" name="backup-particao-modem-efs" title="Página de guia para backup da partição de modem - EFS">https://redmine.replicant.us/projects/replicant/wiki/BackupTheEFS</a></li> + <li>Restauração da partição do modem (EFS) - <a href="https://redmine.replicant.us/projects/replicant/wiki/RestoreEfsNvDataBackupFile" name="restauracao-particao-modem-efs" title="Página de guia para a restauração do backup da partição de modem - EFS">https://redmine.replicant.us/projects/replicant/wiki/RestoreEfsNvDataBackupFile</a></li> + <li>Futuro do Replicant com o Pinephone I - <a href="https://blog.replicant.us/2024/03/replicant-status-and-report-of-the-37c3-and-fosdem-2024-conferences/" name="futuro-do-replicant" title="Futuro do Replicant - fontes de financiamento, base de desenvolvimento e dispositivos suportados">https://blog.replicant.us/2024/03/replicant-status-and-report-of-the-37c3-and-fosdem-2024-conferences/</a></li> + <li>Futuro do Replicant como o Pinephone II - <a href="https://blog.replicant.us/2025/05/future-of-ngi-funding/" name="futuro-do-replicant" title="Futuro do Replicant - fontes de financiamento, base de desenvolvimento e dispositivos suportados">https://blog.replicant.us/2025/05/future-of-ngi-funding/</a></li> + </ul> + </section> + </body> +</html> diff --git a/content/articles/tutoriais/librecmc.html b/content/articles/tutoriais/librecmc.html new file mode 100644 index 0000000..db2422a --- /dev/null +++ b/content/articles/tutoriais/librecmc.html @@ -0,0 +1,1272 @@ + <html> + <head> + <title>Librecmc - Guia de Introdução</title> + <meta name="tags" content="brigada digital, tutorial, software livre, sistemas, librecmc, roteador" /> + <meta name="date" content="2025-07-16 10:00" /> + <meta name="category" content="Tutoriais" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="librecmc" /> + <meta name="summary" content="Guia de introdução da distribuição livre LibreCMC do sistema operacional GNU/Linux-libre destinado a roteadores e outros embarcados de propósito geral." /> + <meta name="status" content="published" /> + </head> + <body class="features"> + <section class="indice"> + <h1>Índice</h1> + <ul> + <li><a href="#introducao">Introdução</a></li> + <li><a href="#instalacao">Instalação</a></li> + <li><a href="#luci-web-interface-de-configuracao">LuCi - web interface de configuração</a></li> + <ul> + <li><a href="#luci-acesso">Acesso</a></li> + <ul> + <li><a href="#luci-primeiro-acesso">Primeiro acesso</a></li> + <li><a href="#luci-senha">Definição de senha</a></li> + </ul> + <li><a href="#luci-configuracao-sistema">Configuração de Sistema</a></li> + <ul> + <li><a href="#luci-configuracao-sistema-sistema">Sistema</a></li> + <li><a href="#luci-configuracao-sistema-configuracoes-gerais">Configurações gerais</a></li> + <li><a href="#luci-configuracao-administracao-sistema">Administração de sistema</a></li> + <li><a href="#luci-configuracao-copia-seguranca-gravar-firmware">Cópia de segurança/gravar firmware</a></li> + <ul> + <li><a href="#luci-hard-reset">Hard Reset do roteador</a></li> + <li><a href="#luci-configuracao-copia-seguranca-gravar-firmware-atualizacao-firmware">Atualização do firmware</a></li> + </ul> + <li><a href="#luci-configuracao-gerenciador-pacotes">Gerenciador de pacotes</a></li> + </ul> + <li><a href="#luci-rede">Rede</a></li> + <ul> + <li><a href="#luci-rede-interfaces">Interfaces</a></li> + <li><a href="#luci-rede-sem-fio-wi-fi">Rede sem fio - Wi-fi</a></li> + </ul> + </ul> + <li><a href="#ssh-acesso">Acesso por SSH</a></li> + <ul> + <li><a href="#configuracao-acesso-ssh">Configuração de acesso SSH</a></li> + <li><a href="#acesso-ssh-terminal">Acesso SSH</a></li> + </ul> + <li><a href="#uci">UCI - Interface de Configurção Unificada</a></li> + <ul> + <li><a href="#uci-principios-comuns">Princípios comuns</a></li> + <li><a href="#uci-arquivos-configuracao">Arquivos de configuração</a></li> + <li><a href="#uci-sintaxe-configuracao">Sintaxe de configuração</a></li> + <li><a href="#uci-utilitario-linha-comando">Utilitário de linha de comando</a></li> + <ul> + <li><a href="#uci-uso">Uso</a></li> + <li><a href="#uci-uso-exemplos">Exemplos</a></li> + </ul> + <li><a href="#configuracao-nao-uci">Configuração não tratada por UCI</a></li> + <ul> + <li><a href="#arquivos-configuracao-nao-uci">Arquivos de configuração não UCI</a></li> + </ul> + </ul> + <li><a href="#gerenciador-pacotes-opkg">Gerenciador de pacotes opkg</a></li> + <li><a href="#router-hard-reset">Roteador hard reset</a></li> + <ul> + <li><a href="#router-hard-reset-fisico">Hard reset físico</a></li> + <li><a href="#router-hard-reset-ssh">Hard reset pelo SSH</a></li> + </ul> + <li><a href="#bibliografia">Bibliografia</a></li> + </ul> + </section> + <section class="features"> + <h1><a href="#introducao" name="introducao" title="Introdução">Introdução<a/> <a href="#banner" title="Topo da página">^</a></h1> + <figure class="image img"> + <img + src="/images/sistemas/librecmc.png" + title="Logo da distribuição para embarcados GNU/Linux LibreCMC" + alt="logo da distribuição para embarcados GNU/Linux LibreCMC" /> + <figcaption>Logo da distribuição GNU/Linux LibreCMC</figcaption> + </figure> + <p> + O <a href="https://librecmc.org/" title="Site LibreCMC">LibreCMC GNU/Linux-libre</a> é uma distribuição do sistema operacional Gnu/Linux dedicada a embarcados, especialmente roteadores, mas podendo ser utilizada de maneira geral, <a href="https://www.gnu.org/distros/free-distros.html"/> certificada pela Fundação de Software Livre</a> como em conformidade com as <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.pt-br.html">Diretrizes para Distribuições de Sistemas Livres (GNU FSDG)</a>. + </p> + </section> + <section class="features"> + <h1><a href="#instalacao" name="instalacao" title="Instalação">Instalação<a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O processo de instalação do LibreCMC não é muito complicado, mas exige atenção para não fazer seu dispositivo ficar inutilizável. Para a instalação, tenha em mente a <a href="https://gogs.librecmc.org/libreCMC/libreCMC/wiki/Supported_Hardware">lista oficial de modelos suportados</a>. A instalação consiste em gravar a imagem do LibreCMC de fábrica específica do dispositivo através da página de atualização do firmware proprietário, geralmente na seção de <i>administração do sistema</i>. + </p> + <p> + Também é possível construir uma imagem LibreCMC você mesmo para algum firmware suportado. O sistema de construção é simples, basta seguir a <a href=" https://gogs.librecmc.org/libreCMC/libreCMC/wiki/How_To_Build_libreCMC" target="_blank" title="Documentação para compilação">documentação de compilação</a>. + </p> + <p><b>Caso queira, podemos fazer a instalação para você, enquanto nos ajuda a manter as atividades da Brigada</b>. Entre em nossa <a href="/pages/equipamentos.html" name="pagina-equipamentos" title="Página de equipamentos produzidos pela Brigada Digital">página de equipamentos</a> e veja como pedir um dispositivo com LibreCMC. + </p> + <figure class="image img"> + <img + src="/images/equipamentos/tp-link-wdr4300-librecmc.png" + title="TP-Link WDR4300" + alt="Reteador TP-Link TL-WDR4300"/> + <figcaption>Roteador TP-Link TL-WDR4300</figcaption> + </figure> + </section> + <section class="features"> + <h1><a href="#luci-web-interface-de-configuracao" name="luci-web-interface-de-configuracao" title="LuCi - Web interface de configuração">LuCi - Web interface de configuração</a> <a href="#banner" title="Topo da página">^</a></h1> + <p> + LuCi é a interface web de configuração de roteadores usada por LibreCMC. Desenvolvida com a poderosa, eficiente e leve linguagem de programação de script <a href="https://lua.org/" title="Site do linguagem de programação Lua">Lua</a>, de origem brasileira e bastante popular. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_480x.png 480w, + /images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_720x.png 720w, + /images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_1024x.png" + title="LuCi - web interface de configuração usada por LibreCMC" + alt="LuCi - web interface de configuração"/> + <figcaption>LuCi - web interface de configuração usada por LibreCMC</figcaption> + </figure> + <h2><a href="#luci-acesso" name="acesso" title="Acesso">Acesso</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Para acessar LuCi, conecte seu computador (ou outro dispositivo) ao roteador e, pelo navegador, entre no endereço <i>https://192.168.10.1</i>, padrão do gateway. Sempre entre com as credenciais através de conexão criptografada (https) para não correr o risco de algum cliente malicioso pegar as suas credenciais. + </p> + <h3><a href="#luci-primeiro-acesso" name="luci-primeiro-acesso" title="Como fazer o priiero acesso de Luci">Primeiro acesso</a> <a href="#banner" title="Topo da página">^</a></h3> + <p> + Caso seja o primeiro acesso, o usuário administrativo padrão é <i>root</i> e não existe senha, bastando apenas executar o botão <i>Entrar</i>. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-acesso_480x.png 480w, + /images/librecmc/librecmc-luci-acesso_720x.png 720w, + /images/librecmc/librecmc-luci-acesso_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-acesso_1024x.png" + title="LuCi web-interface - acesso" + alt="LuCi web interface - acesso"/> + <figcaption>LuCi web interface - acesso</figcaption> + </figure> + <h4><a href="#luci-senha" name="luci-senha" title="Página de definição de senha">Definição de senha</a> <a href="#banner" title="Topo da página">^</a></h4> + <p> + Na página inicial, defina uma senha executando o botão <i>Ir para a configuração de senha</i>. Ou pelo menu princial <i>Sistema > Administração</i>, aba <i>Senha do Roteador</i>. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_480x.png 480w, /images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_720x.png 720w, /images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_1024x.png" + title="LuCi web-interface - definição de senha" + alt="LuCi web interface - acesso"/> + <figcaption>Definição de senha</figcaption> + <p> + Insira sua senha nos campos indicados e execute o botão <i>Salvar</i>. + </p> + <img + srcset="/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_480x.png 480w, /images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_720x.png 720w, /images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_1024x.png" + title="LuCi web-interface - Senha do Roteador" + alt="LuCi web interface - Senha do Rotador"/> + <figcaption>LuCi web interface - Sistema > Adminstração > Senha do Roteador</figcaption> + </figure> + <h2><a href="#luci-configuracao-sistema" name="configuracao-sistema" title="Configuração de sistema">Configuração de sistema</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + As configurações dos aspectos básicos do seu equipamento, como nome do dispositivo, fuso horário, atualiação, backup, etc. está localizado no menu superior denominado <i>Sistema</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-sistema_480x.png 480w, /images/librecmc/librecmc-luci-sistema_720x.png 720w, /images/librecmc/librecmc-luci-sistema_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema_1024x.png" + title="LuCi web-interface - menu Sistema" + alt="LuCi web interface - menu Sistema"/> + <figcaption>LuCi web interface - Menu Sistema</figcaption> + </figure> + <h3><a href="#luci-configuracao-sistema-sistema" name="configuracao-sistema-sistema" title="Luci - Configuração de sistema">Sistema</a> <a href="#banner" title="Topo da página">^</a></h3> + <p> + Página localizada no menu <i>Sistema > Sistema</i>, onde está a configuração do nome do dispositivo, fuso horário, serviço de NTP e etc. A página é subdividida em abas apresentadas abaixo. + </p> + <h4>Configurações gerais</h4> + <p> + Nessa aba defina o <i>Nome do equipamento</i> e <i>Fuso horário</i> correto e execute o botão <i>Salvar & Aplicar</i> ou <i>Salvar</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_480x.png 480w, /images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_720x.png 720w, /images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_1024x.png" + title="LuCi web-interface - página Sistema, aba Configurações gerais" + alt="LuCi web interface - página Sistema, aba Configurações gerais"/> + <figcaption>LuCi web interface - página Sistema, aba Configurações gerais</figcaption> + </figure> + <h4>Sincronização de horário</h4> + <p> + Na Aba <i>Sincronização de horário</i> marque a caixa <i>Ativar o cliente NTP</i> e defina os <i>Candidatos a servidor NTP</i> para os sevidores de sua preferêcia. Nós sugerimos os servidores brasileiro do Nic.BR: <i>a.ntp.br</i>, <i>b.ntp.br</i> e <i>c.ntp.br</i>. Insira o candidato a servidor e execute o botão <i>+</i>. Após inserir todos os servidores NTP, execute o botão <i>Salvar & Aplicar</i> ou <i>Salvar</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_480x.png 480w, /images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_720x.png 720w, /images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_1024x.png" + title="LuCi web-interface - página Sistema, aba Sincronização do horário" + alt="LuCi web interface - página Sistema, aba Sincronização do horário"/> + <figcaption>LuCi web interface - página Sistema, aba Configurações gerais</figcaption> + </figure> + <h3><a href="#luci-configuracao-administracao-sistema" name="luci-configuracao-administracao-sistema" title="Administração de sistema">Administração de sistema</a> <a href="#banner" title="Topo da página">^</a></h3> + <p> + Na página de Administração, localizada no menu <i>Sistema > Administração</i>, estão as configurações de acesso ao LibreCMC como, por exemplo, configuração de senha, acesso SSH e HTTP(s). Após qualquer modificação na configuração lembre-se de executar o botão <i>Salvar & Aplicar</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_480x.png 480w, /images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_720x.png 720w, /images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_1024x.png" + title="LuCi web-interface - Senha do Roteador" + alt="LuCi web interface - Senha do Rotador"/> + <figcaption>LuCi web interface - Sistema > Adminstração > Senha do Roteador</figcaption> + </figure> + <h3><a href="#luci-configuracao-copia-seguranca-gravar-firmware" name="luci-configuracao-copia-seguranca-gravar-firmware" title="Cópia de segurança/gravar firmware">Cópia de segurança/gravar firmware</a> <a href="#banner" title="Topo da página">^</a></h3> + <p> + Essa página, localizada em <i>Sistema > Cópia de Segurança/Gravar Firmware</i>, contém funções de backup e restauração da configuração e das partições do sistema, bem como atualização do firmware. É muito importante manter uma cópia de segurança das partições do LibreCMC, bem como, após configurar o LibreCMC, fazer uma cópia das configurações do sistema para restaurar, caso precise resetar o sistema para as configurações padrões e restaurá-las após. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-sistema-copia-seguranca_480x.png 480w, + /images/librecmc/librecmc-luci-sistema-copia-seguranca_720x.png 720w, + /images/librecmc/librecmc-luci-sistema-copia-seguranca_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema-copia-seguranca_1024x.png" + title="LuCi web-interface - página Cópia de Segurança/Gravar Firmware" + alt="LuCi web interface - página Cópia de Segurança/Gravar Firmware"/> + <figcaption>LuCi web interface - Sistema > Cópia de Segurança/Gravar Firmware</figcaption> + </figure> + <h4><a href="#luci-hard-reset" name="luci-hard-reset" title="Harf reset do roteador">Hard reset do roteador</a> <a href="#banner">^</a></h4> + <p> + A seção <i>Restauração</i> da página <i>Cópia de Segurança/Grava Firmware</i> é destinada a fazer o hard reset do roteador. Para tanto, execute o botão <i>Restaure as configurações iniciais</i>. + </p> + <p> + Após, se desejar, restaure as configurações através do arquivo de backup das configurações. + </p> + <h4><a href="#luci-configuracao-copia-seguranca-gravar-firmware-atualizacao-firmware" name="luci-configuracao-copia-seguranca-gravar-firmware-atualizacao-firmware" title="Atualização do firmware">Atualização do firmware</a> <a href="#banner">^</a></h4> + <p> + Diferentemente de firmwares proprietários, o LibreCMC lança novas versões com frequência. Então, é possível manter o roteador atualizado com LibreCMC. + </p> + <p> + Essa seção da página <i>Cópia de Segurança/Grava Firmware</i> é destinada a fazer instalação de imagens do firmware de fábrica ou de atualizações compatíveis com <i>sysupgrade</i>. Faça o <a href="https://gogs.librecmc.org/libreCMC/libreCMC/wiki/Releases" title="Página de releases do LibreCMC">download da imagem do seu dispositivo</a> e do seu arquivo de verificação de integridade <i>sha256sums</i> ou faça a construção você mesmo. As imagens são nomeadas da seguinte forma: + </p> + <p> + <i>librecmc-$BUILD_TARGET-generic-$TARGET_PROFILE-$VERSION-$FS_TYPE-factory.bin</i> e <i>librecmc-$BUILD_TARGET-generic-$TARGET_PROFILE-$VERSION-$FS_TYPE-sysupgrade.bin</i> + </p> + <p> + Sendo $BUILD_TARGET = target (ex. ar71xx), $TARGET_PROFILE = dispositivo, $VERSION = versão do dispositivo. + </p> + <p> + A image cujo nome termina com <i>factory.bin</i> faz uma instalação limpa, geralmente utilizada para instalação à partir do firmware proprietário, enquanto a imagem com nome terminando com <i>sysupgrade.bin</i> faz uma instalação mantendo a configuração, geralmente utilizada para instalação de atualizações. + </p> + <p> + Faça a verificação da integridade das imagens com o comando sha256sum. Se o seu sistema operacional é Gnu/Linux, no terminal execute o comando a seguir: + </p> + <code> + sha256sum --ignore-missing -c sha256sums + </code> + <p> + Se a imagem estiver íntegra, a saída do comando será <i>ok</i>. + </p> + <p> + Execute o botão <i>Imagem</i> e selecione a imagem desejada para gravação e, após, execute o botão <i>Gravar imagem</i>. O processo deve demorar alguns minutos até a conclusão. Não deslique o dispositivo até que esteja concluído. + </p> + <h3><a href="#luci-configuracao-gerenciador-pacotes" name="luci-configuracao-gerenciador-pacotes" title="Gerenciador de pacotes">Gerenciador de pacotes</a> <a href="#banner">^</a></h3> + <p> + Essa página, localizada em <i>Sistema > Software</i>, gerencia os pacotes do LibreCMC. Faça a atualização da lista de pacotes executando o botão <i>Atualizar lista</i>. A Página contém abas com a lista de pacotes <i>Disponível</i>, <i>Instalado</i> e <i>Atualizações</i>. Antes de instalar qualquer pacote é importante considerar o <i>Espaço livre</i> do dispositivo e <i>Tamanho</i> do pacote. Para instalar, basta executar o botão <i>Instalar</i> + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-sistema-software_480x.png 480w, + /images/librecmc/librecmc-luci-sistema-software_720x.png 720w, + /images/librecmc/librecmc-luci-sistema-software_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema-software_1024x.png" + title="LuCi web-interface - Sotware" + alt="LuCi web interface - Software"/> + <figcaption>LuCi web interface - Sistema > Sotware</figcaption> + </figure> + <h2><a href="#luci-rede" name="rede" title="Acesso">Rede</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Esse menu contém as configurações das interfaces Lan e Wan do roteador, da rede sem fio, roteamento, DHCP, DNS e Firewall. Após qualquer alteração nessas configurações, execute o botão <i>Salvar & Aplicar</i>. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-rede_480x.png 480w, + /images/librecmc/librecmc-luci-rede_720x.png 720w, + /images/librecmc/librecmc-luci-rede_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede_1024x.png" + title="LuCi web-interface - menu Rede" + alt="LuCi web interface - menu Rede"/> + <figcaption>LuCi web interface - menu Rede</figcaption> + </figure> + <h3><a href="#luci-rede-interfaces" name="luci-rede-interfaces" title="Interfaces de rede">Interfaces</a> <a href="#banner" title="Topo da página">^</a></h3> + <p> + Localizada no menu <i>Rede > Interfaces</i>, a página contém as configurações das interfaces LAN (rede local) e WAN (rede pública). As configurações dessas interfaces é acessada executando seu respectivo <i>botão Editar</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-interfaces_480x.png 480w, /images/librecmc/librecmc-luci-rede-interfaces_720x.png 720w, /images/librecmc/librecmc-luci-rede-interfaces_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede-interfaces_1024x.png" + title="LuCi web-interface - página Interfaces" + alt="LuCi web interface - página Interfaces"/> + <figcaption>LuCi web interface - Página Interfaces</figcaption> + </figure> + <h4>LAN</h4> + <p> + Executando o botão <i>Editar</i> da interface LAN (rede local). Uma caixa será aberta contendo as configurações da LAN. Na aba <i>Configurações gerais</i>, a configuração <i>Endereço IPv4</i> define o endereço gateway do dispositivo, bem como a faixa de endereço IP local utilizada para atribuir automaticamente, através do protocolo DHCP, endereços IP aos dispotivos conectados. Além dela, a configuração <i>Máscara de rede IPv4</i> para definir a sub-rede. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-interfaces-lan_480x.png 480w, /images/librecmc/librecmc-luci-rede-interfaces-lan_720x.png 720w, /images/librecmc/librecmc-luci-rede-interfaces-lan_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede-interfaces-lan_1024x.png" + title="LuCi web-interface - página Lan" + alt="LuCi web interface - Página Lan"/> + <figcaption>LuCi web interface - Página Lan</figcaption> + </figure> + <h4>WAN</h4> + <p> + Para modificar a interface WAN (rede pública), execute o <i>botão Editar</i> da interface. Uma caixa com as configurações da interface WAN será aberta. Na aba <i>Configurações gerais</i> defina seu <i>Protocolo</i>. As opções são: <i>Cliente DHCP</i>, <i>Cliente DHCPv6</i>, <i>Não gerenciado</i>, <i>PPP</i>, <i>PPPoE</i>, <i>Ponte por retransmissão</i> e <i>Endereço estático</i>. As opções mais utilizadas pelos provedores de internet (IPS) são <i>Cliente DHCP</i>, <i>PPPoE</i> e <i>Endereço estático</i>. Se não sabe o protocolo correto para conectar o LibreCMC à rede pública, entre em contato com o seu ISP e peça auxílio. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-interfaces-wan_480x.png 480w, /images/librecmc/librecmc-luci-rede-interfaces-wan_720x.png 720w, /images/librecmc/librecmc-luci-rede-interfaces-wan_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede-interfaces-wan_1024x.png" + title="LuCi web-interface - Caixa Interfaces wan, aba Configurações Gerais" + alt="LuCi web interface - Caixa Interfaces wan, aba Configurações Gerais"/> + <figcaption>LuCi web interface - Caixa Interfaces wan, aba Configurações Gerais</figcaption> + </figure> + <h3><a href="#luci-rede-sem-fio-wi-fi" name="luci-rede-sem-fio-wi-fi" title="Rede sem fio Wi-fi">Rede sem fio - Wi-Fi</a> <a href="#banner">^</a></h3> + <p> + Para ativar/desativar e configurar a rede sem fio Wi-Fi de 2.4GHz e 5GHz, entre na página <i>Rede sem fio</i> localizada no meu <i>Rede</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-menu-rede-sem-fio_480x.png 480w, /images/librecmc/librecmc-luci-menu-rede-sem-fio_720x.png 720w, /images/librecmc/librecmc-luci-menu-rede-sem-fio_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-menu-rede-sem-fio_1024x.png" + title="LuCi web-interface - Menu Rede sem fio" + alt="LuCi web interface - Menu Rede sem fio"/> + <figcaption>LuCi web interface - Menu Rede sem fio</figcaption> + </figure> + <h4>Configuração</h4> + <p> + Na seção <i>Visão Geral da Rede sem Fio</i> é possível ativar/desativar as interfaces de rede sem fio (2.4GHz e/ou 5GHz) executando o botão <i>Ativar</i> ou <i>Desativar</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-sem-fio_480x.png 480w, /images/librecmc/librecmc-luci-rede-sem-fio_720x.png 720w, /images/librecmc/librecmc-luci-rede-sem-fio_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede-sem-fio_1024x.png" + title="LuCi web-interface - Menu Rede sem fio" + alt="LuCi web interface - Menu Rede sem fio"/> + <figcaption>Página de configuração da rede sem fio Wi-Fi</figcaption> + </figure> + <p> + Para realizar a configuração execute o botão <i>Editar</i> da respectiva interface de rede sem fio (2.4GHz e/ou 5GHz). A janela de configuração será aberta. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_480x.png 480w, /images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_720x.png 720w, /images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_1024x.png" + src="/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + title="LuCi web-interface - janela de configuração da rede sem fio" + alt="LuCi web interface - janela de configuração da rede sem fio"/> + <figcaption>LuCi web interface - janela de configuração da rede sem fio</figcaption> + </figure> + <p>Na seção <i>Configuração da interface</i>, defina o <i>Modo</i>, sendo Ponto de Acesso (AP) utilizado para acesso à rede interna e internet via Wi-Fi (outros modos possíveis são Cliente, Ad-Hoc, Monitor, etc); e o <i>ESSID</i> para o nome de rede Wi-Fi desejado.</p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_480x.png 480w, /images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_720x.png 720w, /images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_1024x.png" + title="LuCi web-interface - janela de configuração da rede sem fio" + alt="LuCi web interface - janela de configuração da rede sem fio"/> + <figcaption>LuCi web interface - janela de configuração da rede sem fio</figcaption> + </figure> + <p> + Na aba <i>Segurança da Rede sem Fio</i> escolha a chave de criptografia de conexão dos clientes. Sendo possíveis as chaves OWE (rede aberta), WPA-PSK, WPA2-PSK e WAP3-SAE com possibilidade de combinações de chaves. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_480x.png 480w, /images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_720x.png 720w, /images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_1024x.png" + title="LuCi web-interface - janela de configuração da rede sem fio" + alt="LuCi web interface - janela de configuração da rede sem fio"/> + <figcaption>LuCi web interface - janela de configuração da rede sem fio</figcaption> + </figure> + </section> + <section class="features"> + <h1><a href="#acesso-ssh" name="ssh" title="Acesso por ssh">Acesso por SSH</a> <a href="#banner" title="Topo da página">^</a></h1> + <p> + LibreCMC também pode ser acessado por SSH para realização de configuração e manutenção. Isso torna possível, por exemplo, instalar LibreCMC sem a interface web de configuração Luci instalado, liberando espaço para a instalação de programas. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-ssh-acesso_480x.png 480w, /images/librecmc/librecmc-ssh-acesso_720x.png 720w, /images/librecmc/librecmc-ssh-acesso_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-ssh-acesso_1024x.png" + title="Acesso por SSH" + alt="Acesso por SSH"/> + <figcaption>Acesso por SSH</figcaption> + </figure> + <h2><a href="#configuracao-acesso-ssh" name="configuracao-acesso-ssh" title="Acesso">Configuração do acesso SSH</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + O acesso por SSH é realizado através do programa Dropbear, um serviço de SSH muito leve, dedicado a embarcados, mas também usado em initramfs para acesso a máquinas antes mesmo do kernel ser carregado. + </p> + <p> + Na interface web Luci, a página de configuração do acesso por SSH está localizada em <i>Sistema > Administração</i> Aba <i>Acesso SSH</i>. Por questões de segurança remova a autenticação por senha e configure a autenticação por chave SSH na aba <i>Chaves SSH</i> adicionando sua chave pública SSH à configuração. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-ssh-servico_480x.png 480w, + /images/librecmc/librecmc-luci-ssh-servico_720x.png 720w, + /images/librecmc/librecmc-luci-ssh-servico_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-ssh-servico_1024x.png" + title="Configuração SSH pela web interface Luci" + alt="Configuração SSH pela web interface Luci"/> + <figcaption>Configuração SSH pela web interface Luci</figcaption> + </figure> + <p> + Se o seu sistema operacional é Gnu/Linux, sua chave pública geralmente é localizada em <i>~/.ssh/id_rsa.pub</i>. Você pode simplesmente arrastar o arquivo do seu gerenciador de arquivos para o local indicado na janela da interface Luci ou copiar e colar o conteúdo da chave pública. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-ssh-chaves_480x.png 480w, + /images/librecmc/librecmc-luci-ssh-chaves_720x.png 720w, + /images/librecmc/librecmc-luci-ssh-chaves_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-ssh-chaves_1024x.png" + title="Configuração de chaves SSH pela web interface Luci" + alt="Configuração de chaves SSH pela web interface Luci"/> + <figcaption>Configuração de chaves SSH pela web interface Luci</figcaption> + </figure> + <h2><a href="#acesso-ssh-terminal" name="acesso-ssh-terminal" title="Acesso">Acesso SSH</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Para acessar o LibreCMC pelo SSH basta executar o comando no terminal: + </p> + <code> + ssh root@192.168.10.1 + </code> + <h2><a href="#atualização-firmware-ssh" name="atualização-firmware-ssh" title="Acesso">Atualização do firmware</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Diferentemente de firmwares proprietários, o LibreCMC lança novas versões com frequência. Então, é possível manter o roteador atualizado com LibreCMC. O firmware pode ser atualizado tanto pela interface web Luci quanto pelo shell através do acesso SSH. Aqui trataremos do procedimento de atualização pelo shell. + </p> + <p> + Essa seção da página <i>Cópia de Segurança/Grava Firmware</i> é destinada a fazer instalação de imagens do firmware de fábrica ou de atualizações compatíveis com <i>sysupgrade</i>. Faça o <a href="https://gogs.librecmc.org/libreCMC/libreCMC/wiki/Releases" title="Página de releases do LibreCMC">download da imagem do seu dispositivo</a> e do seu arquivo de verificação de integridade <i>sha256sums</i> ou faça a construção você mesmo. As imagens são nomeadas da seguinte forma: + </p> + <p> + <i>librecmc-$BUILD_TARGET-generic-$TARGET_PROFILE-$VERSION-$FS_TYPE-factory.bin</i> e <i>librecmc-$BUILD_TARGET-generic-$TARGET_PROFILE-$VERSION-$FS_TYPE-sysupgrade.bin</i> + </p> + <p> + Sendo $BUILD_TARGET = target (ex. ar71xx), $TARGET_PROFILE = dispositivo, $VERSION = versão do dispositivo. + </p> + <p> + A image cujo nome termina com <i>factory.bin</i> faz uma instalação limpa, geralmente utilizada para instalação à partir do firmware proprietário, enquanto a imagem com nome terminando com <i>sysupgrade.bin</i> faz uma instalação mantendo a configuração, geralmente utilizada para instalação de atualizações. + </p> + <code> + scp librecmc-$BUILD_TARGET-generic-$TARGET_PROFILE-$VERSION-$FS_TYPE-sysupgrade.bin sha256sums root@192.168.1.1:/tmp + </code> + <p> + Acesse o roteador pelo SSH: + </p> + <code> + ssh root@192.168.10.1:/tmp + </code> + <p> + Faça a verificação da integridade das imagens executando o comando sha256sum no arquivo sha256sums: + </p> + <code> + sha256sum --ignore-missing -c sha256sums + </code> + <p> + Se o resultado for <i>OK</i>, a imagem está íntegra e você pode fazer a atualização com segurança. + </p> + <p>O processo de gração/atualização do novo firmware é demorado, então espere até que tudo esteja finalizado, senão você corre o risco de fazer tijolo do seu roteador. Faça a atualização executando o seguinte comando:</p> + <code> + sysupgrade -v /tmp/librecmc-$BUILD_TARGET-generic-$TARGET_PROFILE-$VERSION-$FS_TYPE-sysupgrade.bin + </code> + </section> + <section class="features"> + <h1><a name="uci"><a href="#uci" title="UCI">UCI - Interface de Configuração Unificada</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + UCI é um sistema para centralizar a configuração dos serviços do LibreCMC. É a principal interface de configuração do sistema, incluindo a configuração principal de interface de rede, configurações sem fio, funcionalidade de registro e configuração de acesso remoto. + </p> + <p> + Muitos pacotes no repositório LibreCMC são compatíveis com o sistema UCI. As aplicações são feitas compatíveis simplesmente escrevendo o arquivo de configuração original (que é lido pelo programa) de acordo com as configurações escolhidas no arquivo UCI correspondente. Isso é feito ao executar os scripts de inicialização em <i>/etc/init.d/</i>. Assim, ao iniciar um daemon com tal script de inicialização compatível com UCI, você deve estar ciente de que o arquivo de configuração original do programa é substituído. Por exemplo, no caso do Samba/CIFS, o arquivo <i>/etc/samba/smb.conf</i> é substituído com configurações UCI do arquivo de configuração do UCI <i>/etc/config/samba</i> ao executar <i>/etc/init.d/samba</i> start. Além disso, o arquivo de configuração do aplicativo é frequentemente armazenado em RAM em vez de em flash, porque ele não precisa ser armazenado em memória não volátil e é reescrito após cada mudança, com base no arquivo UCI. Existem maneiras de desativar o UCI caso você queira ajustar as configurações no arquivo de configuração original não disponível através do UCI, em cifs.server você pode ver como desativar UCI para samba, por exemplo. + </p> + <p> + Para aqueles programas não compatíveis com UCI, existe uma lista conveniente de alguns <a href="#configuracao-nao-uci" title="Arquivos de Configuração não UCI">arquivos de configuração não-UCI</a> que você pode querer atender. Note que, para a maioria dos programas de terceiros, você deve consultar a própria documentação do programa. + </p> + <h2><a href="#uci-principios-comuns" name="uci-principios-comuns" title="Princípios da configuração UCI">Princípios comuns</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + A configuração central do LibreCMC está dividida em vários arquivos localizados no diretório <i>/etc/config/</i>. Cada arquivo se relaciona aproximadamente com a parte do sistema que ele configura. <strong>Você pode editar os arquivos de configuração com um editor de texto</strong> ou <strong>modificá-los com o programa utilitário de linha de comando UCI</strong>. Arquivos de configuração UCI também são modificáveis através de várias APIs de programação (como Shell, Lua e C), que também é como interfaces web como LuCI fazem alterações nos arquivos UCI. + </p> + <p> + Como exemplo de modificação da configuração do UCI, suponha que você queira alterar o endereço IP do dispositivo do padrão 192.168.1.1 para 192.168.2.1. Para fazer isso, usando qualquer editor de texto, como vi, altere a linha: + </p> + <code> + option ipaddr 192.168.1.1 + </code> + <p> + No arquivo /etc/config/network para: + </p> + <code> + option ipaddr 192.168.2.1 + </code> + <p> + Em seguida, commit as configurações executando + </p> + <code> + /etc/init.d/network restart + </code> + <p> + Neste caso, lembre-se que você tem que fazer login novamente usando o SSH como o dispositivo está agora acessível em seu novo endereço IP. + </p> + <h2><a href="#uci-arquivos-configuracao" name="uci-arquivos-configuracao" title="Arquivos de configuração UCI">Arquivos de configuração UCI</a> <a href="#banner" title="Topo da página">^</a></h2> + <table> + <tr> + <th style="text-align: left">Arquivo</th> + <th style="text-align: left">Descrição</th> + </tr> + <tr> + <td style="text-align: left"><strong>Básicas</strong></td> + <td></td> + </tr> + <tr> + <td>/etc/config/dhcp</td> + <td>Dnsmasq e odhcpd configuração: DNS, DHCP, DHCPv6 </td> + </tr> + <tr> + <td>/etc/config/dropbear</td> + <td>SSH configurações</td> + </tr> + <tr> + <td>/etc/config/firewall</td> + <td>NAT, filtro de pacotes, encaminhamento de porta, etc. </td> + </tr> + <tr> + <td>/etc/config/network</td> + <td>Configuração switch, rotas</td> + </tr> + <tr> + <td>/etc/config/system</td> + <td>Conjunto de configurações de sistema, NTP, RNG, Watchcat</td> + </tr> + <tr> + <td>/etc/config/wireless</td> + <td>Configurações da rede Wi-Fi</td> + </tr> + <tr> + <td style="text-align: left"><strong>Rede IPv6</strong></td> + <td></td> + </tr> + <tr> + <td>/etc/config/ahcpd</td> + <td>Configuração do servidor de encaminhamento Ad-Hoc, protocolo (AHCP)</td> + </tr> + <tr> + <td>/etc/config/dhcp6c</td> + <td>Cliente WIDE-DHCPv6 </td> + </tr> + <tr> + <td>/etc/config/dhcp6s</td> + <td>Servidor DHCPv6</td> + </tr> + <tr> + <td>/etc/config/gw6c</td> + <td>Configuração do cliente GW6c</td> + </tr> + <tr> + <td style="text-align: left"><strong>Outros</strong></td> + <td></td> + </tr> + <tr> + <td>/etc/config/acme</td> + <td>Configuração do certificado via ACME</td> + </tr> + <tr> + <td>/etc/config/babeld</td> + <td>Configuração babeld</td> + </tr> + <tr> + <td>/etc/config/bbstored</td> + <td>Configuração do servidor BoxBackup</td> + </tr> + <tr> + <td>/etc/config/cloudflared</td> + <td>Configuração do tunel Cloudflare</td> + </tr> + <tr> + <td>/etc/config/ddns</td> + <td>Configuração de DNS dinâmico (ddns-scripts) </td> + </tr> + <tr> + <td>/etc/config/dnscrypt-proxy</td> + <td>Configuração do DNSCrypt</td> + </tr> + <tr> + <td>/etc/config/dockerd</td> + <td>Configuração do motor Docker CE</td> + </tr> + <tr> + <td>/etc/config/emailrelay</td> + <td>E-MailRelay: servidor simples de SMTP e proxy com suport POP. Package emailrelay</td> + </tr> + <tr> + <td>/etc/config/etherwake</td> + <td>Wake-on-Lan: etherwake</td> + </tr> + <tr> + <td>/etc/config/freifunk_p2pblock</td> + <td>Usa iptables layer7-, ipp2p- e recentes módulos de bloqueio de tráfego p2p/filesharing</td> + </tr> + <tr> + <td>/etc/config/fstab</td> + <td>Configuração de pontos de montagem e swap</td> + </tr> + <tr> + <td>/etc/config/hd-idle</td> + <td>Outro servidor de discos</td> + </tr> + <tr> + <td>/etc/config/httpd</td> + <td>Configuração de servidor Web (Busybox httpd, deprecated)</td> + </tr> + <tr> + <td>/etc/config/ipset-dns</td> + <td>Configuração ipset-dns</td> + </tr> + <tr> + <td>/etc/config/kadnode</td> + <td>KadNode p2p DNS</td> + </tr> + <tr> + <td>/etc/config/luci</td> + <td>Configurações básicas da interface web de configuração LibreCMC LuCI</td> + </tr> + <tr> + <td>/etc/config/luci_statistics</td> + <td>Configuração de obtenção de estatística de pacotes</td> + </tr> + <tr> + <td>/etc/config/mini_snmpd</td> + <td>Configuração do servidor mini_snmpd</td> + </tr> + <tr> + <td>/etc/config/minidlna</td> + <td>Configuração do servidor de mídia MiniDLNA</td> + </tr> + <tr> + <td>/etc/config/mjpg-streamer</td> + <td>Aplicação de Streaming para webcams compatíveis com Linux-UVC</td> + </tr> + <tr> + <td>/etc/config/mountd</td> + <td>Servidor automount LibreCMC</td> + </tr> + <tr> + <td>/etc/config/mroute</td> + <td>Configuraão de arquivos para múltiplas rotas WAN</td> + </tr> + <tr> + <td>/etc/config/multiwan</td> + <td>Configuração simples de multi WAN</td> + </tr> + <tr> + <td>/etc/config/mwan3</td> + <td>Configurção Multi-WAN com load balancing and mais</td> + </tr> + <tr> + <td>/etc/config/nodogsplash</td> + <td>Configurção nodogsplash</td> + </tr> + <tr> + <td>/etc/config/ntpclient</td> + <td>Sincronização de tempo através de cliente ntp</td> + </tr> + <tr> + <td>/etc/config/nut_server</td> + <td>Controle da UPS (Uninterruptible Power Supply) e/ou completilhamento com outros hosts</td> + </tr> + <tr> + <td>/etc/config/nut_monitor</td> + <td>Monitoramento de UPS (Uninterruptible Power Supply) de um remote host ou local nut-server</td> + </tr> + <tr> + <td>/etc/config/nut_cgi</td> + <td>Web UI para NUT (visto somente em UCI)</td> + </tr> + <tr> + <td>/etc/config/p910nd</td> + <td>Configuração para serviço de impressão non-spooling p910nd.server</td> + </tr> + <tr> + <td>/etc/config/pure-ftpd</td> + <td>Configuração do serviço Pure-FTPd</td> + </tr> + <tr> + <td>/etc/config/qos</td> + <td>Implementação do Quality of Service para upload</td> + </tr> + <tr> + <td>/etc/config/racoon</td> + <td>Serviço racoon IPsec</td> + </tr> + <tr> + <td>/etc/config/samba</td> + <td>Configuração para o Microsoft file e serviço de impressão</td> + </tr> + <tr> + <td>/etc/config/snmpd</td> + <td>Configuração SNMPd</td> + </tr> + <tr> + <td>/etc/config/sqm</td> + <td>Configuração SQM</td> + </tr> + <tr> + <td>/etc/config/sshtunnel</td> + <td>Configuração para o pacote sshtunnel</td> + </tr> + <tr> + <td>/etc/config/stund</td> + <td>Configuração para o seriço STUN</td> + </tr> + <tr> + <td>/etc/config/tinc</td> + <td>Configuração do pacore tinc</td> + <tr> + <tr> + <td>/etc/config/tor</td> + <td>Configuração Tor</td> + </tr> + <tr> + <td>/etc/config/tor-hs</td> + <td>Configuração de serviços ocultos por Tor</td> + </tr> + <tr> + <td>/etc/config/transmission</td> + <td>Configuração BitTorrent</td> + </tr> + <tr> + <td>/etc/config/uhttpd</td> + <td>Configurações do Web server (uHTTPd)</td> + </tr> + <tr> + <td>/etc/config/upnpd</td> + <td>Configuração do serviço miniupnpd UPnP</td> + </tr> + <tr> + <td>/etc/config/users</td> + <td>Banco de dados de usuários para diferentes serviços</td> + </tr> + <tr> + <td>/etc/config/ushare</td> + <td>Configurações do serviço uShare UPnP</td> + </tr> + <tr> + <td>/etc/config/vblade</td> + <td>vblade userspace AOE target</td> + </tr> + <tr> + <td>/etc/config/vnstat</td> + <td>Configurações do gerenciador de download vnstat</td> + </tr> + <tr> + <td>/etc/config/wifitoggle</td> + <td>Configuração do botão Toggle WiFi</td> + </tr> + <tr> + <td>/etc/config/wol</td> + <td>Wake-on-Lan: wol</td> + </tr> + <tr> + <td>/etc/config/znc</td> + <td>Configuração do serviço ZNC bouncer (IRC)</td> + </tr> + </table> + <h2><a href="#uci-sintaxe-configuracao" name="uci-sintaxe-configuracao" title="Sintaxe dos arquivos de configuração UCI">Sintaxe dos arquivos de configuração</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Os arquivos de configuração UCI geralmente consistem em uma ou mais instruções de configuração, chamadas seções com uma ou mais instruções de opção definindo os valores reais. + </p> + <p> + A # começa comentários da maneira usual. Especificamente, se uma linha contém um # fora de uma string literal, ele e todos os caracteres após ele na linha são considerados um comentário e ignorados. + </p> + <p> + Abaixo está um exemplo de um arquivo de configuração simples: + </p> + <code> + <pre> +package 'example' + +config 'example' 'test' + option 'string' 'some value' + option 'boolean' '1' + list 'collection' 'first item' + list 'collection' 'second item' + </pre> + </code> + <ul style="list-style-type:disc; padding-left:5%;"> + <li> + A configuração do pacote 'exemplo' define o início de uma seção com nome de 'teste'. Também pode ser chamado de seções anônimas com apenas um tipo, mas sem identificador de nome. O tipo é importante para que os programas de processamento decidam como tratar as opções fechadas. + </li> + <li> + A opção 'string' 'algum valor' e 'boolean' '1' linhas definem valores simples dentro da seção. Observe que não há diferenças sintáticas entre as opções texto e booleano. Por convenção, as opções booleanas podem ter um dos valores '0', 'não', 'off', 'falso' ou 'desactivado' para especificar um valor falso ou '1', 'sim', 'on', 'true' ou ' habilitado' para especificar um valor verdadeiro. + </li> + <li> + Nas linhas começando com uma palavra-chave lista uma opção com múltiplos valores é definida. Todas as declarações de lista que compartilham o mesmo nome, coleção em nosso exemplo, serão combinadas em uma única lista de valores com a mesma ordem que no arquivo de configuração. + </li> + <li> + A indentação da opção e instruções de lista é uma convenção para melhorar a legibilidade do arquivo de configuração, mas não é sintaticamente necessária. + </li> + <li> + Se uma opção estiver ausente e não for necessária, o valor padrão é assumido. Se estiver ausente e necessário, pode desencadear um erro na aplicação ou outro comportamento indesejado. + </li> + <li> + Uma forma de desativar uma seção de configuração, que não tem uma opção habilitada para ser desabilitada, é renomear o identificador de seção de configuração (ou tipo, neste exemplo de caso) para um valor não reconhecido pelos processos que usam esses valores. Normalmente, um identificador_desativado como tipo/identificador de seção de configuração é suficiente. + </li> + </ul> + <p> + Normalmente você não precisa anexar identificadores ou valores nas citações. As citações só são necessárias se o valor fechado contiver espaços ou abas. Também é legal usar aspas em vez de cotações simples ao digitar opções de configuração. + </p> + <p> + Todos os exemplos abaixo são sintaxe UCI válida: + </p> + <code> + <pre> +option example value +option example "value" +option 'example' value +option 'example' "value" +option "example" 'value' + </pre> + </code> + <p> + É importante saber que identificadores UCI e nomes de arquivos de configuração podem conter apenas os caracteres a-z, 0-9 e _. Por exemplo, não são permitidos hífens (-). Os valores de opção podem conter qualquer caractere (enquanto forem devidamente citados). + </p> + <h2><a href="#uci-utilitario-linha-comando" name="uci-utilitario-linha-comando" title="Utilitário de linha de comando UCI">Utilitário de linha de comando UCI</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + <strong>Para ajustar as configurações, normalmente se muda os arquivos de configuração UCI diretamente</strong>. No entanto, para fins de script, toda a configuração do UCI também pode ser lida e alterada usando o utilitário de linha de comando <i>uci</i>. Para desenvolvedores que necessitam de processamento automático da configuração UCI, é, portanto, redundante, imprudente e ineficiente usar awk e grep para processar os arquivos de configuração do LibreCMC. O utilitário <i>uci</i> oferece toda a funcionalidade no que diz respeito a modificar e processar UCI. + </p> + <p> + Abaixo está o uso, bem como alguns exemplos úteis de como usar este utilitário poderoso. + </p> + <p> + <i>Ao usar uci para escrever arquivos de configuração, os arquivos são sempre reescritos em comandos inteiros e os comandos não reconhecidos são omitidos. Isso significa que quaisquer linhas estranhas no arquivo são excluídas, como comentários. Se você tem arquivos de configuração UCI que você mesmo editou e deseja preservar seus próprios comentários e linhas em branco, você não deve usar o utilitário linha de comando, mas editar os arquivos normalmente. Note que alguns arquivos, como o arquivo de configuração uHTPd, já contêm muitos comentários quando o aplicativo é instalado pela primeira vez. Além disso, note que algumas aplicações como LuCI também usam o utilitário uci e, assim, podem reescrever arquivos de configuração UCI.</i> + </p> + <p> + Quando existem várias seções do mesmo tipo em uma configuração, UCI suporta referências tipo array para elas. Se existem 8 servidores NTP definidos em /etc/config/system, UCI permitirá que você refira suas seções como system.@timeserver[0] para o primeiro ou system.@timeserver[7] para o último. Você também pode usar índices negativos, como system.@timeserver[-1]. “-1” significa o último, “-2” significa o segundo a último, e assim por diante. Isto é muito útil ao adicionar novas regras ao fim de uma lista. Veja os exemplos abaixo. + </p> + <h3><a href="#uci-uso" name="uci-uso" title="Uso do utilitário de linha de comando UCI">Uso</a> <a href="#banner" title="Topo da página">^</a></h3> + <p> + UCI segue a seguinte sintaxe de linha de comando: + </p> + <code> + Usage: uci [<options>] <command> [<arguments>] + </code> + <p> + A seguir tabela de comandos: + </p> + <table> + <tr> + <th>Comando</th> + <th>Alvo</th> + <th>Descrição</th> + </tr> + <tr> + <td>commit</td> + <td>[<config>]</td> + <td>Grava as alterações do ficheiro de configuração indicado, ou se não for indicado nenhum, todos os ficheiros de configuração, para o sistema de ficheiros. Todos os comandos "uci set", "uci add", "uci rename" e "uci delete" são encenados em um local temporário e escritos para flash imediatamente com "uci commit". Isso não é necessário depois de editar arquivos de configuração com um editor de texto, mas para scripts, GUIs e outros programas trabalhando diretamente com arquivos UCI.</td> + </tr> + <tr> + <td>batch</td> + <td>-</td> + <td>Executa um script UCI de várias linhas que é tipicamente envolvido em uma sintaxe de documento aqui.</td> + </tr> + <tr> + <td>export</td> + <td>[<config>]</td> + <td>Exporta a configuração em um formato legível por máquina. É usado internamente para avaliar arquivos de configuração como scripts shell.</td> + </tr> + <tr> + <td>import</td> + <td>[<config>]</td> + <td>Importa arquivos de configuração na sintaxe UCI.</td> + </tr> + <tr> + <td>changes</td> + <td>[<config>]</td> + <td>Lista as alterações encenadas para o ficheiro de configuração indicado ou, se não for indicado, todos os ficheiros de configuração.</td> + </tr> + <tr> + <td>add</td> + <td><config> <section-type></td> + <td>Adicionar uma secção anónima do tipo de secção à configuração indicada.</td> + </tr> + <tr> + <td>add_list</td> + <td><config>.<section>.<option>=<string></td> + <td>Adicionar o texto indicado a uma opção de lista existente.</td> + </tr> + <tr> + <td>del_list</td> + <td><config>.<section>.<option>=<string></td> + <td>Remover o texto fornecido de uma opção de lista existente.</td> + </tr> + <tr> + <td>show</td> + <td>[<config>[.<section>[.<option>]]]</td> + <td>Mostra a opção, secção ou configuração indicada na notação compactada.</td> + </tr> + <tr> + <td>get</td> + <td><config>.<section>[.<option>]</td> + <td>Obter o valor da opção indicada ou o tipo da secção indicada.</td> + </tr> + <tr> + <td>set</td> + <td><config>.<section>[.<option>]=<value></td> + <td>Defina o valor da opção indicada, ou adicione uma nova seção com o tipo definido para o valor indicado.</td> + </tr> + <tr> + <td>delete</td> + <td><config>.<section>[.<option>]</td> + <td>Apagar a secção ou opção indicada.</td> + </tr> + <tr> + <td>rename</td> + <td><config>.<section>[.<option>]=<name></td> + <td>Renomeie a opção ou seção indicada para o nome dado.</td> + </tr> + <tr> + <td>revert</td> + <td><config>[.<section>[.<option>]]</td> + <td>Reverter a opção indicada, seção ou arquivo de configuração.</td> + </tr> + <tr> + <td>reorder</td> + <td><config>.<section>=<position></td> + <td>Mova uma secção para outra posição.</td> + </tr> + </table> + <h3><a href="#uci-uso-exemplos" name="uci-uso-exemplos" title="Exemplos de uso de UCI">Exemplos</a> <a href="#banner" title="Topo da página">^</a></h3> + <h3>Exemplos</h3> + <h4>Configurando um valor</h4> + <p> + Se queremos alterar a porta de escuta do servidor web uHTPd de 80 para 8080, alteramos a configuração em /etc/config/uhttpd: + </p> + <code> + <pre> +uci set uhttpd.main.listen_http='8080' +uci commit uhttpd +/etc/init.d/uhttpd restart + </pre> + </code> + <p> + Feito, agora o arquivo de configuração é atualizado e uHTTPd escuta na porta 8080. + </p> + <h4>Exportar uma configuração inteira</h4> + <code> + uci export configuration_name + </code> + <p> + As configurações comumente disponíveis são: defaults, dnsmasq, dropbear, firewall, fstab, net, qos, samba, system, wireless. + </p> + <h4>Mostrando uma configuração</h4> + <code> + uci show configuration_name + </code> + <code> + <pre> +# uci show system +system.@system[0]=system +system.@system[0].hostname='LibreCMC' +system.@system[0].timezone='UTC' +system.ntp=timeserver +system.ntp.server='0.openwrt.pool.ntp.org' '1.openwrt.pool.ntp.org' '2.openwrt.pool.ntp.org' '3.openwrt.pool.ntp.org' +system.ntp.enabled='1' +system.ntp.enable_server='0' + </pre> + </code> + <h4>Mostrar apenas o valor de uma opção</h4> + <code> + uci get httpd.@httpd[0].port + </code> + <h4>Adicionar um item a uma lista</h4> + <code> + uci add_list system.ntp.server='0.de.pool.ntp.org' + </code> + <h4>Substituir uma lista completamente</h4> + <code> + <pre> +uci delete system.ntp.server +uci add_list system.ntp.server='0.de.pool.ntp.org' +uci add_list system.ntp.server='1.de.pool.ntp.org' +uci add_list system.ntp.server='2.de.pool.ntp.org' + </pre> + </code> + <h4>Adicionando uma seção com nome à configuração</h4> + <p> + Para adicionar uma seção nomeada de um determinado tipo, deve ser usada a forma sem opção do comando uci set. + </p> + <code> + <pre> +touch /etc/config/example +uci set example.this_name=blah +uci set example.this_name.xxx=yyy +uci set example.other_name=blah +uci set example.other_name.yyy=zzz +uci commit example + </pre> + </code> + <code> + uci show example + </code> + <code> + <pre> +example.this_name=blah +example.this_name.xxx=yyy +example.other_name=blah +example.other_name.yyy=zzz + </pre> + </code> + <code> + cat /etc/config/example + </code> + <code> + <pre> +config blah 'this_name' + option xxx 'yyy' + +config blah 'other_name' + option yyy 'zzz' + </pre> + </code> + <h4>Salvando valores modificados de uma única configuração</h4> + <code> + <pre> +uci commit configuration_name +reload_config + </pre> + </code> + <h2><a href="#configuracao-nao-uci" name="configuracao-nao-uci" title="Configuração do sistema não tratada pelo UCI">Configuração de sistema não tratada por UCI</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Muitas coisas podem (e, portanto, devem ser) configuradas com <i>uci</i> através de qualquer uma de suas interfaces. Esta página se preocupa com tudo o que está embutido no LibreCMC que não pode ser configurado com UCI. Note que a maioria das aplicações de terceiros, instaladas com opkg ou de outra forma, normalmente também têm seus próprios métodos de configuração. Usuários experientes com distribuição GNU/Linux saberão tudo isso de cor. Para iniciantes isso deve ser útil. + </p> + <h3><a href="#arquivos-configuracao-nao-uci" name="arquivos-configuracao-nao-uci" title="Arquivos de configuração não tratada pelo UCI">Arquivos de configuração não UCI</a> <a href="#banner" title="Topo da página">^</a></h3> + <table> + <tr> + <th>Configuração</th> + <th>Descripção</th> + </tr> + <tr> + <td>/etc/banner</td> + <td>Banner recepção de Login.</td> + </tr> + <tr> + <td>/etc/crontabs</td> + <td>Cron</td> + <tr> + <tr> + <td>/etc/dnsmasq.conf</td> + <td>Dnsmasq</td> + </tr> + <tr> + <td>/etc/ethers</td> + <td>See: Dnsmasq</td> + </tr> + <tr> + <td>/etc/firewall.user</td> + <td>Firewall</td> + </tr> + <tr> + <td>/etc/apcupsd/apcupsd.conf</td> + <td></td> + </tr> + <tr> + <td>/etc/fstab</td> + <td>Um link simbólico para /tmp/fstab que está sendo criado e configurado pelo UCI em /etc/config/fstab.</td> + </tr> + <tr> + <td>/etc/fw_env.config</td> + <td></td> + <tr> + <tr> + <td>/etc/group</td> + <td>Este é um arquivo ASCII que define os grupos aos quais os usuários pertencem.</td> + <tr> + <tr> + <td>/etc/hosts</td> + <td>Dnsmasq</td> + </tr> + <tr> + <td>/etc/hosts.allow</td> + <td></td> + </tr> + <tr> + <td>/etc/hosts.deny</td> + <td></td> + </tr> + <tr> + <td>/etc/hotplug.d</td> + <td>Hotplug</td> + </tr> + <tr> + <td>/etc/init.d/rcS</td> + <td>Executado por init a cada início.</td> + </tr> + <tr> + <td>/etc/inittab</td> + <td>Exemplos inittab</td> + </tr> + <tr> + <td>/etc/iproute2/rt_tables</td> + <td>Configuração de tabelas de roteamento: iproute2</td> + </tr> + <tr> + <td>/etc/mtab</td> + <td>filesystems, flash.layout, procfs, sysfs, devpts</td> + </tr> + <tr> + <td>/etc/opkg.conf</td> + <td>Opkg</td> + </tr> + <tr> + <td>/etc/passwd</td> + <td></td> + </tr> + <tr> + <td>/etc/preinit</td> + <td>Em LibreCMC o Kernel é executado pelo bootloader com a opção init=/etc/preinit (em vez do init=/sbin/init usual). Assim, o Kernel executa /etc/preinit. Process.boot</td> + </tr> + <tr> + <td>/etc/profile</td> + <td></td> + </tr> + <tr> + <td>/etc/protocols</td> + <td></td> + </tr> + <tr> + <td>/etc/rc.common</td> + <td>Parte do Shebang (Unix) de muitos scripts shell em /etc/init.d. Verifica os scripts iniciais por erros. Por exemplo, desde R27797 verifica se “start” e “stop” são definidos.</td> + </tr> + <tr> + <td>/etc/rc.local</td> + <td>Este ficheiro é executado pelo /etc/rc.d/S95done em cada arranque. Você deve tratar este arquivo como um script de shell.</td> + </tr> + <tr> + <td>/etc/resolv.conf</td> + <td>Um link simbólico para /tmp/resolv.conf.</td> + </tr> + <tr> + <td>/etc/services</td> + <td></td> + </tr> + <tr> + <td>/etc/shells</td> + <td></td> + </tr> + <tr> + <td>/etc/sysctl.conf</td> + <td>/etc/sysctl.conf é chamado de cada inicialização por /etc/rc.d/S99sysctl.</td> + </tr> + <tr> + <td>/etc/sysupgrade.conf</td> + <td>Este arquivo contém arquivos e diretórios que devem ser preservados durante uma atualização. Sysupgrade</td> + </tr> + <tr> + <td>/etc/TZ</td> + <td>Um link simbólico para /tmp/TZ que está sendo criado e configurado com UCI em /etc/config/system</td> + </tr> + </table> + </section> + <section class="features"> + <h1><a href="#gerenciador-pacotes-opkg" name="gerenciador-pacotes-opkg" title="Gereciador de pacotes">Gerenciador de pacotes opkg</a> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O gerenciador de pacotes do LibreCMC é chamado pelo comando <i>opkg</i> e por meio dele é possível instalar pacotes do seu repositório. Atualmente o repositório contém 2417 pacotes para serem instalados, sendo limitado apenas pelos recursos do seu dispositivo. A seguir comandos mais utilizados. + </p> + <h3>Comandos de manipulação de pacotes</h3> + <p> + Abaixo sequência de comando para obter informações sobre os pacotes. + </p> + <p> + Atualização do repositório: + </p> + <code> + opkg update + </code> + <p> + Atualizar pacote: + </p> + <code> + opkg upgrade <pacote> + </code> + <p> + <strong><i>**nunca atualize muitos bacotes ao mesmo tempo, pois existe change real de bricar o aparelho**</i></strong> + </p> + <p> + Remove pacote: + </p> + <code> + opkg remove <pacote> + </code> + <h3>Comandos para obter informações</h3> + <p> + Abaixo comando para obter informações sobre os pacotes. + </p> + <p> + Listar pacotes disponíveis: + </p> + <code> + opkg list + </code> + <p> + Listar pacotes instalados: + </p> + <code> + opkg list-installed + </code> + <p> + listar pacotes com atualizações: + </p> + <code> + opkg list-upgradable + </code> + <p> + Procurar pacotes a partir do nome ou descrição: + </p> + <code> + opkg find <pacote> + </code> + <p> + Procurar pacotes que tem o arquivo: + </p> + <code> + opkg search <arquivo> + </code> + <p> + Informmação sobre o pacote: + </p> + <code> + opkg info <pacote> + </code> + </section> + <section class="features"> + <h1><a href="#router-hard-reset" name="router-hard-reset" title="router-hard-reset">Router hard reset</a> <a href="#banner" title="Topo da página">^</a></h1> + <h2><a href="#router-hard-reset-fisico" name="router-hard-reset-fisico" title="Hard reset físico">Router hard reset físico</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Segure o botão de <i>reiniciar</i> até o LED SYS piscar mais rápido. Solte o botão de <i>reiniciar</i> e espere até que o roteador reinicie. + </p> + <h2><a href="#router-hard-reset-ssh" name="router-hard-reset-ssh" title="Hard reset pelo SSH">Router hard reset pelo</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Se conecte ao roteador por SSH e execute o comando <i>firstboot</i>: + </p> + <code> + <pre> +ssh root@192.168.10.1 +firstboot + </pre> + </code> + <p> + Também é possível realizar o hard reset pela interface de configuração LuCi. + </p> + </section> + <section class="features"> + <h1><a name="bibliografia"><a href="#bibliografia" title="Bibliografia">Bibliografia</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <ul> + <li>Página do projeto LibreCMC - <a href="https://librecmc.org/" name="site-do-projeto-librecmc" title="Site do projeto LibreCMC">https://librecmc.org</a></li> + <li>Página da documentação openwrt sobre a interface Luci - <a href="https://openwrt.org/docs/guide-user/luci/start" name="documentacao-luci-openwrt" title="Documentação do projeto openwrt sobre o interface Luci">https://openwrt.org/docs/guide-user/luci/start</a></li> + <li>Wiki do projeto Luci - <a href="https://github.com/openwrt/luci/wiki" name="projto-luci-wiki" title="Wiki do projeto Luci">https://github.com/openwrt/luci/wiki</a></li> + <li>Wiki do projeto OpenWRT para configuração completa - <a href="https://openwrt.org/docs/guide-user/start" name="projeto-openwrt-wiki" title="Wiki do projeto OpenWRT">https://openwrt.org/docs/guide-user/start</a></li> + </ul> + </section> + </body> +</html> diff --git a/content/articles/tutoriais/librecmc.html~ b/content/articles/tutoriais/librecmc.html~ new file mode 100644 index 0000000..a7ef7fc --- /dev/null +++ b/content/articles/tutoriais/librecmc.html~ @@ -0,0 +1,1272 @@ +<html> + <head> + <title>Librecmc - Guia de introdução</title> + <meta name="tags" content="brigada digital, tutorial, software livre, sistemas, librecmc, roteador" /> + <meta name="date" content="2025-07-16 10:00" /> + <meta name="category" content="Tutoriais" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="librecmc" /> + <meta name="summary" content="Guia de utilização do sistema operacional livre LibreCMC GNU/Linux para roteadores." /> + <meta name="status" content="published" /> + </head> + <body class="features"> + <section class="indice"> + <h1>Índice</h1> + <ul> + <li><a href="#introducao">Introdução</a></li> + <li><a href="#instalacao">Instalação</a></li> + <li><a href="#luci-web-interface-de-configuracao">LuCi - web interface de configuração</a></li> + <ul> + <li><a href="#luci-acesso">Acesso</a></li> + <ul> + <li><a href="#luci-primeiro-acesso">Primeiro acesso</a></li> + <li><a href="#luci-senha">Definição de senha</a></li> + </ul> + <li><a href="#luci-configuracao-sistema">Configuração de Sistema</a></li> + <ul> + <li><a href="#luci-configuracao-sistema-sistema">Sistema</a></li> + <li><a href="#luci-configuracao-sistema-configuracoes-gerais">Configurações gerais</a></li> + <li><a href="#luci-configuracao-administracao-sistema">Administração de sistema</a></li> + <li><a href="#luci-configuracao-copia-seguranca-gravar-firmware">Cópia de segurança/gravar firmware</a></li> + <ul> + <li><a href="#luci-hard-reset">Hard Reset do roteador</a></li> + <li><a href="#luci-configuracao-copia-seguranca-gravar-firmware-atualizacao-firmware">Atualização do firmware</a></li> + </ul> + <li><a href="#luci-configuracao-gerenciador-pacotes">Gerenciador de pacotes</a></li> + </ul> + <li><a href="#luci-rede">Rede</a></li> + <ul> + <li><a href="#luci-rede-interfaces">Interfaces</a></li> + <li><a href="#luci-rede-sem-fio-wi-fi">Rede sem fio - Wi-fi</a></li> + </ul> + </ul> + <li><a href="#ssh-acesso">Acesso por SSH</a></li> + <ul> + <li><a href="#configuracao-acesso-ssh">Configuração de acesso SSH</a></li> + <li><a href="#acesso-ssh-terminal">Acesso SSH</a></li> + </ul> + <li><a href="#uci">UCI - Interface de Configurção Unificada</a></li> + <ul> + <li><a href="#uci-principios-comuns">Princípios comuns</a></li> + <li><a href="#uci-arquivos-configuracao">Arquivos de configuração</a></li> + <li><a href="#uci-sintaxe-configuracao">Sintaxe de configuração</a></li> + <li><a href="#uci-utilitario-linha-comando">Utilitário de linha de comando</a></li> + <ul> + <li><a href="#uci-uso">Uso</a></li> + <li><a href="#uci-uso-exemplos">Exemplos</a></li> + </ul> + <li><a href="#configuracao-nao-uci">Configuração não tratada por UCI</a></li> + <ul> + <li><a href="#arquivos-configuracao-nao-uci">Arquivos de configuração não UCI</a></li> + </ul> + </ul> + <li><a href="#gerenciador-pacotes-opkg">Gerenciador de pacotes opkg</a></li> + <li><a href="#router-hard-reset">Roteador hard reset</a></li> + <ul> + <li><a href="#router-hard-reset-fisico">Hard reset físico</a></li> + <li><a href="#router-hard-reset-ssh">Hard reset pelo SSH</a></li> + </ul> + <li><a href="#bibliografia">Bibliografia</a></li> + </ul> + </section> + <section class="features"> + <h1><a href="#introducao" name="introducao" title="Introdução">Introdução<a/> <a href="#banner" title="Topo da página">^</a></h1> + <figure class="image img"> + <img + src="/images/sistemas/librecmc.png" + title="Logo da distribuição para embarcados GNU/Linux LibreCMC" + alt="logo da distribuição para embarcados GNU/Linux LibreCMC" /> + <figcaption>Logo da distribuição GNU/Linux LibreCMC</figcaption> + </figure> + <p> + O <a href="https://librecmc.org/" title="Site LibreCMC">LibreCMC GNU/Linux-libre</a> é uma distribuição do sistema operacional Gnu/Linux dedicada a embarcados, especialmente roteadores, mas podendo ser utilizada de maneira geral, <a href="https://www.gnu.org/distros/free-distros.html"/> certificada pela Fundação de Software Livre</a> como em conformidade com as <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.pt-br.html">Diretrizes para Distribuições de Sistemas Livres (GNU FSDG)</a>. + </p> + </section> + <section class="features"> + <h1><a href="#instalacao" name="instalacao" title="Instalação">Instalação<a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O processo de instalação do LibreCMC não é muito complicado, mas exige atenção para não fazer seu dispositivo ficar inutilizável. Para a instalação, tenha em mente a <a href="https://gogs.librecmc.org/libreCMC/libreCMC/wiki/Supported_Hardware">lista oficial de modelos suportados</a>. A instalação consiste em gravar a imagem do LibreCMC de fábrica específica do dispositivo através da página de atualização do firmware proprietário, geralmente na seção de <i>administração do sistema</i>. + </p> + <p> + Também é possível construir uma imagem LibreCMC você mesmo para algum firmware suportado. O sistema de construção é simples, basta seguir a <a href=" https://gogs.librecmc.org/libreCMC/libreCMC/wiki/How_To_Build_libreCMC" target="_blank" title="Documentação para compilação">documentação de compilação</a>. + </p> + <p><b>Caso queira, podemos fazer a instalação para você, enquanto nos ajuda a manter as atividades da Brigada</b>. Entre em nossa <a href="/pages/equipamentos.html" name="pagina-equipamentos" title="Página de equipamentos produzidos pela Brigada Digital">página de equipamentos</a> e veja como pedir um dispositivo com LibreCMC. + </p> + <figure class="image img"> + <img + src="/images/equipamentos/tp-link-wdr4300-librecmc.png" + title="TP-Link WDR4300" + alt="Reteador TP-Link TL-WDR4300"/> + <figcaption>Roteador TP-Link TL-WDR4300</figcaption> + </figure> + </section> + <section class="features"> + <h1><a href="#luci-web-interface-de-configuracao" name="luci-web-interface-de-configuracao" title="LuCi - Web interface de configuração">LuCi - Web interface de configuração</a> <a href="#banner" title="Topo da página">^</a></h1> + <p> + LuCi é a interface web de configuração de roteadores usada por LibreCMC. Desenvolvida com a poderosa, eficiente e leve linguagem de programação de script <a href="https://lua.org/" title="Site do linguagem de programação Lua">Lua</a>, de origem brasileira e bastante popular. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_480x.png 480w, + /images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_720x.png 720w, + /images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_1024x.png" + title="LuCi - web interface de configuração usada por LibreCMC" + alt="LuCi - web interface de configuração"/> + <figcaption>LuCi - web interface de configuração usada por LibreCMC</figcaption> + </figure> + <h2><a href="#luci-acesso" name="acesso" title="Acesso">Acesso</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Para acessar LuCi, conecte seu computador (ou outro dispositivo) ao roteador e, pelo navegador, entre no endereço <i>https://192.168.10.1</i>, padrão do gateway. Sempre entre com as credenciais através de conexão criptografada (https) para não correr o risco de algum cliente malicioso pegar as suas credenciais. + </p> + <h3><a href="#luci-primeiro-acesso" name="luci-primeiro-acesso" title="Como fazer o priiero acesso de Luci">Primeiro acesso</a> <a href="#banner" title="Topo da página">^</a></h3> + <p> + Caso seja o primeiro acesso, o usuário administrativo padrão é <i>root</i> e não existe senha, bastando apenas executar o botão <i>Entrar</i>. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-acesso_480x.png 480w, + /images/librecmc/librecmc-luci-acesso_720x.png 720w, + /images/librecmc/librecmc-luci-acesso_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-acesso_1024x.png" + title="LuCi web-interface - acesso" + alt="LuCi web interface - acesso"/> + <figcaption>LuCi web interface - acesso</figcaption> + </figure> + <h4><a href="#luci-senha" name="luci-senha" title="Página de definição de senha">Definição de senha</a> <a href="#banner" title="Topo da página">^</a></h4> + <p> + Na página inicial, defina uma senha executando o botão <i>Ir para a configuração de senha</i>. Ou pelo menu princial <i>Sistema > Administração</i>, aba <i>Senha do Roteador</i>. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_480x.png 480w, /images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_720x.png 720w, /images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_1024x.png" + title="LuCi web-interface - definição de senha" + alt="LuCi web interface - acesso"/> + <figcaption>Definição de senha</figcaption> + <p> + Insira sua senha nos campos indicados e execute o botão <i>Salvar</i>. + </p> + <img + srcset="/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_480x.png 480w, /images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_720x.png 720w, /images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_1024x.png" + title="LuCi web-interface - Senha do Roteador" + alt="LuCi web interface - Senha do Rotador"/> + <figcaption>LuCi web interface - Sistema > Adminstração > Senha do Roteador</figcaption> + </figure> + <h2><a href="#luci-configuracao-sistema" name="configuracao-sistema" title="Configuração de sistema">Configuração de sistema</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + As configurações dos aspectos básicos do seu equipamento, como nome do dispositivo, fuso horário, atualiação, backup, etc. está localizado no menu superior denominado <i>Sistema</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-sistema_480x.png 480w, /images/librecmc/librecmc-luci-sistema_720x.png 720w, /images/librecmc/librecmc-luci-sistema_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema_1024x.png" + title="LuCi web-interface - menu Sistema" + alt="LuCi web interface - menu Sistema"/> + <figcaption>LuCi web interface - Menu Sistema</figcaption> + </figure> + <h3><a href="#luci-configuracao-sistema-sistema" name="configuracao-sistema-sistema" title="Luci - Configuração de sistema">Sistema</a> <a href="#banner" title="Topo da página">^</a></h3> + <p> + Página localizada no menu <i>Sistema > Sistema</i>, onde está a configuração do nome do dispositivo, fuso horário, serviço de NTP e etc. A página é subdividida em abas apresentadas abaixo. + </p> + <h4>Configurações gerais</h4> + <p> + Nessa aba defina o <i>Nome do equipamento</i> e <i>Fuso horário</i> correto e execute o botão <i>Salvar & Aplicar</i> ou <i>Salvar</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_480x.png 480w, /images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_720x.png 720w, /images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_1024x.png" + title="LuCi web-interface - página Sistema, aba Configurações gerais" + alt="LuCi web interface - página Sistema, aba Configurações gerais"/> + <figcaption>LuCi web interface - página Sistema, aba Configurações gerais</figcaption> + </figure> + <h4>Sincronização de horário</h4> + <p> + Na Aba <i>Sincronização de horário</i> marque a caixa <i>Ativar o cliente NTP</i> e defina os <i>Candidatos a servidor NTP</i> para os sevidores de sua preferêcia. Nós sugerimos os servidores brasileiro do Nic.BR: <i>a.ntp.br</i>, <i>b.ntp.br</i> e <i>c.ntp.br</i>. Insira o candidato a servidor e execute o botão <i>+</i>. Após inserir todos os servidores NTP, execute o botão <i>Salvar & Aplicar</i> ou <i>Salvar</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_480x.png 480w, /images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_720x.png 720w, /images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_1024x.png" + title="LuCi web-interface - página Sistema, aba Sincronização do horário" + alt="LuCi web interface - página Sistema, aba Sincronização do horário"/> + <figcaption>LuCi web interface - página Sistema, aba Configurações gerais</figcaption> + </figure> + <h3><a href="#luci-configuracao-administracao-sistema" name="luci-configuracao-administracao-sistema" title="Administração de sistema">Administração de sistema</a> <a href="#banner" title="Topo da página">^</a></h3> + <p> + Na página de Administração, localizada no menu <i>Sistema > Administração</i>, estão as configurações de acesso ao LibreCMC como, por exemplo, configuração de senha, acesso SSH e HTTP(s). Após qualquer modificação na configuração lembre-se de executar o botão <i>Salvar & Aplicar</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_480x.png 480w, /images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_720x.png 720w, /images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_1024x.png" + title="LuCi web-interface - Senha do Roteador" + alt="LuCi web interface - Senha do Rotador"/> + <figcaption>LuCi web interface - Sistema > Adminstração > Senha do Roteador</figcaption> + </figure> + <h3><a href="#luci-configuracao-copia-seguranca-gravar-firmware" name="luci-configuracao-copia-seguranca-gravar-firmware" title="Cópia de segurança/gravar firmware">Cópia de segurança/gravar firmware</a> <a href="#banner" title="Topo da página">^</a></h3> + <p> + Essa página, localizada em <i>Sistema > Cópia de Segurança/Gravar Firmware</i>, contém funções de backup e restauração da configuração e das partições do sistema, bem como atualização do firmware. É muito importante manter uma cópia de segurança das partições do LibreCMC, bem como, após configurar o LibreCMC, fazer uma cópia das configurações do sistema para restaurar, caso precise resetar o sistema para as configurações padrões e restaurá-las após. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-sistema-copia-seguranca_480x.png 480w, + /images/librecmc/librecmc-luci-sistema-copia-seguranca_720x.png 720w, + /images/librecmc/librecmc-luci-sistema-copia-seguranca_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema-copia-seguranca_1024x.png" + title="LuCi web-interface - página Cópia de Segurança/Gravar Firmware" + alt="LuCi web interface - página Cópia de Segurança/Gravar Firmware"/> + <figcaption>LuCi web interface - Sistema > Cópia de Segurança/Gravar Firmware</figcaption> + </figure> + <h4><a href="#luci-hard-reset" name="luci-hard-reset" title="Harf reset do roteador">Hard reset do roteador</a> <a href="#banner">^</a></h4> + <p> + A seção <i>Restauração</i> da página <i>Cópia de Segurança/Grava Firmware</i> é destinada a fazer o hard reset do roteador. Para tanto, execute o botão <i>Restaure as configurações iniciais</i>. + </p> + <p> + Após, se desejar, restaure as configurações através do arquivo de backup das configurações. + </p> + <h4><a href="#luci-configuracao-copia-seguranca-gravar-firmware-atualizacao-firmware" name="luci-configuracao-copia-seguranca-gravar-firmware-atualizacao-firmware" title="Atualização do firmware">Atualização do firmware</a> <a href="#banner">^</a></h4> + <p> + Diferentemente de firmwares proprietários, o LibreCMC lança novas versões com frequência. Então, é possível manter o roteador atualizado com LibreCMC. + </p> + <p> + Essa seção da página <i>Cópia de Segurança/Grava Firmware</i> é destinada a fazer instalação de imagens do firmware de fábrica ou de atualizações compatíveis com <i>sysupgrade</i>. Faça o <a href="https://gogs.librecmc.org/libreCMC/libreCMC/wiki/Releases" title="Página de releases do LibreCMC">download da imagem do seu dispositivo</a> e do seu arquivo de verificação de integridade <i>sha256sums</i> ou faça a construção você mesmo. As imagens são nomeadas da seguinte forma: + </p> + <p> + <i>librecmc-$BUILD_TARGET-generic-$TARGET_PROFILE-$VERSION-$FS_TYPE-factory.bin</i> e <i>librecmc-$BUILD_TARGET-generic-$TARGET_PROFILE-$VERSION-$FS_TYPE-sysupgrade.bin</i> + </p> + <p> + Sendo $BUILD_TARGET = target (ex. ar71xx), $TARGET_PROFILE = dispositivo, $VERSION = versão do dispositivo. + </p> + <p> + A image cujo nome termina com <i>factory.bin</i> faz uma instalação limpa, geralmente utilizada para instalação à partir do firmware proprietário, enquanto a imagem com nome terminando com <i>sysupgrade.bin</i> faz uma instalação mantendo a configuração, geralmente utilizada para instalação de atualizações. + </p> + <p> + Faça a verificação da integridade das imagens com o comando sha256sum. Se o seu sistema operacional é Gnu/Linux, no terminal execute o comando a seguir: + </p> + <code> + sha256sum --ignore-missing -c sha256sums + </code> + <p> + Se a imagem estiver íntegra, a saída do comando será <i>ok</i>. + </p> + <p> + Execute o botão <i>Imagem</i> e selecione a imagem desejada para gravação e, após, execute o botão <i>Gravar imagem</i>. O processo deve demorar alguns minutos até a conclusão. Não deslique o dispositivo até que esteja concluído. + </p> + <h3><a href="#luci-configuracao-gerenciador-pacotes" name="luci-configuracao-gerenciador-pacotes" title="Gerenciador de pacotes">Gerenciador de pacotes</a> <a href="#banner">^</a></h3> + <p> + Essa página, localizada em <i>Sistema > Software</i>, gerencia os pacotes do LibreCMC. Faça a atualização da lista de pacotes executando o botão <i>Atualizar lista</i>. A Página contém abas com a lista de pacotes <i>Disponível</i>, <i>Instalado</i> e <i>Atualizações</i>. Antes de instalar qualquer pacote é importante considerar o <i>Espaço livre</i> do dispositivo e <i>Tamanho</i> do pacote. Para instalar, basta executar o botão <i>Instalar</i> + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-sistema-software_480x.png 480w, + /images/librecmc/librecmc-luci-sistema-software_720x.png 720w, + /images/librecmc/librecmc-luci-sistema-software_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-sistema-software_1024x.png" + title="LuCi web-interface - Sotware" + alt="LuCi web interface - Software"/> + <figcaption>LuCi web interface - Sistema > Sotware</figcaption> + </figure> + <h2><a href="#luci-rede" name="rede" title="Acesso">Rede</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Esse menu contém as configurações das interfaces Lan e Wan do roteador, da rede sem fio, roteamento, DHCP, DNS e Firewall. Após qualquer alteração nessas configurações, execute o botão <i>Salvar & Aplicar</i>. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-rede_480x.png 480w, + /images/librecmc/librecmc-luci-rede_720x.png 720w, + /images/librecmc/librecmc-luci-rede_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede_1024x.png" + title="LuCi web-interface - menu Rede" + alt="LuCi web interface - menu Rede"/> + <figcaption>LuCi web interface - menu Rede</figcaption> + </figure> + <h3><a href="#luci-rede-interfaces" name="luci-rede-interfaces" title="Interfaces de rede">Interfaces</a> <a href="#banner" title="Topo da página">^</a></h3> + <p> + Localizada no menu <i>Rede > Interfaces</i>, a página contém as configurações das interfaces LAN (rede local) e WAN (rede pública). As configurações dessas interfaces é acessada executando seu respectivo <i>botão Editar</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-interfaces_480x.png 480w, /images/librecmc/librecmc-luci-rede-interfaces_720x.png 720w, /images/librecmc/librecmc-luci-rede-interfaces_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede-interfaces_1024x.png" + title="LuCi web-interface - página Interfaces" + alt="LuCi web interface - página Interfaces"/> + <figcaption>LuCi web interface - Página Interfaces</figcaption> + </figure> + <h4>LAN</h4> + <p> + Executando o botão <i>Editar</i> da interface LAN (rede local). Uma caixa será aberta contendo as configurações da LAN. Na aba <i>Configurações gerais</i>, a configuração <i>Endereço IPv4</i> define o endereço gateway do dispositivo, bem como a faixa de endereço IP local utilizada para atribuir automaticamente, através do protocolo DHCP, endereços IP aos dispotivos conectados. Além dela, a configuração <i>Máscara de rede IPv4</i> para definir a sub-rede. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-interfaces-lan_480x.png 480w, /images/librecmc/librecmc-luci-rede-interfaces-lan_720x.png 720w, /images/librecmc/librecmc-luci-rede-interfaces-lan_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede-interfaces-lan_1024x.png" + title="LuCi web-interface - página Lan" + alt="LuCi web interface - Página Lan"/> + <figcaption>LuCi web interface - Página Lan</figcaption> + </figure> + <h4>WAN</h4> + <p> + Para modificar a interface WAN (rede pública), execute o <i>botão Editar</i> da interface. Uma caixa com as configurações da interface WAN será aberta. Na aba <i>Configurações gerais</i> defina seu <i>Protocolo</i>. As opções são: <i>Cliente DHCP</i>, <i>Cliente DHCPv6</i>, <i>Não gerenciado</i>, <i>PPP</i>, <i>PPPoE</i>, <i>Ponte por retransmissão</i> e <i>Endereço estático</i>. As opções mais utilizadas pelos provedores de internet (IPS) são <i>Cliente DHCP</i>, <i>PPPoE</i> e <i>Endereço estático</i>. Se não sabe o protocolo correto para conectar o LibreCMC à rede pública, entre em contato com o seu ISP e peça auxílio. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-interfaces-wan_480x.png 480w, /images/librecmc/librecmc-luci-rede-interfaces-wan_720x.png 720w, /images/librecmc/librecmc-luci-rede-interfaces-wan_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede-interfaces-wan_1024x.png" + title="LuCi web-interface - Caixa Interfaces wan, aba Configurações Gerais" + alt="LuCi web interface - Caixa Interfaces wan, aba Configurações Gerais"/> + <figcaption>LuCi web interface - Caixa Interfaces wan, aba Configurações Gerais</figcaption> + </figure> + <h3><a href="#luci-rede-sem-fio-wi-fi" name="luci-rede-sem-fio-wi-fi" title="Rede sem fio Wi-fi">Rede sem fio - Wi-Fi</a> <a href="#banner">^</a></h3> + <p> + Para ativar/desativar e configurar a rede sem fio Wi-Fi de 2.4GHz e 5GHz, entre na página <i>Rede sem fio</i> localizada no meu <i>Rede</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-menu-rede-sem-fio_480x.png 480w, /images/librecmc/librecmc-luci-menu-rede-sem-fio_720x.png 720w, /images/librecmc/librecmc-luci-menu-rede-sem-fio_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-menu-rede-sem-fio_1024x.png" + title="LuCi web-interface - Menu Rede sem fio" + alt="LuCi web interface - Menu Rede sem fio"/> + <figcaption>LuCi web interface - Menu Rede sem fio</figcaption> + </figure> + <h4>Configuração</h4> + <p> + Na seção <i>Visão Geral da Rede sem Fio</i> é possível ativar/desativar as interfaces de rede sem fio (2.4GHz e/ou 5GHz) executando o botão <i>Ativar</i> ou <i>Desativar</i>. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-sem-fio_480x.png 480w, /images/librecmc/librecmc-luci-rede-sem-fio_720x.png 720w, /images/librecmc/librecmc-luci-rede-sem-fio_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede-sem-fio_1024x.png" + title="LuCi web-interface - Menu Rede sem fio" + alt="LuCi web interface - Menu Rede sem fio"/> + <figcaption>Página de configuração da rede sem fio Wi-Fi</figcaption> + </figure> + <p> + Para realizar a configuração execute o botão <i>Editar</i> da respectiva interface de rede sem fio (2.4GHz e/ou 5GHz). A janela de configuração será aberta. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_480x.png 480w, /images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_720x.png 720w, /images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_1024x.png" + src="/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + title="LuCi web-interface - janela de configuração da rede sem fio" + alt="LuCi web interface - janela de configuração da rede sem fio"/> + <figcaption>LuCi web interface - janela de configuração da rede sem fio</figcaption> + </figure> + <p>Na seção <i>Configuração da interface</i>, defina o <i>Modo</i>, sendo Ponto de Acesso (AP) utilizado para acesso à rede interna e internet via Wi-Fi (outros modos possíveis são Cliente, Ad-Hoc, Monitor, etc); e o <i>ESSID</i> para o nome de rede Wi-Fi desejado.</p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_480x.png 480w, /images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_720x.png 720w, /images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_1024x.png" + title="LuCi web-interface - janela de configuração da rede sem fio" + alt="LuCi web interface - janela de configuração da rede sem fio"/> + <figcaption>LuCi web interface - janela de configuração da rede sem fio</figcaption> + </figure> + <p> + Na aba <i>Segurança da Rede sem Fio</i> escolha a chave de criptografia de conexão dos clientes. Sendo possíveis as chaves OWE (rede aberta), WPA-PSK, WPA2-PSK e WAP3-SAE com possibilidade de combinações de chaves. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_480x.png 480w, /images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_720x.png 720w, /images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_1024x.png" + title="LuCi web-interface - janela de configuração da rede sem fio" + alt="LuCi web interface - janela de configuração da rede sem fio"/> + <figcaption>LuCi web interface - janela de configuração da rede sem fio</figcaption> + </figure> + </section> + <section class="features"> + <h1><a href="#acesso-ssh" name="ssh" title="Acesso por ssh">Acesso por SSH</a> <a href="#banner" title="Topo da página">^</a></h1> + <p> + LibreCMC também pode ser acessado por SSH para realização de configuração e manutenção. Isso torna possível, por exemplo, instalar LibreCMC sem a interface web de configuração Luci instalado, liberando espaço para a instalação de programas. + </p> + <figure class="image img"> + <img srcset="/images/librecmc/librecmc-ssh-acesso_480x.png 480w, /images/librecmc/librecmc-ssh-acesso_720x.png 720w, /images/librecmc/librecmc-ssh-acesso_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-ssh-acesso_1024x.png" + title="Acesso por SSH" + alt="Acesso por SSH"/> + <figcaption>Acesso por SSH</figcaption> + </figure> + <h2><a href="#configuracao-acesso-ssh" name="configuracao-acesso-ssh" title="Acesso">Configuração do acesso SSH</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + O acesso por SSH é realizado através do programa Dropbear, um serviço de SSH muito leve, dedicado a embarcados, mas também usado em initramfs para acesso a máquinas antes mesmo do kernel ser carregado. + </p> + <p> + Na interface web Luci, a página de configuração do acesso por SSH está localizada em <i>Sistema > Administração</i> Aba <i>Acesso SSH</i>. Por questões de segurança remova a autenticação por senha e configure a autenticação por chave SSH na aba <i>Chaves SSH</i> adicionando sua chave pública SSH à configuração. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-ssh-servico_480x.png 480w, + /images/librecmc/librecmc-luci-ssh-servico_720x.png 720w, + /images/librecmc/librecmc-luci-ssh-servico_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-ssh-servico_1024x.png" + title="Configuração SSH pela web interface Luci" + alt="Configuração SSH pela web interface Luci"/> + <figcaption>Configuração SSH pela web interface Luci</figcaption> + </figure> + <p> + Se o seu sistema operacional é Gnu/Linux, sua chave pública geralmente é localizada em <i>~/.ssh/id_rsa.pub</i>. Você pode simplesmente arrastar o arquivo do seu gerenciador de arquivos para o local indicado na janela da interface Luci ou copiar e colar o conteúdo da chave pública. + </p> + <figure class="image img"> + <img + srcset="/images/librecmc/librecmc-luci-ssh-chaves_480x.png 480w, + /images/librecmc/librecmc-luci-ssh-chaves_720x.png 720w, + /images/librecmc/librecmc-luci-ssh-chaves_1024x.png" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/librecmc/librecmc-luci-ssh-chaves_1024x.png" + title="Configuração de chaves SSH pela web interface Luci" + alt="Configuração de chaves SSH pela web interface Luci"/> + <figcaption>Configuração de chaves SSH pela web interface Luci</figcaption> + </figure> + <h2><a href="#acesso-ssh-terminal" name="acesso-ssh-terminal" title="Acesso">Acesso SSH</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Para acessar o LibreCMC pelo SSH basta executar o comando no terminal: + </p> + <code> + ssh root@192.168.10.1 + </code> + <h2><a href="#atualização-firmware-ssh" name="atualização-firmware-ssh" title="Acesso">Atualização do firmware</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Diferentemente de firmwares proprietários, o LibreCMC lança novas versões com frequência. Então, é possível manter o roteador atualizado com LibreCMC. O firmware pode ser atualizado tanto pela interface web Luci quanto pelo shell através do acesso SSH. Aqui trataremos do procedimento de atualização pelo shell. + </p> + <p> + Essa seção da página <i>Cópia de Segurança/Grava Firmware</i> é destinada a fazer instalação de imagens do firmware de fábrica ou de atualizações compatíveis com <i>sysupgrade</i>. Faça o <a href="https://gogs.librecmc.org/libreCMC/libreCMC/wiki/Releases" title="Página de releases do LibreCMC">download da imagem do seu dispositivo</a> e do seu arquivo de verificação de integridade <i>sha256sums</i> ou faça a construção você mesmo. As imagens são nomeadas da seguinte forma: + </p> + <p> + <i>librecmc-$BUILD_TARGET-generic-$TARGET_PROFILE-$VERSION-$FS_TYPE-factory.bin</i> e <i>librecmc-$BUILD_TARGET-generic-$TARGET_PROFILE-$VERSION-$FS_TYPE-sysupgrade.bin</i> + </p> + <p> + Sendo $BUILD_TARGET = target (ex. ar71xx), $TARGET_PROFILE = dispositivo, $VERSION = versão do dispositivo. + </p> + <p> + A image cujo nome termina com <i>factory.bin</i> faz uma instalação limpa, geralmente utilizada para instalação à partir do firmware proprietário, enquanto a imagem com nome terminando com <i>sysupgrade.bin</i> faz uma instalação mantendo a configuração, geralmente utilizada para instalação de atualizações. + </p> + <code> + scp librecmc-$BUILD_TARGET-generic-$TARGET_PROFILE-$VERSION-$FS_TYPE-sysupgrade.bin sha256sums root@192.168.1.1:/tmp + </code> + <p> + Acesse o roteador pelo SSH: + </p> + <code> + ssh root@192.168.10.1:/tmp + </code> + <p> + Faça a verificação da integridade das imagens executando o comando sha256sum no arquivo sha256sums: + </p> + <code> + sha256sum --ignore-missing -c sha256sums + </code> + <p> + Se o resultado for <i>OK</i>, a imagem está íntegra e você pode fazer a atualização com segurança. + </p> + <p>O processo de gração/atualização do novo firmware é demorado, então espere até que tudo esteja finalizado, senão você corre o risco de fazer tijolo do seu roteador. Faça a atualização executando o seguinte comando:</p> + <code> + sysupgrade -v /tmp/librecmc-$BUILD_TARGET-generic-$TARGET_PROFILE-$VERSION-$FS_TYPE-sysupgrade.bin + </code> + </section> + <section class="features"> + <h1><a name="uci"><a href="#uci" title="UCI">UCI - Interface de Configuração Unificada</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + UCI é um sistema para centralizar a configuração dos serviços do LibreCMC. É a principal interface de configuração do sistema, incluindo a configuração principal de interface de rede, configurações sem fio, funcionalidade de registro e configuração de acesso remoto. + </p> + <p> + Muitos pacotes no repositório LibreCMC são compatíveis com o sistema UCI. As aplicações são feitas compatíveis simplesmente escrevendo o arquivo de configuração original (que é lido pelo programa) de acordo com as configurações escolhidas no arquivo UCI correspondente. Isso é feito ao executar os scripts de inicialização em <i>/etc/init.d/</i>. Assim, ao iniciar um daemon com tal script de inicialização compatível com UCI, você deve estar ciente de que o arquivo de configuração original do programa é substituído. Por exemplo, no caso do Samba/CIFS, o arquivo <i>/etc/samba/smb.conf</i> é substituído com configurações UCI do arquivo de configuração do UCI <i>/etc/config/samba</i> ao executar <i>/etc/init.d/samba</i> start. Além disso, o arquivo de configuração do aplicativo é frequentemente armazenado em RAM em vez de em flash, porque ele não precisa ser armazenado em memória não volátil e é reescrito após cada mudança, com base no arquivo UCI. Existem maneiras de desativar o UCI caso você queira ajustar as configurações no arquivo de configuração original não disponível através do UCI, em cifs.server você pode ver como desativar UCI para samba, por exemplo. + </p> + <p> + Para aqueles programas não compatíveis com UCI, existe uma lista conveniente de alguns <a href="#configuracao-nao-uci" title="Arquivos de Configuração não UCI">arquivos de configuração não-UCI</a> que você pode querer atender. Note que, para a maioria dos programas de terceiros, você deve consultar a própria documentação do programa. + </p> + <h2><a href="#uci-principios-comuns" name="uci-principios-comuns" title="Princípios da configuração UCI">Princípios comuns</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + A configuração central do LibreCMC está dividida em vários arquivos localizados no diretório <i>/etc/config/</i>. Cada arquivo se relaciona aproximadamente com a parte do sistema que ele configura. <strong>Você pode editar os arquivos de configuração com um editor de texto</strong> ou <strong>modificá-los com o programa utilitário de linha de comando UCI</strong>. Arquivos de configuração UCI também são modificáveis através de várias APIs de programação (como Shell, Lua e C), que também é como interfaces web como LuCI fazem alterações nos arquivos UCI. + </p> + <p> + Como exemplo de modificação da configuração do UCI, suponha que você queira alterar o endereço IP do dispositivo do padrão 192.168.1.1 para 192.168.2.1. Para fazer isso, usando qualquer editor de texto, como vi, altere a linha: + </p> + <code> + option ipaddr 192.168.1.1 + </code> + <p> + No arquivo /etc/config/network para: + </p> + <code> + option ipaddr 192.168.2.1 + </code> + <p> + Em seguida, commit as configurações executando + </p> + <code> + /etc/init.d/network restart + </code> + <p> + Neste caso, lembre-se que você tem que fazer login novamente usando o SSH como o dispositivo está agora acessível em seu novo endereço IP. + </p> + <h2><a href="#uci-arquivos-configuracao" name="uci-arquivos-configuracao" title="Arquivos de configuração UCI">Arquivos de configuração UCI</a> <a href="#banner" title="Topo da página">^</a></h2> + <table> + <tr> + <th style="text-align: left">Arquivo</th> + <th style="text-align: left">Descrição</th> + </tr> + <tr> + <td style="text-align: left"><strong>Básicas</strong></td> + <td></td> + </tr> + <tr> + <td>/etc/config/dhcp</td> + <td>Dnsmasq e odhcpd configuração: DNS, DHCP, DHCPv6 </td> + </tr> + <tr> + <td>/etc/config/dropbear</td> + <td>SSH configurações</td> + </tr> + <tr> + <td>/etc/config/firewall</td> + <td>NAT, filtro de pacotes, encaminhamento de porta, etc. </td> + </tr> + <tr> + <td>/etc/config/network</td> + <td>Configuração switch, rotas</td> + </tr> + <tr> + <td>/etc/config/system</td> + <td>Conjunto de configurações de sistema, NTP, RNG, Watchcat</td> + </tr> + <tr> + <td>/etc/config/wireless</td> + <td>Configurações da rede Wi-Fi</td> + </tr> + <tr> + <td style="text-align: left"><strong>Rede IPv6</strong></td> + <td></td> + </tr> + <tr> + <td>/etc/config/ahcpd</td> + <td>Configuração do servidor de encaminhamento Ad-Hoc, protocolo (AHCP)</td> + </tr> + <tr> + <td>/etc/config/dhcp6c</td> + <td>Cliente WIDE-DHCPv6 </td> + </tr> + <tr> + <td>/etc/config/dhcp6s</td> + <td>Servidor DHCPv6</td> + </tr> + <tr> + <td>/etc/config/gw6c</td> + <td>Configuração do cliente GW6c</td> + </tr> + <tr> + <td style="text-align: left"><strong>Outros</strong></td> + <td></td> + </tr> + <tr> + <td>/etc/config/acme</td> + <td>Configuração do certificado via ACME</td> + </tr> + <tr> + <td>/etc/config/babeld</td> + <td>Configuração babeld</td> + </tr> + <tr> + <td>/etc/config/bbstored</td> + <td>Configuração do servidor BoxBackup</td> + </tr> + <tr> + <td>/etc/config/cloudflared</td> + <td>Configuração do tunel Cloudflare</td> + </tr> + <tr> + <td>/etc/config/ddns</td> + <td>Configuração de DNS dinâmico (ddns-scripts) </td> + </tr> + <tr> + <td>/etc/config/dnscrypt-proxy</td> + <td>Configuração do DNSCrypt</td> + </tr> + <tr> + <td>/etc/config/dockerd</td> + <td>Configuração do motor Docker CE</td> + </tr> + <tr> + <td>/etc/config/emailrelay</td> + <td>E-MailRelay: servidor simples de SMTP e proxy com suport POP. Package emailrelay</td> + </tr> + <tr> + <td>/etc/config/etherwake</td> + <td>Wake-on-Lan: etherwake</td> + </tr> + <tr> + <td>/etc/config/freifunk_p2pblock</td> + <td>Usa iptables layer7-, ipp2p- e recentes módulos de bloqueio de tráfego p2p/filesharing</td> + </tr> + <tr> + <td>/etc/config/fstab</td> + <td>Configuração de pontos de montagem e swap</td> + </tr> + <tr> + <td>/etc/config/hd-idle</td> + <td>Outro servidor de discos</td> + </tr> + <tr> + <td>/etc/config/httpd</td> + <td>Configuração de servidor Web (Busybox httpd, deprecated)</td> + </tr> + <tr> + <td>/etc/config/ipset-dns</td> + <td>Configuração ipset-dns</td> + </tr> + <tr> + <td>/etc/config/kadnode</td> + <td>KadNode p2p DNS</td> + </tr> + <tr> + <td>/etc/config/luci</td> + <td>Configurações básicas da interface web de configuração LibreCMC LuCI</td> + </tr> + <tr> + <td>/etc/config/luci_statistics</td> + <td>Configuração de obtenção de estatística de pacotes</td> + </tr> + <tr> + <td>/etc/config/mini_snmpd</td> + <td>Configuração do servidor mini_snmpd</td> + </tr> + <tr> + <td>/etc/config/minidlna</td> + <td>Configuração do servidor de mídia MiniDLNA</td> + </tr> + <tr> + <td>/etc/config/mjpg-streamer</td> + <td>Aplicação de Streaming para webcams compatíveis com Linux-UVC</td> + </tr> + <tr> + <td>/etc/config/mountd</td> + <td>Servidor automount LibreCMC</td> + </tr> + <tr> + <td>/etc/config/mroute</td> + <td>Configuraão de arquivos para múltiplas rotas WAN</td> + </tr> + <tr> + <td>/etc/config/multiwan</td> + <td>Configuração simples de multi WAN</td> + </tr> + <tr> + <td>/etc/config/mwan3</td> + <td>Configurção Multi-WAN com load balancing and mais</td> + </tr> + <tr> + <td>/etc/config/nodogsplash</td> + <td>Configurção nodogsplash</td> + </tr> + <tr> + <td>/etc/config/ntpclient</td> + <td>Sincronização de tempo através de cliente ntp</td> + </tr> + <tr> + <td>/etc/config/nut_server</td> + <td>Controle da UPS (Uninterruptible Power Supply) e/ou completilhamento com outros hosts</td> + </tr> + <tr> + <td>/etc/config/nut_monitor</td> + <td>Monitoramento de UPS (Uninterruptible Power Supply) de um remote host ou local nut-server</td> + </tr> + <tr> + <td>/etc/config/nut_cgi</td> + <td>Web UI para NUT (visto somente em UCI)</td> + </tr> + <tr> + <td>/etc/config/p910nd</td> + <td>Configuração para serviço de impressão non-spooling p910nd.server</td> + </tr> + <tr> + <td>/etc/config/pure-ftpd</td> + <td>Configuração do serviço Pure-FTPd</td> + </tr> + <tr> + <td>/etc/config/qos</td> + <td>Implementação do Quality of Service para upload</td> + </tr> + <tr> + <td>/etc/config/racoon</td> + <td>Serviço racoon IPsec</td> + </tr> + <tr> + <td>/etc/config/samba</td> + <td>Configuração para o Microsoft file e serviço de impressão</td> + </tr> + <tr> + <td>/etc/config/snmpd</td> + <td>Configuração SNMPd</td> + </tr> + <tr> + <td>/etc/config/sqm</td> + <td>Configuração SQM</td> + </tr> + <tr> + <td>/etc/config/sshtunnel</td> + <td>Configuração para o pacote sshtunnel</td> + </tr> + <tr> + <td>/etc/config/stund</td> + <td>Configuração para o seriço STUN</td> + </tr> + <tr> + <td>/etc/config/tinc</td> + <td>Configuração do pacore tinc</td> + <tr> + <tr> + <td>/etc/config/tor</td> + <td>Configuração Tor</td> + </tr> + <tr> + <td>/etc/config/tor-hs</td> + <td>Configuração de serviços ocultos por Tor</td> + </tr> + <tr> + <td>/etc/config/transmission</td> + <td>Configuração BitTorrent</td> + </tr> + <tr> + <td>/etc/config/uhttpd</td> + <td>Configurações do Web server (uHTTPd)</td> + </tr> + <tr> + <td>/etc/config/upnpd</td> + <td>Configuração do serviço miniupnpd UPnP</td> + </tr> + <tr> + <td>/etc/config/users</td> + <td>Banco de dados de usuários para diferentes serviços</td> + </tr> + <tr> + <td>/etc/config/ushare</td> + <td>Configurações do serviço uShare UPnP</td> + </tr> + <tr> + <td>/etc/config/vblade</td> + <td>vblade userspace AOE target</td> + </tr> + <tr> + <td>/etc/config/vnstat</td> + <td>Configurações do gerenciador de download vnstat</td> + </tr> + <tr> + <td>/etc/config/wifitoggle</td> + <td>Configuração do botão Toggle WiFi</td> + </tr> + <tr> + <td>/etc/config/wol</td> + <td>Wake-on-Lan: wol</td> + </tr> + <tr> + <td>/etc/config/znc</td> + <td>Configuração do serviço ZNC bouncer (IRC)</td> + </tr> + </table> + <h2><a href="#uci-sintaxe-configuracao" name="uci-sintaxe-configuracao" title="Sintaxe dos arquivos de configuração UCI">Sintaxe dos arquivos de configuração</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Os arquivos de configuração UCI geralmente consistem em uma ou mais instruções de configuração, chamadas seções com uma ou mais instruções de opção definindo os valores reais. + </p> + <p> + A # começa comentários da maneira usual. Especificamente, se uma linha contém um # fora de uma string literal, ele e todos os caracteres após ele na linha são considerados um comentário e ignorados. + </p> + <p> + Abaixo está um exemplo de um arquivo de configuração simples: + </p> + <code> + <pre> +package 'example' + +config 'example' 'test' + option 'string' 'some value' + option 'boolean' '1' + list 'collection' 'first item' + list 'collection' 'second item' + </pre> + </code> + <ul style="list-style-type:disc; padding-left:5%;"> + <li> + A configuração do pacote 'exemplo' define o início de uma seção com nome de 'teste'. Também pode ser chamado de seções anônimas com apenas um tipo, mas sem identificador de nome. O tipo é importante para que os programas de processamento decidam como tratar as opções fechadas. + </li> + <li> + A opção 'string' 'algum valor' e 'boolean' '1' linhas definem valores simples dentro da seção. Observe que não há diferenças sintáticas entre as opções texto e booleano. Por convenção, as opções booleanas podem ter um dos valores '0', 'não', 'off', 'falso' ou 'desactivado' para especificar um valor falso ou '1', 'sim', 'on', 'true' ou ' habilitado' para especificar um valor verdadeiro. + </li> + <li> + Nas linhas começando com uma palavra-chave lista uma opção com múltiplos valores é definida. Todas as declarações de lista que compartilham o mesmo nome, coleção em nosso exemplo, serão combinadas em uma única lista de valores com a mesma ordem que no arquivo de configuração. + </li> + <li> + A indentação da opção e instruções de lista é uma convenção para melhorar a legibilidade do arquivo de configuração, mas não é sintaticamente necessária. + </li> + <li> + Se uma opção estiver ausente e não for necessária, o valor padrão é assumido. Se estiver ausente e necessário, pode desencadear um erro na aplicação ou outro comportamento indesejado. + </li> + <li> + Uma forma de desativar uma seção de configuração, que não tem uma opção habilitada para ser desabilitada, é renomear o identificador de seção de configuração (ou tipo, neste exemplo de caso) para um valor não reconhecido pelos processos que usam esses valores. Normalmente, um identificador_desativado como tipo/identificador de seção de configuração é suficiente. + </li> + </ul> + <p> + Normalmente você não precisa anexar identificadores ou valores nas citações. As citações só são necessárias se o valor fechado contiver espaços ou abas. Também é legal usar aspas em vez de cotações simples ao digitar opções de configuração. + </p> + <p> + Todos os exemplos abaixo são sintaxe UCI válida: + </p> + <code> + <pre> +option example value +option example "value" +option 'example' value +option 'example' "value" +option "example" 'value' + </pre> + </code> + <p> + É importante saber que identificadores UCI e nomes de arquivos de configuração podem conter apenas os caracteres a-z, 0-9 e _. Por exemplo, não são permitidos hífens (-). Os valores de opção podem conter qualquer caractere (enquanto forem devidamente citados). + </p> + <h2><a href="#uci-utilitario-linha-comando" name="uci-utilitario-linha-comando" title="Utilitário de linha de comando UCI">Utilitário de linha de comando UCI</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + <strong>Para ajustar as configurações, normalmente se muda os arquivos de configuração UCI diretamente</strong>. No entanto, para fins de script, toda a configuração do UCI também pode ser lida e alterada usando o utilitário de linha de comando <i>uci</i>. Para desenvolvedores que necessitam de processamento automático da configuração UCI, é, portanto, redundante, imprudente e ineficiente usar awk e grep para processar os arquivos de configuração do LibreCMC. O utilitário <i>uci</i> oferece toda a funcionalidade no que diz respeito a modificar e processar UCI. + </p> + <p> + Abaixo está o uso, bem como alguns exemplos úteis de como usar este utilitário poderoso. + </p> + <p> + <i>Ao usar uci para escrever arquivos de configuração, os arquivos são sempre reescritos em comandos inteiros e os comandos não reconhecidos são omitidos. Isso significa que quaisquer linhas estranhas no arquivo são excluídas, como comentários. Se você tem arquivos de configuração UCI que você mesmo editou e deseja preservar seus próprios comentários e linhas em branco, você não deve usar o utilitário linha de comando, mas editar os arquivos normalmente. Note que alguns arquivos, como o arquivo de configuração uHTPd, já contêm muitos comentários quando o aplicativo é instalado pela primeira vez. Além disso, note que algumas aplicações como LuCI também usam o utilitário uci e, assim, podem reescrever arquivos de configuração UCI.</i> + </p> + <p> + Quando existem várias seções do mesmo tipo em uma configuração, UCI suporta referências tipo array para elas. Se existem 8 servidores NTP definidos em /etc/config/system, UCI permitirá que você refira suas seções como system.@timeserver[0] para o primeiro ou system.@timeserver[7] para o último. Você também pode usar índices negativos, como system.@timeserver[-1]. “-1” significa o último, “-2” significa o segundo a último, e assim por diante. Isto é muito útil ao adicionar novas regras ao fim de uma lista. Veja os exemplos abaixo. + </p> + <h3><a href="#uci-uso" name="uci-uso" title="Uso do utilitário de linha de comando UCI">Uso</a> <a href="#banner" title="Topo da página">^</a></h3> + <p> + UCI segue a seguinte sintaxe de linha de comando: + </p> + <code> + Usage: uci [<options>] <command> [<arguments>] + </code> + <p> + A seguir tabela de comandos: + </p> + <table> + <tr> + <th>Comando</th> + <th>Alvo</th> + <th>Descrição</th> + </tr> + <tr> + <td>commit</td> + <td>[<config>]</td> + <td>Grava as alterações do ficheiro de configuração indicado, ou se não for indicado nenhum, todos os ficheiros de configuração, para o sistema de ficheiros. Todos os comandos "uci set", "uci add", "uci rename" e "uci delete" são encenados em um local temporário e escritos para flash imediatamente com "uci commit". Isso não é necessário depois de editar arquivos de configuração com um editor de texto, mas para scripts, GUIs e outros programas trabalhando diretamente com arquivos UCI.</td> + </tr> + <tr> + <td>batch</td> + <td>-</td> + <td>Executa um script UCI de várias linhas que é tipicamente envolvido em uma sintaxe de documento aqui.</td> + </tr> + <tr> + <td>export</td> + <td>[<config>]</td> + <td>Exporta a configuração em um formato legível por máquina. É usado internamente para avaliar arquivos de configuração como scripts shell.</td> + </tr> + <tr> + <td>import</td> + <td>[<config>]</td> + <td>Importa arquivos de configuração na sintaxe UCI.</td> + </tr> + <tr> + <td>changes</td> + <td>[<config>]</td> + <td>Lista as alterações encenadas para o ficheiro de configuração indicado ou, se não for indicado, todos os ficheiros de configuração.</td> + </tr> + <tr> + <td>add</td> + <td><config> <section-type></td> + <td>Adicionar uma secção anónima do tipo de secção à configuração indicada.</td> + </tr> + <tr> + <td>add_list</td> + <td><config>.<section>.<option>=<string></td> + <td>Adicionar o texto indicado a uma opção de lista existente.</td> + </tr> + <tr> + <td>del_list</td> + <td><config>.<section>.<option>=<string></td> + <td>Remover o texto fornecido de uma opção de lista existente.</td> + </tr> + <tr> + <td>show</td> + <td>[<config>[.<section>[.<option>]]]</td> + <td>Mostra a opção, secção ou configuração indicada na notação compactada.</td> + </tr> + <tr> + <td>get</td> + <td><config>.<section>[.<option>]</td> + <td>Obter o valor da opção indicada ou o tipo da secção indicada.</td> + </tr> + <tr> + <td>set</td> + <td><config>.<section>[.<option>]=<value></td> + <td>Defina o valor da opção indicada, ou adicione uma nova seção com o tipo definido para o valor indicado.</td> + </tr> + <tr> + <td>delete</td> + <td><config>.<section>[.<option>]</td> + <td>Apagar a secção ou opção indicada.</td> + </tr> + <tr> + <td>rename</td> + <td><config>.<section>[.<option>]=<name></td> + <td>Renomeie a opção ou seção indicada para o nome dado.</td> + </tr> + <tr> + <td>revert</td> + <td><config>[.<section>[.<option>]]</td> + <td>Reverter a opção indicada, seção ou arquivo de configuração.</td> + </tr> + <tr> + <td>reorder</td> + <td><config>.<section>=<position></td> + <td>Mova uma secção para outra posição.</td> + </tr> + </table> + <h3><a href="#uci-uso-exemplos" name="uci-uso-exemplos" title="Exemplos de uso de UCI">Exemplos</a> <a href="#banner" title="Topo da página">^</a></h3> + <h3>Exemplos</h3> + <h4>Configurando um valor</h4> + <p> + Se queremos alterar a porta de escuta do servidor web uHTPd de 80 para 8080, alteramos a configuração em /etc/config/uhttpd: + </p> + <code> + <pre> +uci set uhttpd.main.listen_http='8080' +uci commit uhttpd +/etc/init.d/uhttpd restart + </pre> + </code> + <p> + Feito, agora o arquivo de configuração é atualizado e uHTTPd escuta na porta 8080. + </p> + <h4>Exportar uma configuração inteira</h4> + <code> + uci export configuration_name + </code> + <p> + As configurações comumente disponíveis são: defaults, dnsmasq, dropbear, firewall, fstab, net, qos, samba, system, wireless. + </p> + <h4>Mostrando uma configuração</h4> + <code> + uci show configuration_name + </code> + <code> + <pre> +# uci show system +system.@system[0]=system +system.@system[0].hostname='LibreCMC' +system.@system[0].timezone='UTC' +system.ntp=timeserver +system.ntp.server='0.openwrt.pool.ntp.org' '1.openwrt.pool.ntp.org' '2.openwrt.pool.ntp.org' '3.openwrt.pool.ntp.org' +system.ntp.enabled='1' +system.ntp.enable_server='0' + </pre> + </code> + <h4>Mostrar apenas o valor de uma opção</h4> + <code> + uci get httpd.@httpd[0].port + </code> + <h4>Adicionar um item a uma lista</h4> + <code> + uci add_list system.ntp.server='0.de.pool.ntp.org' + </code> + <h4>Substituir uma lista completamente</h4> + <code> + <pre> +uci delete system.ntp.server +uci add_list system.ntp.server='0.de.pool.ntp.org' +uci add_list system.ntp.server='1.de.pool.ntp.org' +uci add_list system.ntp.server='2.de.pool.ntp.org' + </pre> + </code> + <h4>Adicionando uma seção com nome à configuração</h4> + <p> + Para adicionar uma seção nomeada de um determinado tipo, deve ser usada a forma sem opção do comando uci set. + </p> + <code> + <pre> +touch /etc/config/example +uci set example.this_name=blah +uci set example.this_name.xxx=yyy +uci set example.other_name=blah +uci set example.other_name.yyy=zzz +uci commit example + </pre> + </code> + <code> + uci show example + </code> + <code> + <pre> +example.this_name=blah +example.this_name.xxx=yyy +example.other_name=blah +example.other_name.yyy=zzz + </pre> + </code> + <code> + cat /etc/config/example + </code> + <code> + <pre> +config blah 'this_name' + option xxx 'yyy' + +config blah 'other_name' + option yyy 'zzz' + </pre> + </code> + <h4>Salvando valores modificados de uma única configuração</h4> + <code> + <pre> +uci commit configuration_name +reload_config + </pre> + </code> + <h2><a href="#configuracao-nao-uci" name="configuracao-nao-uci" title="Configuração do sistema não tratada pelo UCI">Configuração de sistema não tratada por UCI</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Muitas coisas podem (e, portanto, devem ser) configuradas com <i>uci</i> através de qualquer uma de suas interfaces. Esta página se preocupa com tudo o que está embutido no LibreCMC que não pode ser configurado com UCI. Note que a maioria das aplicações de terceiros, instaladas com opkg ou de outra forma, normalmente também têm seus próprios métodos de configuração. Usuários experientes com distribuição GNU/Linux saberão tudo isso de cor. Para iniciantes isso deve ser útil. + </p> + <h3><a href="#arquivos-configuracao-nao-uci" name="arquivos-configuracao-nao-uci" title="Arquivos de configuração não tratada pelo UCI">Arquivos de configuração não UCI</a> <a href="#banner" title="Topo da página">^</a></h3> + <table> + <tr> + <th>Configuração</th> + <th>Descripção</th> + </tr> + <tr> + <td>/etc/banner</td> + <td>Banner recepção de Login.</td> + </tr> + <tr> + <td>/etc/crontabs</td> + <td>Cron</td> + <tr> + <tr> + <td>/etc/dnsmasq.conf</td> + <td>Dnsmasq</td> + </tr> + <tr> + <td>/etc/ethers</td> + <td>See: Dnsmasq</td> + </tr> + <tr> + <td>/etc/firewall.user</td> + <td>Firewall</td> + </tr> + <tr> + <td>/etc/apcupsd/apcupsd.conf</td> + <td></td> + </tr> + <tr> + <td>/etc/fstab</td> + <td>Um link simbólico para /tmp/fstab que está sendo criado e configurado pelo UCI em /etc/config/fstab.</td> + </tr> + <tr> + <td>/etc/fw_env.config</td> + <td></td> + <tr> + <tr> + <td>/etc/group</td> + <td>Este é um arquivo ASCII que define os grupos aos quais os usuários pertencem.</td> + <tr> + <tr> + <td>/etc/hosts</td> + <td>Dnsmasq</td> + </tr> + <tr> + <td>/etc/hosts.allow</td> + <td></td> + </tr> + <tr> + <td>/etc/hosts.deny</td> + <td></td> + </tr> + <tr> + <td>/etc/hotplug.d</td> + <td>Hotplug</td> + </tr> + <tr> + <td>/etc/init.d/rcS</td> + <td>Executado por init a cada início.</td> + </tr> + <tr> + <td>/etc/inittab</td> + <td>Exemplos inittab</td> + </tr> + <tr> + <td>/etc/iproute2/rt_tables</td> + <td>Configuração de tabelas de roteamento: iproute2</td> + </tr> + <tr> + <td>/etc/mtab</td> + <td>filesystems, flash.layout, procfs, sysfs, devpts</td> + </tr> + <tr> + <td>/etc/opkg.conf</td> + <td>Opkg</td> + </tr> + <tr> + <td>/etc/passwd</td> + <td></td> + </tr> + <tr> + <td>/etc/preinit</td> + <td>Em LibreCMC o Kernel é executado pelo bootloader com a opção init=/etc/preinit (em vez do init=/sbin/init usual). Assim, o Kernel executa /etc/preinit. Process.boot</td> + </tr> + <tr> + <td>/etc/profile</td> + <td></td> + </tr> + <tr> + <td>/etc/protocols</td> + <td></td> + </tr> + <tr> + <td>/etc/rc.common</td> + <td>Parte do Shebang (Unix) de muitos scripts shell em /etc/init.d. Verifica os scripts iniciais por erros. Por exemplo, desde R27797 verifica se “start” e “stop” são definidos.</td> + </tr> + <tr> + <td>/etc/rc.local</td> + <td>Este ficheiro é executado pelo /etc/rc.d/S95done em cada arranque. Você deve tratar este arquivo como um script de shell.</td> + </tr> + <tr> + <td>/etc/resolv.conf</td> + <td>Um link simbólico para /tmp/resolv.conf.</td> + </tr> + <tr> + <td>/etc/services</td> + <td></td> + </tr> + <tr> + <td>/etc/shells</td> + <td></td> + </tr> + <tr> + <td>/etc/sysctl.conf</td> + <td>/etc/sysctl.conf é chamado de cada inicialização por /etc/rc.d/S99sysctl.</td> + </tr> + <tr> + <td>/etc/sysupgrade.conf</td> + <td>Este arquivo contém arquivos e diretórios que devem ser preservados durante uma atualização. Sysupgrade</td> + </tr> + <tr> + <td>/etc/TZ</td> + <td>Um link simbólico para /tmp/TZ que está sendo criado e configurado com UCI em /etc/config/system</td> + </tr> + </table> + </section> + <section class="features"> + <h1><a href="#gerenciador-pacotes-opkg" name="gerenciador-pacotes-opkg" title="Gereciador de pacotes">Gerenciador de pacotes opkg</a> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O gerenciador de pacotes do LibreCMC é chamado pelo comando <i>opkg</i> e por meio dele é possível instalar pacotes do seu repositório. Atualmente o repositório contém 2417 pacotes para serem instalados, sendo limitado apenas pelos recursos do seu dispositivo. A seguir comandos mais utilizados. + </p> + <h3>Comandos de manipulação de pacotes</h3> + <p> + Abaixo sequência de comando para obter informações sobre os pacotes. + </p> + <p> + Atualização do repositório: + </p> + <code> + opkg update + </code> + <p> + Atualizar pacote: + </p> + <code> + opkg upgrade <pacote> + </code> + <p> + <strong><i>**nunca atualize muitos bacotes ao mesmo tempo, pois existe change real de bricar o aparelho**</i></strong> + </p> + <p> + Remove pacote: + </p> + <code> + opkg remove <pacote> + </code> + <h3>Comandos para obter informações</h3> + <p> + Abaixo comando para obter informações sobre os pacotes. + </p> + <p> + Listar pacotes disponíveis: + </p> + <code> + opkg list + </code> + <p> + Listar pacotes instalados: + </p> + <code> + opkg list-installed + </code> + <p> + listar pacotes com atualizações: + </p> + <code> + opkg list-upgradable + </code> + <p> + Procurar pacotes a partir do nome ou descrição: + </p> + <code> + opkg find <pacote> + </code> + <p> + Procurar pacotes que tem o arquivo: + </p> + <code> + opkg search <arquivo> + </code> + <p> + Informmação sobre o pacote: + </p> + <code> + opkg info <pacote> + </code> + </section> + <section class="features"> + <h1><a href="#router-hard-reset" name="router-hard-reset" title="router-hard-reset">Router hard reset</a> <a href="#banner" title="Topo da página">^</a></h1> + <h2><a href="#router-hard-reset-fisico" name="router-hard-reset-fisico" title="Hard reset físico">Router hard reset físico</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Segure o botão de <i>reiniciar</i> até o LED SYS piscar mais rápido. Solte o botão de <i>reiniciar</i> e espere até que o roteador reinicie. + </p> + <h2><a href="#router-hard-reset-ssh" name="router-hard-reset-ssh" title="Hard reset pelo SSH">Router hard reset pelo</a> <a href="#banner" title="Topo da página">^</a></h2> + <p> + Se conecte ao roteador por SSH e execute o comando <i>firstboot</i>: + </p> + <code> + <pre> +ssh root@192.168.10.1 +firstboot + </pre> + </code> + <p> + Também é possível realizar o hard reset pela interface de configuração LuCi. + </p> + </section> + <section class="features"> + <h1><a name="bibliografia"><a href="#bibliografia" title="Bibliografia">Bibliografia</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <ul> + <li>Página do projeto LibreCMC - <a href="https://librecmc.org/" name="site-do-projeto-librecmc" title="Site do projeto LibreCMC">https://librecmc.org</a></li> + <li>Página da documentação openwrt sobre a interface Luci - <a href="https://openwrt.org/docs/guide-user/luci/start" name="documentacao-luci-openwrt" title="Documentação do projeto openwrt sobre o interface Luci">https://openwrt.org/docs/guide-user/luci/start</a></li> + <li>Wiki do projeto Luci - <a href="https://github.com/openwrt/luci/wiki" name="projto-luci-wiki" title="Wiki do projeto Luci">https://github.com/openwrt/luci/wiki</a></li> + <li>Wiki do projeto OpenWRT para configuração completa - <a href="https://openwrt.org/docs/guide-user/start" name="projeto-openwrt-wiki" title="Wiki do projeto OpenWRT">https://openwrt.org/docs/guide-user/start</a></li> + </ul> + </section> + </body> +</html> diff --git a/content/articles/tutoriais/replicant.html b/content/articles/tutoriais/replicant.html new file mode 100644 index 0000000..4f3903f --- /dev/null +++ b/content/articles/tutoriais/replicant.html @@ -0,0 +1,665 @@ +<html> + <head> + <title>Replicant - Guia de Introdução</title> + <meta name="tags" content="brigada digital, tutorial, software livre, sistemas, replicant, smartphone, tablet" /> + <meta name="date" content="2025-05-18 22:50" /> + <meta name="category" content="Tutoriais" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="replicant" /> + <meta name="summary" content="Guia de introdução à distribuição livre Replicant do sistema operacional para dispositivos móveis Android/Linux." /> + <meta name="status" content="published" /> + </head> + <body class="features"> + <section class="indice"> + <h1>Índice</h1> + <ul> + <li><a href="#introducao">Introdução</a></li> + <li><a href="#instalacao">Instalação</a></li> + <li><a href="#operadoras-de-telefonia-movel">Operadoras de telefonia móvel</a></li> + <li><a href="#android-debug-bridge-adb">Android Debug Bridge (ADB)</a></li> + <li><a href="#backup-e-restauracao-da-particao-do-modem-efs">Backup e restauração da <br> partição do modem - EFS</a></li> + <li><a href="#tela-de-bloqueio">Tela de bloqueio</a></li> + <li><a href="#criptografia-do-sistema">Criptografia do sistema</a></li> + <li><a href="#wi-fi">Wi-Fi</a></li> + <li><a href="#tethering">Tethering</a></li> + <li><a href="#cartao-de-memoria">Cartão de memória</a></li> + <li><a href="#certificado-lets-encrypt">Certificado Let's Encrypt</a></li> + <li><a href="#aplicativos-indicados">Aplicativos indicados</a></li> + <li><a href="#backup">Backup</a></li> + <li><a href="#reset-de-fabrica-reset-factory">Reset de fábrica</a></li> + <li><a href="#futuro-do-replicant">Futuro do replicant</a></li> + <li><a href="#bibliografia">Bibliografia</a></li> + </ul> + </section> + <section class="features"> + <h1><a name="introducao"><a href="#introducao" title="Introdução">Introdução</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <figure class="image img"> + <img src="/images/sistemas/replicant.png" + title="Logo da distribuição livre Replicant do sistema operacional Android" + alt="Imagem do logo do Projeto Replicant" /> + <figcaption>Logo do Projeto Replicant</figcaption> + </figure> + <p> + O <a href="https://replicant.us/">Replicant</a> é uma distribuição Android auditada e certificada pela <a href="https://www.fsf.org/">Fundação de Software Livre</a>. Isso significa que o Replicant é uma versão do Android, sistema operacional dedicado a dispositivos móveis, composta exclusivamente por software livre. Todos os programas proprietários, firmwares e aplicativos, foram removidos ou substituídos por versões livres. Seu desenvolvimento é realizado pela comunidade hacker de software livre, que possibilita o compartilhamento de tecnologias e maior segurança, pois as licenças livres garantem a liberdade de executar, consultar, modificar e distribuir cópias dos programas. + </p> + <p> + As barreiras de controle proprietário, capitalista, dificultam o desenvolvimento. Por isso, o Replicant suporta apenas alguns <a href="https://replicant.us/supported-devices.php">modelos de smartphones e tabletes</a> e, dependendo do modelo, determinados dispositivos internos como Wi-Fi, câmera, gps e etc, podem não funcionar. Então, é preciso estar firme no propósito de emancipação da classe trabalhadora, porque usar o Replicant exige abrir mão deles. Mas os benefícios são muito maiores que os sacrifícios, visto que o Replicant é o único sistema operacional para dispositivos móveis sem controles proprietários. + </p> + </section> + <section class="features"> + <h1><a name="instalacao"><a href="#instalacao" title="Instalação">Instalação</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O processo de instalação do Replicant não é muito complicando, mas exige atenção para não fazer seu dispositivo ficar inutilizável. Não está no escopo desse guia cobrir a instalação, mesmo porque ela muda de acordo com o modelo do dispositivo a ser instalado. Se você quiser fazer a instalação, tenha em mente a <a href="https://replicant.us/supported-devices.php">lista de modelos suportados</a> e o <a href="https://redmine.replicant.us/projects/replicant/wiki#Replicant-installation-and-update">manual de instalação do projeto</a>. <b>Caso queira, podemos fazer a instalação para você, enquanto nos ajuda a manter as atividades da Brigada</b>. Entre em nossa <a href="/pages/equipamentos.html" name="pagina-equipamentos" title="Página de equipamentos produzidos pela Brigada Digital">página de equipamento</a> e veja como pedir um dispositivo com Replicant. + </p> + <figure class="image img"> + <img src="/images/equipamentos/note2-s3-replicant.png" + title="Samgung Galaxy Note 2 N7100 e Samsung Galaxy S3 I9300" + alt="Imagem de dois smartphones à esquerda Samsung Galaxy Note 2 N7100 e à direita Samsung Galaxy S3 I9300" /> + <figcaption>Samsung Galaxy Note 2 N7100 e Samsung Galaxy S3 I9300</figcaption> + </figure> + </section> + <section class="features"> + <h1><a name="operadoras-de-telefonia-movel"><a href="#operadoras-de-telefonia-movel" title="Operadoras de telefonia móvel ">Operadoras de telefonia móvel</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + A primeira coisa que geralmente fazemos antes mesmo de ligar os dispositivos móveis é instalar o cartão eSim para acessar as redes operadas pelas empresas de comunicação de dispositivos móveis. Contudo, é importante salientar que essas redes são ruins, porque as operadoras podem rastrear seu dispositivo, obtendo sua localização aproximada, conexões de internet, escutar suas ligações, ler suas mensagens SMS, etc. Então, para evitar esses mecanismos de vigilância, não utilize chip eSIM de telefonia móvel e se comunique através da internet pelas redes Wi-Fi. + </p> + <p> + Caso necessite das chamadas telefônicas ou do acesso à internet móvel, leve em consideração esses problemas de segurança. É possível minimizá-los se comunicando pela internet trafegando pelas redes de anonimato como, por exemplo, i2p ou Tor, mantendo, assim, sua comunicação criptografada e oculta, protegida da vigilância da operadora. Orbot e Invizible Pro são aplicativos fáceis de configurar que direcionam todo o fluxo de internet do dispositivo para a rede de anonimato Tor. Fazendo com que os aplicativos de mensagens, voz e vídeo usem as redes de anonimato. + </p> + </section> + <section class="features"> + <h1><a name="android-debug-bridge-adb"><a href="#android-debug-bridge-adb" title="Android Debug Bridge ADB">Android Debug Bridge (ADB)</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + A primeira coisa a fazer quando se tem um Replicant é instalar o ADB no seu computador para poder manipular o dispositivo móvel. O ADB é um programa de linha de comando muito poderoso que conecta o desktop ao sistema do smartphone/tablets para realizar diversas operações como, por exemplo, configurar conexões de rede, empurrar e puxar arquivos, fazer backup, e etc, e será necessário para realizar tópicos importantes deste guia. + </p> + <p> + <i>Tenha cuidado ao executar qualquer operação com ADB, pois ele tem a capacidade de realizar alterações profundas no sistema que pode comprometer seu funcionamento.</i> + <p/> + <h2>Instalação do ADB</h2> + <p> + Para instalar o ADB no desktop, siga as instrução abaixo referentes ao seu sistema operacional. + </p> + <h3>Parabola e Hyperbola</h3> + <code> + pacman -S android-tools android-udev heimdall + </code> + <h3>Trisquel e PureOS</h3> + <code> + apt install android-tools-adb android-tools-fastboot heimdall-flash + </code> + <h3>GNU Guix</h3> + <code> + guix install adb heimdall fastboot mkbootimg + </code> + <h2>Acesso superusuário</h2> + <p> + Habilite o acesso a superusuário para aplicativos e ADB. + </p> + <code> + Configurações -> Opções do desenvolvedor -> Acesso superusuário -> Aplicativos e ADB + </code> + <h2>Depuração Android</h2> + <p> + Habilite a interface de Ponte de Depuração Android (adb): + </p> + <code> + Configurações -> Opções do desenvolvedor -> Depuração Android + </code> + <p> + Conecte o smartphone ao computador através de cabo microUSB/USB. Uma mensagem é exibida no smartphone pedindo permissão para ativar a depuração USB com o computador. Confirme. + </p> + <p> + Verifique se a conexão entre o Replicant e o desktop está ativa usando o terminal com o comando: + </p> + <code> + adb devices + </code> + <p> + Se estiver tudo correto, o terminal exibirá o <i>número serial</i> do smartphone seguido de <i>device</i>. + </p> + </section> + <section class="features"> + <h1><a name="backup-e-restauracao-da-particao-do-modem-efs"><a href="#backup-e-restauracao-da-particao-do-modem-efsb" title="Backup e restauracao da particao do modem efs">Backup e restauração da partição do modem efs</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Muitos dispositivos suportados pelo Replicant têm uma partição com os dados do modem (IMEI, etc) que é chamado de EFS. É uma boa ideia fazer um backup dessa partição para que você possa restaurá-la se algum arquivo se corromper, o que às vezes pode acontecer com o Replicant. Sem esse backup o modem torna-se inutilizável. + </p> + <p> + A operação de backup tem especificidades em relação aos diferentes modelos. Entre na página do projeto e siga as <a href="https://redmine.replicant.us/projects/replicant/wiki/BackupTheEFS">orientações sobre backup da partição EFS</a>, e, caso precise, as <a href="https://redmine.replicant.us/projects/replicant/wiki/RestoreEfsNvDataBackupFile">orientações de restauração</a>. + </p> + <p> + <i>É muito importante fazer esse backup, pois a possibilidade de corrupção de arquivos na partição EFS é real e sem uma cópia funcional dos arquivos para a devida correção o modem torna-se inutilizável.</i> + </p> + </section> + <section class="features"> + <h1><a name="tela-de-bloqueio"><a href="#tela-de-bloqueio" title="Tela de bloqueio">Tela de Bloqueio</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Para manter seguro o sistema e os arquivos de acesso físico não autorizado ao dispositivo é importante definir uma senha de bloqueio da tela. Para tanto, siga o caminho abaixo e as instruções do sistema. + </p> + <code> + Configurações -> Tela de bloqueio -> Bloqueio de tela + </code> + </section> + <section class="features"> + <h1><a name="criptografia-do-sistema"><a href="#criptografia-do-sistema" title="Criptografia do sistema">Criptografia do sistema</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O principal objetivo do Replicant é manter a segurança dos arquivos dos usuário. Então, criptografar seu dispositivo garante que ninguém com acesso físico consiga ler, escrever ou copiar seus arquivos. O Replicant suporta criptografar seu dispositivo, defendendo-o contra esses acessos não autorizados. A criptografaria é habilitada no caminho indicado abaixo. + </p> + <code> + Configurações -> Segurança -> Criptografar o Telefone + </code> + <p> + Siga as demais instruções do sistema. A bateria precisa estar com, pelo menos, 80% de carga e, além disso, carregando (plugado na fonte de energia e não na entrada USB do computador). A criptografia não deve ser interrompida para não danificar o sistema e nem perder os seus dados. + </p> + </section> + <section class="features"> + <h1><a name="wi-fi"><a href="#wi-fi" title="Wi-Fi">Wi-Fi</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O Wi-Fi interno dos dispositivos suportados pelo Replicant não funcionam com firmware livre. A solução, então, é adicionar um dongle Wi-Fi USB externo através da porta microUSB fêmea que suporte firmware livre. Os modelos de <a href="https://redmine.replicant.us/projects/replicant/wiki/WifiAdapter" title="Modelos Wi-Fi compatíveis com replicant">Wi-Fi com chip Qualcomm Atheros AR9271</a> funcionam bem com o firmware livre Atheros ath9k e são facilmente encontrados no mercado. Nós também <b>vendemos adaptadores compatíveis com Replicant e com Gnu/Linux-libre</b>. Se tiver interesse, entre em nossa <a href="/pages/equipamentos.html" name="pagina-equipamentos" title="Página de equipamentos produzidos pela Brigada Digital">página de equipamento e dispositivos</a> para mais informações. + </p> + <p> + Contudo, os smartphones e tablets dificilmente aguentam alimentar um dispositivo externo, ocasionando instabilidade e rápido consumo da bateria. Então a solução é conectar o dongle Wi-Fi através de um <i>Cabo Y (três plugues)</i> com pulgos USB fêmea, microUSB macho e microUSB fêmea (ou USB macho), e fornecer alimentação de energia ao dongle diretamente. + </p> + <p> + O processo é simples, plugamos o dongle Wi-Fi na entrada USB fêmea do Cabo Y; a fonte de alimentação externa na entrada microUSB fêmea; e, o smartphone/tablet na entrada microUSB macho. Depois, no Replicant, basta habilitar o Wi-Fi pelo menu suspenso ou nas configurações de Wi-Fi e escolher uma rede para se conectar. + </p> + </section> + <section class="features"> + <h1><a name="tethering"><a href="#tethering" title="tethering">Tethering</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p>Tethering é o compartilhamento de internet entre dispositivos através do Wi-Fi ou USB.</p> + <h2>Tethering Wi-Fi</h2> + <p>A configuração do compartilhamento da internet do Replicant para outros dispositivos através do Wi-Fi é realizada no caminho a seguir. Lembre-se de conectar o dongle USB Wi-Fi.</p> + <code> + Configurações -> Mais -> Tethering de acesso portátil -> Configurar ponto de acesso Wi-Fi + </code> + <p> + Depois de configurar o tethering Wi-Fi, habilite-o no caminho a seguir. + </p> + <code> + Configurações -> Mais -> Tethering de acesso portátil -> Ponto de acesso Wi-Fi portátil + </code> + <h2>Tethering USB</h2> + <p>O compartilhamento da internet do Replicant via USB para outro dispositivos é realizada no caminho a seguir.</p> + <code> + Configurações -> Mais -> Tethering de acesso portátil -> Vínculo USB + </code> + <h2>Tethering USB Reverso</h2> + <p> + É o compartilhamento da internet do computador desktop para o Replicant. Nesse caso, é necessário fazer algumas operações pelo ADB para para enviar o script que cria a rede no Replicant e criar a rede no computador desktop + </p> + <p> + Primeiramente, instale o wget. + </p> + <code> + apt install wget + </code> + <p> + Faça o download do script do Replicant. + </p> + <code> + wget https://git.replicant.us/replicant/vendor_replicant-scripts/plain/networking/usb/usb_networking_device.sh + </code> + <p> + Edite o script para ajustar o serviço de DNS primário e secundário. + </p> + <code> + nano usb_networking_device.sh + </code> + <p> + Altere o valor de DNS1 para 10.42.0.1 e DNS2 para 10.42.1.1. + </p> + <p>DNS1 devem ficar assim:</p> + <code> + DNS1="10.42.0.1" + </code> + <p> e DNS2 assim:</p> + <code> + DNS2="10.42.1.1" + </code> + <p> + Agora inicie o adb como root. + </p> + <code> + adb root + </code> + <p> + Empurre o script <i>usb_networking_device.sh</i> para <i>/data</i>. + </p> + <code> + adb push usb_networking_device.sh /data/ + </code> + <p> + Altere sua propriedade para execução. + </p> + <code> + adb shell "chmod a+x /data/usb_networking_device.sh" + </code> + <p> + Inicie a primeira etapa da conexão de tethering reverso. + </p> + <code> + adb shell "/data/usb_networking_device.sh start1" + </code> + <p> + Configure uma conexão ethernet (ou wired) no computador de mesa com o dispositivo móvel conectado na porta usb (Geralmente esse passo é acessível pelo applet do Network Manager da barra de ferramentas). + </p> + <ol> + <li>No applet do Network Manager, crie uma nova conexão "Ethernet" ou "Wired"</li> + <li>Na aba para configurações IPv4, selecione o método "Compartilhado com outros computadores"</li> + <li>Salve a conexão com um nome distinguível como, por exemplo, "Replicant USB Reverso"</li> + <li>Na aba Ethernet, selecione a conexão para o dispositivo ethernet (eno ou enp3s0)</li> + <li>Agora execute a segunda etapa do script de criação do tethering reverso</li> + </ol> + <code> + adb shell "/data/usb_networking_device.sh start2" + </code> + <p> + Para desconectar o Replicant e o computador. + </p> + <code> + adb shell "/data/usb_networking_device.sh stop" + </code> + </section> + <section class="features"> + <h1><a name="cartao-de-memoria"><a href="#cartao-de-memoria" title="cartao-de-memoria">Cartão de Memória</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Os modelos suportados pelo Replicant geralmente possuem pouca memória interna de armazenamento, trazendo a necessidade expansão através de cartão SD, que pode ser de até 64GB. A expansão pode ser configurada para armazenamento portátil ou armazenamento interno. O armazenamento portátil geralmente é utilizado para transferência de arquivos entre dispositivos como, por exemplo, fotos e músicas. Já a configuração como armazenamento intento possibilita que as aplicações utilizem o cartão SD para armazenar arquivos. Isso aumenta a capacidade de armazenamento, mas o cartão só funcionará no equipamento. + </p> + <p> É possível instalar alguns aplicativos no cartão de memória quando configurado como armazenamento interno. Contudo, <i>a instalação de aplicativos no cartão SD, eventualmente causa instabilidade gerando reinicializações e, eventualmente, corrupção do sistema e reinicializações em loop</i>. Então, <b>não faça a instalação de aplicativos no cartão SD</b>. + </p> + </section> + <section class="features"> + <h1><a name="certificado-lets-encrypt"><a href="#certificado-lets-encrypt" title="Certificao Let's Encrypt">Certificado Let's Encrypt</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + A autoridade certificadora <a href="https://letsencrypt.org/">Let's Encrypt</a>, muito utilizada nas aplicações de internet, pois gera certificados gratuitamente, atualizou seu certificado logo após o lançamento do Replicant versão 6.0004. Então, o Replicant reclama da confiabilidade de seus certificados. Para resolver essa questão, é necessário inserir manualmente o certificado atualizado. Basta seguir o <a href="https://www.stoutner.com/lets-encrypt-isrg-root-x1-and-privacy-browser/" target="_blank" title="Tutorial para inserir o certificado atualizado Let's Encrypt no Replicant 6.0004">tutorial do Navegador Privado para resolver essa questão</a>. + </p> + </section> + <section class="features"> + <h1><a name="aplicativos-indicados"><a href="#aplicativos-indicados" title="Aplicativos indicados">Aplicativos indicados</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + O Replicant removeu a loja de aplicativos do F-Droid, porque o repositório não segue as <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.pt-br.html" target="_blank" title="Diretrizes para Distribuições de Sistemas Livres (FSDG)">Diretrizes para Distribuições de Sistemas Livres (FSDG) do Projeto GNU</a>. Então, fizemos uma lista de aplicativos livres (<a href="https://www.gnu.org/licenses/gpl-3.0.html" target="_blank" title="GNU General Public License v3.0">GNU General Public License v3.0</a>) úteis que podem ser baixados diretamente do repositório e instalados. + </p> + <table> + <tr> + <th style="text-align: left">Aplicativo</th><th style="text-align: left">Descrição</th> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/anupam.acrylic/" target="_blank" title="Link download Acrylic Paint">Acrylic Paint</a></td> + <td>Pintura simples com o dedo</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.beemdevelopment.aegis/" target="_blank" title="Link download Aegis Authenticator">Aegis Authenticator</a></td> + <td>Gerenciador de autenticação de 2 fatores - 2FA</td> + </tr> + <tr> + <td><a href="https://f-droid.org/en/packages/com.tughi.aggregator/" target="_blank" title="Link download Aggregator">Aggregator</a></td> + <td>Simples e flexível leitor de notícias</td> + </tr> + <tr> + <td><a href="https://f-droid.org/packages/de.danoeh.antennapod/" target="_blank" title="Link AntennaPod">AntennaPod</a></td> + <td>Um player de podcasts fácil de usar, flexível e de código aberto</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/ltd.evilcorp.atox/" target="_blank" title="Link aTox">aTox</a></td> + <td>Cliente de mensagens privada p2p</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.gaurav.avnc/" target="_blank" title="Link download AVNC">AVNC</a></td> + <td>Cliente VNC rápido e seguro</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/de.markusfisch.android.binaryeye/" target="_blank" title="Link Binary Eye">Binary Eye</a></td> + <td>Mais um leitor de código de barras</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.briarproject.briar.android/" target="_blank" title="Link Briar">Briar</a></td> + <td>Aplicativo de mensagens p2p destinado para ativistas, jornalistas e pessoas que precisam de segurança</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/corewala.gemini.buran/" target="_blank" title="Link Buran">Buran</a></td> + <td>Navegador simples para o protocolo Gemini</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.github.axet.callrecorder/" target="_blank" title="Link Call Recorder">Call Recorder</a></td> + <td>Gravador de chamadas simples, sem anúncios, código aberto</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.connectbot/" target="_blank" title="Link ConnectBot">ConnectBot</a></td> + <td>Cliente SSH e Telnet e emulador de terminal para shell local</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/eu.siacs.conversations/" target="_blank" title="Link Conversations">Conversations</a></td> + <td>Cliente de XMPP fácil de usar com suporte a criptografia Omemo e OpenPGP.</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.github.cythara/" target="_blank" title="Link Cythara">Cythara</a></td> + <td>Afinador de instrumentos musicais</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/at.bitfire.davdroid/" target="_blank" title="Link DAVx⁵">DAVx⁵</a></td> + <td>Sincronização e Cliente CalDAV/CardDAV</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.decsync.cc/" target="_blank" title="Link DecSync CC">DecSync CC</a></td> + <td>Sincronização de contatos, calendários e tarefas sem um servidor</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.tachibana.downloader/" target="_blank" title="Link Download Navi">Download Navi</a></td> + <td>Download Navi é um gerenciador de download</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/ru.nsu.bobrofon.easysshfs/" target="_blank" title="Link EasySSHFS">EasySSHFS</a></td> + <td>Sistema de arquivos e cliente SSH</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.gnu.emacs/" target="_blank" title="Link Emacs">Emacs</a></td> + <td>Editor de texto avançado, extensível e autodocumentado, muito utilizado por programadores</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/eu.toldi.infinityforlemmy/" target="_blank" title="Link Eternity">Eternity</a></td> + <td>Cliente para a rede Federada Lemmy com suporte ao protocolo ActivityPub, fork do Infinity para Reddit</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.purplei2p.i2pd/" target="_blank" title="Link Eternity">I2pd</a></td> + <td>Implementação completa do cliente I2P em C++</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.joinmastodon.android/" target="_blank" title="Link Mastodon">Mastodon</a></td> + <td>Rede social descentralizada</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.nononsenseapps.feeder/" target="_blank" title="Link Feeder">Feeder</a></td> + <td>Um fantástico leitor de RSS Feed</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/de.qwerty287.ftpclient/" target="_blank" title="Link FTPClient">FTPClient</a></td> + <td>Cliente FTP, FTPS e SFTP</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/net.slions.fulguris.full.fdroid/" target="_blank" title="Link Fulguris">Fulguris</a></td> + <td>Cliente FTP, FTPS e SFTP</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/de.kaffeemitkoffein.imagepipe/" target="_blank" title="Link Image Pipe">Image Pipe</a></td> + <td>remove os dados exif e reduz o tamanho de imagens antes de compartilhá-las</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/cx.ring/" target="_blank" title="Link Jami">Jami</a></td> + <td>Aplicativo p2p multiplataforma de mensageria, ligação audiovisual, conferência e grupos do Projeto GNU</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/at.techbee.jtx/" target="_blank" title="Link Jtx">Jtx</a></td> + <td>Diário, notas e tarefas caldav sincronizados através do aplicativo DAVx⁵</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.fsck.k9/" target="_blank" title="Link K9 Mail">K9 Mail</a></td> + <td>Cliente de e-mail cheio de funcionalidades</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/net.stargw.fok/" target="_blank" title="Link Karma Firewall">Karma Firewall</a></td> + <td>Bloqueia aplicativos de acesso a internet</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.kunzisoft.keepass.libre/" target="_blank" title="Link KeepassDX">KeePassDX - FOSS Password Safe</a></td> + <td>Gerenciador de password keepass</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.documentfoundation.libreoffice//" target="_blank" title="Link LibreOffice Viewer">LibreOffice Viewer </a></td> + <td>Visualizador de documentos</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.foobnix.pro.pdf.reader/" target="_blank" title="Link Librera Reader">Librera Reader</a></td> + <td>Leitor de livros e PDF</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.github.libretube/" target="_blank" title="Link Libretube">Libretube</a></td> + <td>Alternativa frontend para Youtube com piped</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/se.manyver/" target="_blank" title="Link Manyverse">Manyverse</a></td> + <td>Uma rede social p2p fora da grade, pautada scuttlebutt</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/net.gsantner.markor/" target="_blank" title="Link Markor">Markor</a></td> + <td>Editor de texto - notas e tarefas -, leve de markdown e tarefas.txt</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/moe.matsuri.lite/" target="_blank" title="Link Markor">Matsuri</a></td> + <td>Proxy</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.manichord.mgit/" target="_blank" title="Link MGit">MGit</a></td> + <td>Visualizar e interagir com repositórios git</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.joinmastodon.android.moshinda/" target="_blank" title="Link para Moshidon">Moshidon</a></td> + <td>Mastodon para Android mas é Material You e tem mais recursos</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/se.lublin.mumla/" target="_blank" title="Link Mumla">Mumla</a></td> + <td>Chat de voz para servidores Mumble</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.artifex.mupdf.viewer.app/" target="_blank" title="Link MuPDF viewer">MuPDF viewer</a></td> + <td> Visualizador de documentos leve</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.stoutner.privacybrowser.standard/" target="_blank" title="Link Navegador Privado">Navegador Privado</a></td> + <td>Um navegador da web que respeita sua privacidade</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.schabi.newpipe/" target="_blank" title="Link Navegador Newpipe">Front-end leve do Youtube</a></td> + <td>Um navegador da web que respeita sua privacidade</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/eu.faircode.netguard/" target="_blank" title="Link NetGuard">NetGuard</a></td> + <td>Uma maneira simples de bloquear o acesso à internet por aplicação</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/at.bitfire.nophonespam/" target="_blank" title="Link NoPhoneSpam">NoPhoneSpam</a></td> + <td>Bloquear chamadas indesejadas</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/io.heckel.ntfy/" target="_blank" title="Link ntfy">ntfy</a></td> + <td>Enviar notificações ao telefone via qualquer script usando requisições PUT/POST</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/io.github.subhamtyagi.ocr/" target="_blank" title="Link OCR (ROC)">OCR (ROC)</a></td> + <td>Uma aplicação de reconhecimento de caracteres (OCR) baseada em Tesseract que reconhece textos em imagens</td> + </tr> + <tr> + <td><a href="https://apt.izzysoft.de/fdroid/index/apk/dk.jens.backup?repo=archive" target="_blank" title="Link oandbackup">oandbackup</a></td> + <td>Faça backups de apps selecionados e restaure</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.sufficientlysecure.keychain/" target="_blank" title="Link OpenKeychain: Easy PGP">OpenKeychain: Easy PGP</a></td> + <td> Criptografar os ficheiros e Comunicações. Compatível com o padrão OpenPGP</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.todobom.opennotescanner/" target="_blank" title="Link Open Note Scanner">Open Note Scanner</a></td> + <td>Digitalizar documentos, notas manuscritas ou artes</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/app.organicmaps/" target="_blank" title="Link Organic Maps">Organic Maps: Mapas Offline e Navegador GPS</a></td> + <td>Mapas colaborativos de software livre para turistas, ciclistas e caminhantes</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/app.pachli/" target="_blank" title="Link Pachli for Mastodon">Pachli for Mastodon</a></td> + <td>Um cliente Android completo para Mastodon e servidores semelhantes</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.catrobat.paintroid/" target="_blank" title="Link Pocket Paint">Pocket Paint</a></td> + <td>Paint avançada</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/io.mrarm.irc/" target="_blank" title="Link Revolution IRC">Revolution IRC</a></td> + <td>O cliente IRC de última geração</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.gnosco.share2archivetoday/" target="_blank" title="Link Share 2 Archive Today">Share 2 Archive Today</a></td> + <td>Compartilhamento de URL com Archive.today e Archive.Is. Para acessar o conteúdo de sites com bloqueio ao Tor ou a navegação sem javascript</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.wbrawner.simplemarkdown.free/" target="_blank" title="Link SimpleMarkdown">SimpleMarkdown</a></td> + <td>A simple markdown editor</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.maxistar.textpad/" target="_blank" title="Link SimpleTextEditor">SimpleTextEditor</a></td> + <td>Simple Text Editor</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/juloo.keyboard2/" target="_blank" title="Link Teclado Unexpected">Teclado Unexpected</a></td> + <td>Um teclado virtual leve para desenvolvedores</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.termoneplus/" target="_blank" title="Link Terminal Emulator">Terminal Emulator</a></td> + <td>Transforme seu aparelho num terminal de computador</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/net.schueller.peertube/" target="_blank" title="Link Thorium, um cliente PeerTube">Thorium, um cliente PeerTube</a</td> + <td>Um leitor do PeerTube</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/ru.yourok.torrserve/" target="_blank" title="Link TorrServe">TorrServe</a></td> + <td>Download torrent files</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/com.bnyro.translate/" target="_blank" title="Link Translate You">Translate You</a></td> + <td>Tradutor com foco em privacidade</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/app.fedilab.nitterizemelite/" target="_blank" title="Link UntrackMe Lite">UntrackMe Lite</a></td> + <td>Redirecione links do Youtube, Twitter e Instagram para Front-end livres</td> + </tr> + <tr> + <td><a href="https://f-droid.org/pt_BR/packages/org.videolan.vlc/" target="_blank" title="Link VLC">VLC</a></td> + <td>VLC para Android é o melhor leitor de vídeo e música open source, fácil e rápido</td> + </tr> + </table> + </section> + <section class="features"> + <h1><a name="backup"><a href="#backup" title="Backup">Backup</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Aconselhamos criar periodicamente cópias de segurança criptografadas dos dados armazenados no sistema para restaurá-los caso ocorra problema. Podem ser salvos dados de apps do sistema ou instalados de fontes externas (/system/data e /data/app), arquivos internos (/data/data) e do cartão SD (/storage/emulated). O procedimento pode ser realizado através de apps especializados em backup como, por exemplo, <b>oandbackup</b>, ou pelo programa de desktop <b>Android Debug Bridge (adb)</b>. + </p> + <h2>oandbackup</h2> + <p> + O oandbackup é um aplicativo de backup rico em recursos como, por exemplo, criptografia através do app <i>openkeychain</i>, backup programado, etc. Para fazer o backup. + </p> + <code> + oandbackup -> Backup em lote -> Dados e Apkk + </code> + <p> + Marcar os apps para backup. + </p> + <code> + oandbackup -> Backup em lote -> Marcar Tudo + </code> + <p> + Executar o backup. + </p> + <code> + oandbackup -> Backup em lote -> Backup + </code> + <h2>Backup pelo ADB</h2> + <h2>Configurações para ADB</h2> + <h4>Senha de criptografia para o backup</h4> + <p> + Defina uma senha de segurança para criptografar o backup: + </p> + <code> + Configurações -> Opções do desenvolvedor -> Senha do backup local + </code> + <h3>Backup dos dados de apps e arquivos</h3> + <p> + A sintaxe do comando de backup é a seguinte: + </p> + <code> + adb backup [-f file] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [packages...] + </code> + <p> + -f cria o arquivo de backup + </p> + <p> + -apk|-noapk habilita/desabilita o backup de aplicativos (padrão é -noapk) + </p> + <p> + -obb|-noobb habilita/desabilita o backup de arquivos associados aos apps (padrão é -noob b) + </p> + <p> + -shared|-noshared habilita/desabilita o backup de arquivos do cartão SD (padrão é -noshared) + </p> + <p> + -all faz o backup de todos os aplicativos instalados, incluindo aplicações do sistema. + </p> + <p> + -system|-nosystem incluir ou não aplicações de sistema. + </p> + <p> + Para fazer o backup de todos os aplicativos (apk) do sistema e instalados de fontes externas com seus respectivos dados e configurações (obb), execute o seguinte comando: + </p> + <code> + # adb backup -f 2025.03.23-apps-backup-replicant-6.0004-n7100.adb -apk -obb -all + </code> + <p> + Quando executar o comando uma janela será aberta no Replicant pedindo a <i>senha de backup atual</i> que configuramos anteriormente. Insira a senha e selecione o botão <i>Fazer backup de meus dados</i>. O progresso do backup será exibido na parte inferior da tela do Replicant. Quando o backup terminar a janela de backup no Replicant será fechada e o terminal no desktop será desbloqueado. + </p> + <h3>Restauração do backup</h3> + <p> + A restauração dos dados só é compatível com a mesma versão do Replicant e modelo do dispositivo que o backup foi realizado. + </p> + <p> + Para restaurar o backup, esteja com a etapas de configuração do ADB satisfeitas e execute o comando no terminal: + </p> + <code> + adb restore file.adb + </code> + </section> + <section class="features"> + <h1><a name="reset-de-fabrica-reset-factory"><a href="#reset-de-fabrica-reset-factory" title="Reset de fabrica (reset factory)">Reset de fabrica (reset factory)</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Pode ser desejável resetar o aparelho para as configurações iniciais do Replicant, também conhecido como reset de fábrica (reset factory). Essa operação poder ser feita através do programa de configuração ou pelo programa de recuperação. + </p> + <h2>Reset pelo programa de Configuração</h2> + <p> + Execute o programa de redefinição e backup. Não é possível fazer o backup dos dados e restaurá-lo pelo respectivo programa se o dispositivo estiver criptografado. Mas é possível recuperar os dados após a redefinição de fábrica pelos meios abordados na seção <i>Backup</i>. + </p> + <code> + Configurações -> Fazer backup e redefinir + </code> + <h2>Reset pelo programa de recuperação (recovery)</h2> + <p> + Desligue o aparelho sem cabo de usb ou alimentação. Após, com o aparelho desligado, pressionar simultaneamente os botões de volume + início + power, fazendo o aparelho inicializar no modo de recuperação (recovery). Selecione Redefinição completa de fábrica. Ele solicitará que você confirme a redefinição, portanto, você precisará selecionar Sim para confirmá-la. + </p> + <code> + Factory reset -> Full factory reset + </code> + <p> + Pressione a tecla Voltar para voltar ao menu principal de recuperação e, em seguida, reinicie o sistema. + </p> + </section> + <section class="features"> + <h1><a name="futuro-do-replicant"><a href="#futuro-do-replicant" title="Futuro do Replicant">Futuro do Replicant</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <p> + Recentemente o projeto declarou que vai abandonar o Android e os dispositivos Samsung porque a indústria dos dispositivos móveis vem dificultando cada vez mais o desenvolvimento de suporte livre para a base Android. Os atuais modelos serão abandonado e o port para a versão 11 do Android foi suspensa. O projeto começou a debater migrar sua base para o <a href="https://redmine.replicant.us/projects/replicant/wiki/AddSupportForThePinephone">Pinephone</a>. Esse sistema é um GNU/Linux para dispositivos móveis que suporta aplicativos Android por meio do emulador de Android <a href="https://glodroid.github.io/">GLoDroid</a>. Atualmente o GLoDroid emula o Android 12 baseado na versão AOSP. Também existe um debate sobre <a href="https://blog.replicant.us/2025/05/future-of-ngi-funding/">fontes de financiamento disponíveis na União Europeia</a>. + </p> + </section> + <section class="features"> + <h1><a name="bibliografia"><a href="#bibliografia" title="Bibliografia">Bibliografia</a><a/> <a href="#banner" title="Topo da página">^</a></h1> + <ul> + <li>Página do projeto Replicant - <a href="https://replicant.us/" name="site-do-projeto-replicant" title="Site do projeto Replicant">https://replicant.us</a></li> + <li>Certificação da Fundação de Software Livre (FSF) - <a href="https://www.gnu.org/distros/free-non-gnu-distros.html" name="certificacao-fsf" title="Certificação FSF - Distribuições Não-GNU Livres">https://www.gnu.org/distros/free-non-gnu-distros.html</a></li> + <li>Fundação de Software Livre - <a href="https://www.fsf.org/" name="free-software-fundation" title="Site da Fundação de Software Livre - FSF">https://www.fsf.org/</a></li> + <li>Dispositivos suportados - <a href="https://replicant.us/supported-devices.php" name="site-do-projeto-replicant" title="Página de dispositivos suportados pelo Replicant">https://replicant.us/supported-devices.php</a></li> + <li>Instalação - <a href="https://redmine.replicant.us/projects/replicant/wiki/Installation" name="instalacao-replicant" title="Página de instalação do Replicant">https://redmine.replicant.us/projects/replicant/wiki/Installation</a></li> + <li>Instalação do Android Debug Bridge (ADB) - <a href="https://redmine.replicant.us/projects/replicant/wiki/ToolsInstallation" name="replicant-adb" title="Página de instalação das ferramentas Gnu/Linux utilizadas pelo Replicant">https://redmine.replicant.us/projects/replicant/wiki/ToolsInstallation</a></li> + <li>Configuração do Android Debug Bridge (ADB) - <a href="https://redmine.replicant.us/projects/replicant/wiki/ADB" name="configuracao-adb" title="Página de configuração do ADB"></a></li> + <li>Adaptador Wi-Fi USB - <a href="https://redmine.replicant.us/projects/replicant/wiki/WifiAdapter" name="tethering-usb-reverso" title="Página de configuração do tethering usb reverso">https://redmine.replicant.us/projects/replicant/wiki/WifiAdapter</a></li> + <li>Tethering usb reverso - <a href="https://redmine.replicant.us/projects/replicant/wiki/USBNetworking" name="tethering-usb-reverso" title="Página de configuração do tethering usb reverso">https://redmine.replicant.us/projects/replicant/wiki/USBNetworking</a></li> + <li>Backup da partição do modem (EFS) - <a href="https://redmine.replicant.us/projects/replicant/wiki/BackupTheEFS" name="backup-particao-modem-efs" title="Página de guia para backup da partição de modem - EFS">https://redmine.replicant.us/projects/replicant/wiki/BackupTheEFS</a></li> + <li>Restauração da partição do modem (EFS) - <a href="https://redmine.replicant.us/projects/replicant/wiki/RestoreEfsNvDataBackupFile" name="restauracao-particao-modem-efs" title="Página de guia para a restauração do backup da partição de modem - EFS">https://redmine.replicant.us/projects/replicant/wiki/RestoreEfsNvDataBackupFile</a></li> + <li>Futuro do Replicant com o Pinephone I - <a href="https://blog.replicant.us/2024/03/replicant-status-and-report-of-the-37c3-and-fosdem-2024-conferences/" name="futuro-do-replicant" title="Futuro do Replicant - fontes de financiamento, base de desenvolvimento e dispositivos suportados">https://blog.replicant.us/2024/03/replicant-status-and-report-of-the-37c3-and-fosdem-2024-conferences/</a></li> + <li>Futuro do Replicant como o Pinephone II - <a href="https://blog.replicant.us/2025/05/future-of-ngi-funding/" name="futuro-do-replicant" title="Futuro do Replicant - fontes de financiamento, base de desenvolvimento e dispositivos suportados">https://blog.replicant.us/2025/05/future-of-ngi-funding/</a></li> + </ul> + </section> + </body> +</html> diff --git a/content/downloads/specifications/ga-41m-es2l-mainboard-specifications.pdf b/content/downloads/specifications/ga-41m-es2l-mainboard-specifications.pdf Binary files differnew file mode 100644 index 0000000..5618fc1 --- /dev/null +++ b/content/downloads/specifications/ga-41m-es2l-mainboard-specifications.pdf diff --git a/content/downloads/specifications/kgpe-d16-mainboard-specifications.pdf b/content/downloads/specifications/kgpe-d16-mainboard-specifications.pdf Binary files differnew file mode 100644 index 0000000..e0450f2 --- /dev/null +++ b/content/downloads/specifications/kgpe-d16-mainboard-specifications.pdf diff --git a/content/downloads/specifications/t400-t500-notebooks-specifications.pdf b/content/downloads/specifications/t400-t500-notebooks-specifications.pdf Binary files differnew file mode 100755 index 0000000..818a20c --- /dev/null +++ b/content/downloads/specifications/t400-t500-notebooks-specifications.pdf diff --git a/content/extra/favicon.ico b/content/extra/favicon.ico Binary files differnew file mode 100644 index 0000000..7d23bb3 --- /dev/null +++ b/content/extra/favicon.ico diff --git a/content/images/bios/instalacao/gnuboot-instalacao-t400-1.jpg b/content/images/bios/instalacao/gnuboot-instalacao-t400-1.jpg Binary files differnew file mode 100644 index 0000000..4d5fcf3 --- /dev/null +++ b/content/images/bios/instalacao/gnuboot-instalacao-t400-1.jpg diff --git a/content/images/bios/instalacao/gnuboot-instalacao-t400-1_1024x.jpg b/content/images/bios/instalacao/gnuboot-instalacao-t400-1_1024x.jpg Binary files differnew file mode 100644 index 0000000..5eda7ea --- /dev/null +++ b/content/images/bios/instalacao/gnuboot-instalacao-t400-1_1024x.jpg diff --git a/content/images/bios/instalacao/gnuboot-instalacao-t400-1_480x.jpg b/content/images/bios/instalacao/gnuboot-instalacao-t400-1_480x.jpg Binary files differnew file mode 100644 index 0000000..344ddef --- /dev/null +++ b/content/images/bios/instalacao/gnuboot-instalacao-t400-1_480x.jpg diff --git a/content/images/bios/instalacao/gnuboot-instalacao-t400-1_720x.jpg b/content/images/bios/instalacao/gnuboot-instalacao-t400-1_720x.jpg Binary files differnew file mode 100644 index 0000000..f40c328 --- /dev/null +++ b/content/images/bios/instalacao/gnuboot-instalacao-t400-1_720x.jpg diff --git a/content/images/bios/instalacao/gnuboot-instalacao-t400-3.jpg b/content/images/bios/instalacao/gnuboot-instalacao-t400-3.jpg Binary files differnew file mode 100644 index 0000000..f1b7aff --- /dev/null +++ b/content/images/bios/instalacao/gnuboot-instalacao-t400-3.jpg diff --git a/content/images/bios/instalacao/gnuboot-instalacao-t400-3_1024x.jpg b/content/images/bios/instalacao/gnuboot-instalacao-t400-3_1024x.jpg Binary files differnew file mode 100644 index 0000000..30a1cc6 --- /dev/null +++ b/content/images/bios/instalacao/gnuboot-instalacao-t400-3_1024x.jpg diff --git a/content/images/bios/instalacao/gnuboot-instalacao-t400-3_480x.jpg b/content/images/bios/instalacao/gnuboot-instalacao-t400-3_480x.jpg Binary files differnew file mode 100644 index 0000000..2a00e77 --- /dev/null +++ b/content/images/bios/instalacao/gnuboot-instalacao-t400-3_480x.jpg diff --git a/content/images/bios/instalacao/gnuboot-instalacao-t400-3_720x.jpg b/content/images/bios/instalacao/gnuboot-instalacao-t400-3_720x.jpg Binary files differnew file mode 100644 index 0000000..52d34f5 --- /dev/null +++ b/content/images/bios/instalacao/gnuboot-instalacao-t400-3_720x.jpg diff --git a/content/images/bios/instalacao/gnuboot-instalacao-t400-4.jpg b/content/images/bios/instalacao/gnuboot-instalacao-t400-4.jpg Binary files differnew file mode 100644 index 0000000..0fa4be7 --- /dev/null +++ b/content/images/bios/instalacao/gnuboot-instalacao-t400-4.jpg diff --git a/content/images/bios/instalacao/gnuboot-instalacao-t400-4_1024x.jpg b/content/images/bios/instalacao/gnuboot-instalacao-t400-4_1024x.jpg Binary files differnew file mode 100644 index 0000000..6dd0931 --- /dev/null +++ b/content/images/bios/instalacao/gnuboot-instalacao-t400-4_1024x.jpg diff --git a/content/images/bios/instalacao/gnuboot-instalacao-t400-4_480x.jpg b/content/images/bios/instalacao/gnuboot-instalacao-t400-4_480x.jpg Binary files differnew file mode 100644 index 0000000..a0f96bd --- /dev/null +++ b/content/images/bios/instalacao/gnuboot-instalacao-t400-4_480x.jpg diff --git a/content/images/bios/instalacao/gnuboot-instalacao-t400-4_720x.jpg b/content/images/bios/instalacao/gnuboot-instalacao-t400-4_720x.jpg Binary files differnew file mode 100644 index 0000000..36631a8 --- /dev/null +++ b/content/images/bios/instalacao/gnuboot-instalacao-t400-4_720x.jpg diff --git a/content/images/blog/apoie/smartphone-samsung-galaxy-s3-gt-i9300.jpg b/content/images/blog/apoie/smartphone-samsung-galaxy-s3-gt-i9300.jpg Binary files differnew file mode 100644 index 0000000..cf5ebe2 --- /dev/null +++ b/content/images/blog/apoie/smartphone-samsung-galaxy-s3-gt-i9300.jpg diff --git a/content/images/brigadadigital-banner.png b/content/images/brigadadigital-banner.png Binary files differnew file mode 100644 index 0000000..c2f5046 --- /dev/null +++ b/content/images/brigadadigital-banner.png diff --git a/content/images/brigadadigital-footer.png b/content/images/brigadadigital-footer.png Binary files differnew file mode 100644 index 0000000..a93ec73 --- /dev/null +++ b/content/images/brigadadigital-footer.png diff --git a/content/images/canoeboot/canoeboot-orig.png b/content/images/canoeboot/canoeboot-orig.png Binary files differnew file mode 100644 index 0000000..8ea9790 --- /dev/null +++ b/content/images/canoeboot/canoeboot-orig.png diff --git a/content/images/canoeboot/canoeboot_1024x.png b/content/images/canoeboot/canoeboot_1024x.png Binary files differnew file mode 100644 index 0000000..3e2014a --- /dev/null +++ b/content/images/canoeboot/canoeboot_1024x.png diff --git a/content/images/canoeboot/canoeboot_124x.png b/content/images/canoeboot/canoeboot_124x.png Binary files differnew file mode 100644 index 0000000..87390d3 --- /dev/null +++ b/content/images/canoeboot/canoeboot_124x.png diff --git a/content/images/canoeboot/canoeboot_480x.png b/content/images/canoeboot/canoeboot_480x.png Binary files differnew file mode 100644 index 0000000..d9d06da --- /dev/null +++ b/content/images/canoeboot/canoeboot_480x.png diff --git a/content/images/canoeboot/canoeboot_720x.png b/content/images/canoeboot/canoeboot_720x.png Binary files differnew file mode 100644 index 0000000..11cfbdf --- /dev/null +++ b/content/images/canoeboot/canoeboot_720x.png diff --git a/content/images/equipamentos/note2-s3-replicant.png b/content/images/equipamentos/note2-s3-replicant.png Binary files differnew file mode 100644 index 0000000..d496666 --- /dev/null +++ b/content/images/equipamentos/note2-s3-replicant.png diff --git a/content/images/equipamentos/thinkpad-t400-canoeboot-1024x.jpg b/content/images/equipamentos/thinkpad-t400-canoeboot-1024x.jpg Binary files differnew file mode 100644 index 0000000..5ef51c1 --- /dev/null +++ b/content/images/equipamentos/thinkpad-t400-canoeboot-1024x.jpg diff --git a/content/images/equipamentos/thinkpad-t400-canoeboot-480x.jpg b/content/images/equipamentos/thinkpad-t400-canoeboot-480x.jpg Binary files differnew file mode 100644 index 0000000..d195deb --- /dev/null +++ b/content/images/equipamentos/thinkpad-t400-canoeboot-480x.jpg diff --git a/content/images/equipamentos/thinkpad-t400-canoeboot-720x.jpg b/content/images/equipamentos/thinkpad-t400-canoeboot-720x.jpg Binary files differnew file mode 100644 index 0000000..1fe5e24 --- /dev/null +++ b/content/images/equipamentos/thinkpad-t400-canoeboot-720x.jpg diff --git a/content/images/equipamentos/thinkpad-t400-gnuboot-1024x.jpg b/content/images/equipamentos/thinkpad-t400-gnuboot-1024x.jpg Binary files differnew file mode 100644 index 0000000..08db2a0 --- /dev/null +++ b/content/images/equipamentos/thinkpad-t400-gnuboot-1024x.jpg diff --git a/content/images/equipamentos/thinkpad-t400-gnuboot-480x.jpg b/content/images/equipamentos/thinkpad-t400-gnuboot-480x.jpg Binary files differnew file mode 100644 index 0000000..4d5dc9a --- /dev/null +++ b/content/images/equipamentos/thinkpad-t400-gnuboot-480x.jpg diff --git a/content/images/equipamentos/thinkpad-t400-gnuboot-720x.jpg b/content/images/equipamentos/thinkpad-t400-gnuboot-720x.jpg Binary files differnew file mode 100644 index 0000000..374b393 --- /dev/null +++ b/content/images/equipamentos/thinkpad-t400-gnuboot-720x.jpg diff --git a/content/images/equipamentos/thinkpad_t400_canoeboot.jpg b/content/images/equipamentos/thinkpad_t400_canoeboot.jpg Binary files differnew file mode 100644 index 0000000..70a8e21 --- /dev/null +++ b/content/images/equipamentos/thinkpad_t400_canoeboot.jpg diff --git a/content/images/equipamentos/thinkpad_t400_gnuboot.jpg b/content/images/equipamentos/thinkpad_t400_gnuboot.jpg Binary files differnew file mode 100644 index 0000000..4bac3ea --- /dev/null +++ b/content/images/equipamentos/thinkpad_t400_gnuboot.jpg diff --git a/content/images/equipamentos/thinkpads-gnuboot-libreboot.jpg b/content/images/equipamentos/thinkpads-gnuboot-libreboot.jpg Binary files differnew file mode 100644 index 0000000..7bf990b --- /dev/null +++ b/content/images/equipamentos/thinkpads-gnuboot-libreboot.jpg diff --git a/content/images/equipamentos/tp-link-wdr4300-librecmc.png b/content/images/equipamentos/tp-link-wdr4300-librecmc.png Binary files differnew file mode 100644 index 0000000..2eabdd8 --- /dev/null +++ b/content/images/equipamentos/tp-link-wdr4300-librecmc.png diff --git a/content/images/librecmc/librecmc-luci-acesso_1024x.png b/content/images/librecmc/librecmc-luci-acesso_1024x.png Binary files differnew file mode 100644 index 0000000..476d335 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-acesso_1024x.png diff --git a/content/images/librecmc/librecmc-luci-acesso_480x.png b/content/images/librecmc/librecmc-luci-acesso_480x.png Binary files differnew file mode 100644 index 0000000..14bfd91 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-acesso_480x.png diff --git a/content/images/librecmc/librecmc-luci-acesso_720x.png b/content/images/librecmc/librecmc-luci-acesso_720x.png Binary files differnew file mode 100644 index 0000000..0e84720 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-acesso_720x.png diff --git a/content/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_1024x.png b/content/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_1024x.png Binary files differnew file mode 100644 index 0000000..fe45a78 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_1024x.png diff --git a/content/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_480x.png b/content/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_480x.png Binary files differnew file mode 100644 index 0000000..936aa08 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_480x.png diff --git a/content/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_720x.png b/content/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_720x.png Binary files differnew file mode 100644 index 0000000..d1fbde8 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-condicao-geral-visao-geral-configuracao-senha_720x.png diff --git a/content/images/librecmc/librecmc-luci-menu-rede-sem-fio_1024x.png b/content/images/librecmc/librecmc-luci-menu-rede-sem-fio_1024x.png Binary files differnew file mode 100644 index 0000000..a28435d --- /dev/null +++ b/content/images/librecmc/librecmc-luci-menu-rede-sem-fio_1024x.png diff --git a/content/images/librecmc/librecmc-luci-menu-rede-sem-fio_480x.png b/content/images/librecmc/librecmc-luci-menu-rede-sem-fio_480x.png Binary files differnew file mode 100644 index 0000000..193631d --- /dev/null +++ b/content/images/librecmc/librecmc-luci-menu-rede-sem-fio_480x.png diff --git a/content/images/librecmc/librecmc-luci-menu-rede-sem-fio_720x.png b/content/images/librecmc/librecmc-luci-menu-rede-sem-fio_720x.png Binary files differnew file mode 100644 index 0000000..af41bfb --- /dev/null +++ b/content/images/librecmc/librecmc-luci-menu-rede-sem-fio_720x.png diff --git a/content/images/librecmc/librecmc-luci-rede-interfaces-lan-avancado.png b/content/images/librecmc/librecmc-luci-rede-interfaces-lan-avancado.png Binary files differnew file mode 100644 index 0000000..d9f34ef --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-interfaces-lan-avancado.png diff --git a/content/images/librecmc/librecmc-luci-rede-interfaces-lan_1024x.png b/content/images/librecmc/librecmc-luci-rede-interfaces-lan_1024x.png Binary files differnew file mode 100644 index 0000000..7c914e1 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-interfaces-lan_1024x.png diff --git a/content/images/librecmc/librecmc-luci-rede-interfaces-lan_480x.png b/content/images/librecmc/librecmc-luci-rede-interfaces-lan_480x.png Binary files differnew file mode 100644 index 0000000..7a47600 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-interfaces-lan_480x.png diff --git a/content/images/librecmc/librecmc-luci-rede-interfaces-lan_720x.png b/content/images/librecmc/librecmc-luci-rede-interfaces-lan_720x.png Binary files differnew file mode 100644 index 0000000..dabe05b --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-interfaces-lan_720x.png diff --git a/content/images/librecmc/librecmc-luci-rede-interfaces-wan_1024x.png b/content/images/librecmc/librecmc-luci-rede-interfaces-wan_1024x.png Binary files differnew file mode 100644 index 0000000..5e00664 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-interfaces-wan_1024x.png diff --git a/content/images/librecmc/librecmc-luci-rede-interfaces-wan_480x.png b/content/images/librecmc/librecmc-luci-rede-interfaces-wan_480x.png Binary files differnew file mode 100644 index 0000000..d4933e7 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-interfaces-wan_480x.png diff --git a/content/images/librecmc/librecmc-luci-rede-interfaces-wan_720x.png b/content/images/librecmc/librecmc-luci-rede-interfaces-wan_720x.png Binary files differnew file mode 100644 index 0000000..1e9ae38 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-interfaces-wan_720x.png diff --git a/content/images/librecmc/librecmc-luci-rede-interfaces_1024x.png b/content/images/librecmc/librecmc-luci-rede-interfaces_1024x.png Binary files differnew file mode 100644 index 0000000..7018dae --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-interfaces_1024x.png diff --git a/content/images/librecmc/librecmc-luci-rede-interfaces_480x.png b/content/images/librecmc/librecmc-luci-rede-interfaces_480x.png Binary files differnew file mode 100644 index 0000000..c9fd445 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-interfaces_480x.png diff --git a/content/images/librecmc/librecmc-luci-rede-interfaces_720x.png b/content/images/librecmc/librecmc-luci-rede-interfaces_720x.png Binary files differnew file mode 100644 index 0000000..7948853 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-interfaces_720x.png diff --git a/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_1024x.png b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_1024x.png Binary files differnew file mode 100644 index 0000000..766de9e --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_1024x.png diff --git a/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_480x.png b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_480x.png Binary files differnew file mode 100644 index 0000000..84bb246 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_480x.png diff --git a/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_720x.png b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_720x.png Binary files differnew file mode 100644 index 0000000..60b6650 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-1_720x.png diff --git a/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-1.png b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-1.png Binary files differnew file mode 100644 index 0000000..08de7dc --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-1.png diff --git a/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_1024x.png b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_1024x.png Binary files differnew file mode 100644 index 0000000..cbe33a8 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_1024x.png diff --git a/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_480x.png b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_480x.png Binary files differnew file mode 100644 index 0000000..7bb310e --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_480x.png diff --git a/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_720x.png b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_720x.png Binary files differnew file mode 100644 index 0000000..f27db5f --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2-seguranca-da-rede_720x.png diff --git a/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_1024x.png b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_1024x.png Binary files differnew file mode 100644 index 0000000..9c97386 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_1024x.png diff --git a/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_480x.png b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_480x.png Binary files differnew file mode 100644 index 0000000..11e9336 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_480x.png diff --git a/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_720x.png b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_720x.png Binary files differnew file mode 100644 index 0000000..8cbc520 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-sem-fio-configuracao-2-2_720x.png diff --git a/content/images/librecmc/librecmc-luci-rede-sem-fio_1024x.png b/content/images/librecmc/librecmc-luci-rede-sem-fio_1024x.png Binary files differnew file mode 100644 index 0000000..4617c0f --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-sem-fio_1024x.png diff --git a/content/images/librecmc/librecmc-luci-rede-sem-fio_480x.png b/content/images/librecmc/librecmc-luci-rede-sem-fio_480x.png Binary files differnew file mode 100644 index 0000000..4c40432 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-sem-fio_480x.png diff --git a/content/images/librecmc/librecmc-luci-rede-sem-fio_720x.png b/content/images/librecmc/librecmc-luci-rede-sem-fio_720x.png Binary files differnew file mode 100644 index 0000000..48c9609 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede-sem-fio_720x.png diff --git a/content/images/librecmc/librecmc-luci-rede_1024x.png b/content/images/librecmc/librecmc-luci-rede_1024x.png Binary files differnew file mode 100644 index 0000000..392a9f9 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede_1024x.png diff --git a/content/images/librecmc/librecmc-luci-rede_480x.png b/content/images/librecmc/librecmc-luci-rede_480x.png Binary files differnew file mode 100644 index 0000000..1474c34 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede_480x.png diff --git a/content/images/librecmc/librecmc-luci-rede_720x.png b/content/images/librecmc/librecmc-luci-rede_720x.png Binary files differnew file mode 100644 index 0000000..b81291b --- /dev/null +++ b/content/images/librecmc/librecmc-luci-rede_720x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_1024x.png b/content/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_1024x.png Binary files differnew file mode 100644 index 0000000..912daa7 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_1024x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_480x.png b/content/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_480x.png Binary files differnew file mode 100644 index 0000000..905087d --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_480x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_720x.png b/content/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_720x.png Binary files differnew file mode 100644 index 0000000..95f3e41 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-administracao-senha-roteador_720x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-copia-seguranca_1024x.png b/content/images/librecmc/librecmc-luci-sistema-copia-seguranca_1024x.png Binary files differnew file mode 100644 index 0000000..53c9564 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-copia-seguranca_1024x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-copia-seguranca_480x.png b/content/images/librecmc/librecmc-luci-sistema-copia-seguranca_480x.png Binary files differnew file mode 100644 index 0000000..e7ed098 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-copia-seguranca_480x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-copia-seguranca_720x.png b/content/images/librecmc/librecmc-luci-sistema-copia-seguranca_720x.png Binary files differnew file mode 100644 index 0000000..3112c8b --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-copia-seguranca_720x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_1024x.png b/content/images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_1024x.png Binary files differnew file mode 100644 index 0000000..8db4f5a --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_1024x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_480x.png b/content/images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_480x.png Binary files differnew file mode 100644 index 0000000..36592e2 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_480x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_720x.png b/content/images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_720x.png Binary files differnew file mode 100644 index 0000000..cc1c205 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-sistema-configuracoes-gerais_720x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_1024x.png b/content/images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_1024x.png Binary files differnew file mode 100644 index 0000000..f7fcc67 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_1024x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_480x.png b/content/images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_480x.png Binary files differnew file mode 100644 index 0000000..fe4ea6c --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_480x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_720x.png b/content/images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_720x.png Binary files differnew file mode 100644 index 0000000..3fc3181 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-sistema-sincronizacao-horario_720x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-software_1024x.png b/content/images/librecmc/librecmc-luci-sistema-software_1024x.png Binary files differnew file mode 100644 index 0000000..deacfe4 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-software_1024x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-software_480x.png b/content/images/librecmc/librecmc-luci-sistema-software_480x.png Binary files differnew file mode 100644 index 0000000..31e5c4f --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-software_480x.png diff --git a/content/images/librecmc/librecmc-luci-sistema-software_720x.png b/content/images/librecmc/librecmc-luci-sistema-software_720x.png Binary files differnew file mode 100644 index 0000000..5fa1059 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema-software_720x.png diff --git a/content/images/librecmc/librecmc-luci-sistema_1024x.png b/content/images/librecmc/librecmc-luci-sistema_1024x.png Binary files differnew file mode 100644 index 0000000..6d61c85 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema_1024x.png diff --git a/content/images/librecmc/librecmc-luci-sistema_480x.png b/content/images/librecmc/librecmc-luci-sistema_480x.png Binary files differnew file mode 100644 index 0000000..ea1d27f --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema_480x.png diff --git a/content/images/librecmc/librecmc-luci-sistema_720x.png b/content/images/librecmc/librecmc-luci-sistema_720x.png Binary files differnew file mode 100644 index 0000000..be29fbb --- /dev/null +++ b/content/images/librecmc/librecmc-luci-sistema_720x.png diff --git a/content/images/librecmc/librecmc-luci-ssh-chaves_1024x.png b/content/images/librecmc/librecmc-luci-ssh-chaves_1024x.png Binary files differnew file mode 100644 index 0000000..5d76897 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-ssh-chaves_1024x.png diff --git a/content/images/librecmc/librecmc-luci-ssh-chaves_480x.png b/content/images/librecmc/librecmc-luci-ssh-chaves_480x.png Binary files differnew file mode 100644 index 0000000..1c411a6 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-ssh-chaves_480x.png diff --git a/content/images/librecmc/librecmc-luci-ssh-chaves_720x.png b/content/images/librecmc/librecmc-luci-ssh-chaves_720x.png Binary files differnew file mode 100644 index 0000000..7b23ad6 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-ssh-chaves_720x.png diff --git a/content/images/librecmc/librecmc-luci-ssh-servico_1024x.png b/content/images/librecmc/librecmc-luci-ssh-servico_1024x.png Binary files differnew file mode 100644 index 0000000..b2b7cd6 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-ssh-servico_1024x.png diff --git a/content/images/librecmc/librecmc-luci-ssh-servico_480x.png b/content/images/librecmc/librecmc-luci-ssh-servico_480x.png Binary files differnew file mode 100644 index 0000000..f25e202 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-ssh-servico_480x.png diff --git a/content/images/librecmc/librecmc-luci-ssh-servico_720x.png b/content/images/librecmc/librecmc-luci-ssh-servico_720x.png Binary files differnew file mode 100644 index 0000000..20bab49 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-ssh-servico_720x.png diff --git a/content/images/librecmc/librecmc-luci-visao-geral.png b/content/images/librecmc/librecmc-luci-visao-geral.png Binary files differnew file mode 100644 index 0000000..18165d0 --- /dev/null +++ b/content/images/librecmc/librecmc-luci-visao-geral.png diff --git a/content/images/librecmc/librecmc-ssh-acesso_1024x.png b/content/images/librecmc/librecmc-ssh-acesso_1024x.png Binary files differnew file mode 100644 index 0000000..ee1141e --- /dev/null +++ b/content/images/librecmc/librecmc-ssh-acesso_1024x.png diff --git a/content/images/librecmc/librecmc-ssh-acesso_480x.png b/content/images/librecmc/librecmc-ssh-acesso_480x.png Binary files differnew file mode 100644 index 0000000..b98f562 --- /dev/null +++ b/content/images/librecmc/librecmc-ssh-acesso_480x.png diff --git a/content/images/librecmc/librecmc-ssh-acesso_720x.png b/content/images/librecmc/librecmc-ssh-acesso_720x.png Binary files differnew file mode 100644 index 0000000..dbd2c29 --- /dev/null +++ b/content/images/librecmc/librecmc-ssh-acesso_720x.png diff --git a/content/images/livredejavascript.png b/content/images/livredejavascript.png Binary files differnew file mode 100644 index 0000000..e529510 --- /dev/null +++ b/content/images/livredejavascript.png diff --git a/content/images/logo-bdigital-300x102.png b/content/images/logo-bdigital-300x102.png Binary files differnew file mode 100644 index 0000000..9024bdc --- /dev/null +++ b/content/images/logo-bdigital-300x102.png diff --git a/content/images/sistemas/canoeboot_124x.png b/content/images/sistemas/canoeboot_124x.png Binary files differnew file mode 100644 index 0000000..87390d3 --- /dev/null +++ b/content/images/sistemas/canoeboot_124x.png diff --git a/content/images/sistemas/gnu-slick.png b/content/images/sistemas/gnu-slick.png Binary files differnew file mode 100644 index 0000000..6ab291f --- /dev/null +++ b/content/images/sistemas/gnu-slick.png diff --git a/content/images/sistemas/gnuboot.png b/content/images/sistemas/gnuboot.png Binary files differnew file mode 100644 index 0000000..20ba052 --- /dev/null +++ b/content/images/sistemas/gnuboot.png diff --git a/content/images/sistemas/hyperbola.png b/content/images/sistemas/hyperbola.png Binary files differnew file mode 100644 index 0000000..b8b7e73 --- /dev/null +++ b/content/images/sistemas/hyperbola.png diff --git a/content/images/sistemas/libreboot.png b/content/images/sistemas/libreboot.png Binary files differnew file mode 100644 index 0000000..f53d657 --- /dev/null +++ b/content/images/sistemas/libreboot.png diff --git a/content/images/sistemas/librecmc-luci-web-interface-configuracao.png b/content/images/sistemas/librecmc-luci-web-interface-configuracao.png Binary files differnew file mode 100644 index 0000000..24767b5 --- /dev/null +++ b/content/images/sistemas/librecmc-luci-web-interface-configuracao.png diff --git a/content/images/sistemas/librecmc.png b/content/images/sistemas/librecmc.png Binary files differnew file mode 100644 index 0000000..3d620e8 --- /dev/null +++ b/content/images/sistemas/librecmc.png diff --git a/content/images/sistemas/linux-libre.png b/content/images/sistemas/linux-libre.png Binary files differnew file mode 100644 index 0000000..ff868d5 --- /dev/null +++ b/content/images/sistemas/linux-libre.png diff --git a/content/images/sistemas/mastodon.png b/content/images/sistemas/mastodon.png Binary files differnew file mode 100644 index 0000000..9c413e0 --- /dev/null +++ b/content/images/sistemas/mastodon.png diff --git a/content/images/sistemas/mediagoblin.png b/content/images/sistemas/mediagoblin.png Binary files differnew file mode 100644 index 0000000..f64caec --- /dev/null +++ b/content/images/sistemas/mediagoblin.png diff --git a/content/images/sistemas/nextcloud.png b/content/images/sistemas/nextcloud.png Binary files differnew file mode 100644 index 0000000..2164e37 --- /dev/null +++ b/content/images/sistemas/nextcloud.png diff --git a/content/images/sistemas/p2p-network.png b/content/images/sistemas/p2p-network.png Binary files differnew file mode 100644 index 0000000..002cbb6 --- /dev/null +++ b/content/images/sistemas/p2p-network.png diff --git a/content/images/sistemas/peertube.png b/content/images/sistemas/peertube.png Binary files differnew file mode 100644 index 0000000..03a76cd --- /dev/null +++ b/content/images/sistemas/peertube.png diff --git a/content/images/sistemas/pelican.png b/content/images/sistemas/pelican.png Binary files differnew file mode 100644 index 0000000..f0eb797 --- /dev/null +++ b/content/images/sistemas/pelican.png diff --git a/content/images/sistemas/postfix.gif b/content/images/sistemas/postfix.gif Binary files differnew file mode 100644 index 0000000..16389b2 --- /dev/null +++ b/content/images/sistemas/postfix.gif diff --git a/content/images/sistemas/replicant.png b/content/images/sistemas/replicant.png Binary files differnew file mode 100644 index 0000000..be4b7e0 --- /dev/null +++ b/content/images/sistemas/replicant.png diff --git a/content/images/sistemas/scuttlebutt.png b/content/images/sistemas/scuttlebutt.png Binary files differnew file mode 100644 index 0000000..c7f7a74 --- /dev/null +++ b/content/images/sistemas/scuttlebutt.png diff --git a/content/images/sistemas/services-anonimized.png b/content/images/sistemas/services-anonimized.png Binary files differnew file mode 100644 index 0000000..b23e554 --- /dev/null +++ b/content/images/sistemas/services-anonimized.png diff --git a/content/images/sistemas/services-centralizeds.png b/content/images/sistemas/services-centralizeds.png Binary files differnew file mode 100644 index 0000000..61a5535 --- /dev/null +++ b/content/images/sistemas/services-centralizeds.png diff --git a/content/images/sistemas/services-descentralizeds.png b/content/images/sistemas/services-descentralizeds.png Binary files differnew file mode 100644 index 0000000..733be78 --- /dev/null +++ b/content/images/sistemas/services-descentralizeds.png diff --git a/content/images/sistemas/services-distributeds.png b/content/images/sistemas/services-distributeds.png Binary files differnew file mode 100644 index 0000000..090cc7a --- /dev/null +++ b/content/images/sistemas/services-distributeds.png diff --git a/content/images/sistemas/trisquel.png b/content/images/sistemas/trisquel.png Binary files differnew file mode 100644 index 0000000..6ef25e2 --- /dev/null +++ b/content/images/sistemas/trisquel.png diff --git a/content/images/sistemas/wordpress.png b/content/images/sistemas/wordpress.png Binary files differnew file mode 100644 index 0000000..2d4c33e --- /dev/null +++ b/content/images/sistemas/wordpress.png diff --git a/content/images/sistemas/xmpp.png b/content/images/sistemas/xmpp.png Binary files differnew file mode 100644 index 0000000..25744e6 --- /dev/null +++ b/content/images/sistemas/xmpp.png diff --git a/content/images/tutoriais/conversations.png b/content/images/tutoriais/conversations.png Binary files differnew file mode 100644 index 0000000..b516d84 --- /dev/null +++ b/content/images/tutoriais/conversations.png diff --git a/content/images/tutoriais/gnupg-logo-light-purple-bg.png b/content/images/tutoriais/gnupg-logo-light-purple-bg.png Binary files differnew file mode 100644 index 0000000..41264d9 --- /dev/null +++ b/content/images/tutoriais/gnupg-logo-light-purple-bg.png diff --git a/content/images/tutoriais/icedove-uxp.png b/content/images/tutoriais/icedove-uxp.png Binary files differnew file mode 100644 index 0000000..b7d711e --- /dev/null +++ b/content/images/tutoriais/icedove-uxp.png diff --git a/content/images/tutoriais/iceweasel-uxp.png b/content/images/tutoriais/iceweasel-uxp.png Binary files differnew file mode 100644 index 0000000..f5b1064 --- /dev/null +++ b/content/images/tutoriais/iceweasel-uxp.png diff --git a/content/images/tutoriais/k9-mail.png b/content/images/tutoriais/k9-mail.png Binary files differnew file mode 100644 index 0000000..4c97503 --- /dev/null +++ b/content/images/tutoriais/k9-mail.png diff --git a/content/images/tutoriais/pidgin.png b/content/images/tutoriais/pidgin.png Binary files differnew file mode 100644 index 0000000..d02194d --- /dev/null +++ b/content/images/tutoriais/pidgin.png diff --git a/content/images/tutoriais/privacy-browser.png b/content/images/tutoriais/privacy-browser.png Binary files differnew file mode 100644 index 0000000..ac00754 --- /dev/null +++ b/content/images/tutoriais/privacy-browser.png diff --git a/content/images/tutoriais/qtox.png b/content/images/tutoriais/qtox.png Binary files differnew file mode 100644 index 0000000..a790ae1 --- /dev/null +++ b/content/images/tutoriais/qtox.png diff --git a/content/images/tutoriais/trifa.png b/content/images/tutoriais/trifa.png Binary files differnew file mode 100644 index 0000000..0f0654f --- /dev/null +++ b/content/images/tutoriais/trifa.png diff --git a/content/pages/01-inicio.html b/content/pages/01-inicio.html new file mode 100644 index 0000000..fb326fd --- /dev/null +++ b/content/pages/01-inicio.html @@ -0,0 +1,74 @@ +<html> + <head> + <title>Início</title> + <meta name="URL" content="" /> + <meta name="save_as" content="index.html" /> + <meta name="tags" content="inicio" /> + <meta name="date" content="2024-04-05 01:04" /> + <meta name="modified" content="2024-05-14 10:37" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="inicio" /> + <meta name="template" content="home" /> + </head> + <body class="features"> + <section class="features" style="background-color: #CC0000;"> + <div> + <h2 style="color: #FFFFFF; padding-top: 10px;">Libertamos a informática trabalhadora do controle proprietário</h2> + <p> + Somos uma organização com o objetivo de remover o controle proprietário nas tecnologias da informação de trabalhadores, militantes e organizações conscientes do conflito de classes, implementando software livre, proporcionando melhores condições de ação na luta pela superação da exploração social. Nossa luta é livrar a classe trabalhadora dos controles implantados pelas grandes empresas de tecnologia. + </p> + </div> + <p style="text-align: center;"> + <a href="pages/sobre.html"><button class="button">Sobre</button></a> + </p> + </section> + <section class="features" style="background-color: #FFFFFF;"> + <div> + <h3>Equipamentos <a href="#banner" title="Topo da Página">^</a></h3> + <p> + Preparamos para trabalhadores, militantes e organizações sociais equipamentos notebooks, torres, servidores, roteadores, smartphones, tablets e pendrives livres do controle proprietário. Para tanto, hackeamos dispositivos, adaptando para suportar <a href="pages/sistemas.html">sistemas básicos (BIOS) e operacionais livres de controle proprietário</a>. Os sistemas operacinais dos equipamentos são todos certificados pela Fundação de Software Livre (FSF). A saber: Hyperbola, Trisquel e LibreCMC GNU/Linux-libre e Replicant Android/Linux. Em notebooks e torres, substituímos até o <a href="/pages/sistemas.html#bios">Sistema Básico de Entrada e Saída (BIOS)</a> proprietário por <a href="/pages/sistemas.html#bios-gnuboot">BIOS livre Gnuboot</a> ou <a href="/pages/sistemas.html#bios-canoeboot">Canoeboot</a>, removendo ou neutralizando o <a href="/pages/sistemas.html#bios">inseguro sistema proprietário de gerenciamento de processadores da Intel e AMD</a>. Tornando também possível habilitar o login do Sistema de Inicialização GRUB gravado em memória ROM e criptografar todo o armazenamento, incluindo a partição de boot. Fazendo, assim, computadores extremamente seguros. + </p> + </div> + <p style="text-align: center;"> + <a href="pages/equipamentos.html"><button class="button">Equipamentos</button></a> + </p> + </section> + <section class="features" style="background: #FFCC00;"> + <div> + <h3>Sistemas <a href="#banner" title="Topo da Página">^</a></h3> + <p> + Implementamos <a href="/pages/sistemas.html#bios-gnuboot">BIOS livre Gnuboot</a> e <a href="/pages/sistemas.html#bios-libreboot">Canoeboot</a>, <a href="/pages/sistemas.html#distribuicoes-gnu-linux-libre">distribuições</a> do <a href="/pages/sistemas.html#sistema-operacional-gnu">sistema operacional GNU</a> em conformidade com <a href="https://www.gnu.org/distros/free-system-distribution-guidelines.pt-br.html" title="Diretrizes para Distribuições de Sistemas Livres (GNU FSDG)">Diretrizes para Distribuições de Sistemas Livres (GNU FSDG) e certificadas pela <a href="https://www.gnu.org/distros/free-distros.pt-br.html">Fundação de Software Livre (FSF)</a>. As distribuições GNU certificadas pela FSF implementam o <a href="https://www.fsfla.org/ikiwiki/selibre/linux-libre/freesh.en.html">kernel Linux-libre</a>, no qual são removidos os blobs proprietários do kernel Linux padrão. Além disso, implementamos <a href="/pages/sistemas.html#servicos" title="Implementação de serviços livres de internet">serviços livres de internet</a> alternativos aos proprietários oferecidos pelas corporações capitalistas de tecnologia para a internet. + </p> + <p> + Todos os sistemas são produzidos cooperativamente pela comunidade hacker de <a href="https://www.fsfla.org/ikiwiki/about/what-is-free-software.pt.html">software livre</a> e seus códigos são comunitarizados, podendo ser executados para qualquer finalidade, lidos e estudados (auditados), copiados e alterados. + </p> + </div> + <div class="image" style="text-align: center;"> + <a href="https://gnu.org"><img src="/images/sistemas/gnu-slick.png" title="Site Gnu" alt="Site Gnu" /></a> + <a href="https://savannah.gnu.org/projects/gnuboot/"><img src="/images/sistemas/gnuboot.png" title="Site Gnuboot" alt="Site Gnuboot" /></a> + <a href="https://canoeboot.org"><img src="/images/sistemas/canoeboot_124x.png" title="Canoeboot" alt="Site Canoeboot" /></a> + <a href="https://www.fsfla.org/ikiwiki/selibre/linux-libre/"><img src="/images/sistemas/linux-libre.png" title="Site Gnu/Linux-libre" alt="Site Gnu/linux-libre" /></a> + <a href="https://librecmc.org"><img src="/images/sistemas/librecmc.png" title="Site LibreCMC Gnu/Linux-libre" alt="Site LibreCMC Gnu/linux-libre" /></a> + <a href="https://trisquel.info"><img src="/images/sistemas/trisquel.png" title="Site Trisquel Gnu/Linux-libre" alt="Site Trisquel Gnu/linux-libre" /></a> + <a href="https://hyperbola.info"><img src="/images/sistemas/hyperbola.png" title="Site Hyperbola Gnu/Linux-libre" alt="Site Hyperbola Gnu/linux-libre" /></a> + <a href="https://replicant.us"><img src="/images/sistemas/replicant.png" title="Site Replicant" alt="Site Repliciant" /></a> + </div> + <p style="text-align: center;"> + <a href="pages/sistemas.html"><button class="button">Sistemas</button></a> + </p> + </section> + <section class="features"> + <div> + <h3>Consultoria <a href="#banner" title="Topo da Página">^</a></h3> + <p> + A Brigada Digital oferece apoio para organizações da classe trabalhadora, desenvolvendo planos, implementando, capacitando militantes e dando suporte em tecnologias da informação livres do controle proprietário, objetivando desenvolver autonomia na gestão da informação com infraestrutura auto-hospedada e controle interno às organizações de trabalhadores. + </p> + <p style="text-align: center;"> + <a href="pages/consultoria.html"><button class="button">Consultoria</button></a> + </p> + </div> + </section> + </body> +</html> + + diff --git a/content/pages/01-inicio.html~ b/content/pages/01-inicio.html~ new file mode 100644 index 0000000..8606f3e --- /dev/null +++ b/content/pages/01-inicio.html~ @@ -0,0 +1,74 @@ +<html> + <head> + <title>Início</title> + <meta name="URL" content="" /> + <meta name="save_as" content="index.html" /> + <meta name="tags" content="inicio" /> + <meta name="date" content="2024-04-05 01:04" /> + <meta name="modified" content="2024-05-14 10:37" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="inicio" /> + <meta name="template" content="home" /> + </head> + <body class="features"> + <section class="features" style="background-color: #CC0000;"> + <div> + <h2 style="color: #FFFFFF; padding-top: 10px;">Libertamos a classe trabalhadora do controle proprietário sobre as tecnologias da informação</h2> + <p> + Somos uma organização com o objetivo de remover o controle proprietário nas tecnologias da informação de trabalhadores, militantes e organizações conscientes do conflito de classes, proporcionando melhores condições de ação na luta pela superação da exploração social. + </p> + </div> + <p style="text-align: center;"> + <a href="pages/sobre.html"><button class="button">Sobre</button></a> + </p> + </section> + <section class="features" style="background-color: #FFFFFF;"> + <div> + <h3>Equipamentos <a href="#banner" title="Topo da Página">^</a></h3> + <p> + Preparamos para trabalhadores, militantes e organizações sociais equipamentos notebooks, torres, roteadores, smartphones, tablets e pendrives livres do controle proprietário. Para tanto, hackeamos dispositivos, adaptando para suportar <a href="pages/sistemas.html">sistemas básicos e operacionais livres de controle proprietário</a>. Os sistemas operacinais dos equipamentos são todos certificados pela Fundação de Software Livre (FSF). A saber: Hyperbola, Trisquel e LibreCMC GNU/Linux-libre e Replicant Android/Linux. Em notebooks e torres, substituímos até o <a href="/pages/sistemas.html#bios">Sistema Básico de Entrada e Saída (BIOS)</a> proprietário por <a href="/pages/sistemas.html#bios-gnuboot">BIOS livre Gnuboot</a> ou <a href="/pages/sistemas.html#bios-libreboot">opensource Libreboot</a>, removendo ou neutralizando o <a href="/pages/sistemas.html#bios">inseguro Sistema Proprietário de Gerenciamento de processadores da Intel e AMD</a>. Tornando também possível habilitar o login do Sistema de Inicialização GRUB gravado em memória ROM e criptografar todo o armazenamento, incluindo a partição de boot. Fazendo, assim, computadores extremamente seguros. + </p> + </div> + <p style="text-align: center;"> + <a href="pages/equipamentos.html"><button class="button">Equipamentos</button></a> + </p> + </section> + <section class="features" style="background: #FFCC00;"> + <div> + <h3>Sistemas <a href="#banner" title="Topo da Página">^</a></h3> + <p> + Implementamos <a href="/pages/sistemas.html#bios-gnuboot">BIOS livre Gnuboot</a>, <a href="/pages/sistemas.html#bios-libreboot">opensource Libreboot</a> e <a href="/pages/sistemas.html#distribuicoes-gnu-linux-libre">distribuições</a> do <a href="/pages/sistemas.html#sistema-operacional-gnu">sistema operacional GNU</a> certificados pela <a href="https://www.gnu.org/distros/free-distros.html">Fundação de Software Livre (FSF)</a>. As distribuições GNU certificadas pela FSF implementam o <a href="/pages/sistemas.html#kernel-linux-libre">kernel Linux-libre</a>, no qual são removidos os blobs proprietários do kernel Linux padrão. Além disso, implementamos serviços livres de internet alternativos aos proprietários oferecidos pelas corporações capitalistas de tecnologia para a internet. + </p> + <p> + Todos os sistemas são produzidos cooperativamente pela comunidade hacker de software livre e opensource, no caso do Libreboot, e seus códigos são comunitarizados, podendo ser lidos (auditados), copiados e alterados. + </p> + </div> + <div class="image" style="text-align: center;"> + <a href="https://gnu.org"><img src="/images/sistemas/gnu-slick.png" title="Site Gnu" alt="Site Gnu" /></a> + <a href="https://savannah.gnu.org/projects/gnuboot/"><img src="/images/sistemas/gnuboot.png" title="Site Gnuboot" alt="Site Gnuboot" /></a> + <a href="https://libreboot.org"><img src="/images/sistemas/libreboot.png" title="Libreboot" alt="Site Libreboot" /></a> + <a href="https://www.fsfla.org/ikiwiki/selibre/linux-libre/"><img src="/images/sistemas/linux-libre.png" title="Site Gnu/Linux-libre" alt="Site Gnu/linux-libre" /></a> + <a href="https://librecmc.org"><img src="/images/sistemas/librecmc.png" title="Site LibreCMC Gnu/Linux-libre" alt="Site LibreCMC Gnu/linux-libre" /></a> + <a href="https://trisquel.info"><img src="/images/sistemas/trisquel.png" title="Site Trisquel Gnu/Linux-libre" alt="Site Trisquel Gnu/linux-libre" /></a> + <a href="https://hyperbola.info"><img src="/images/sistemas/hyperbola.png" title="Site Hyperbola Gnu/Linux-libre" alt="Site Hyperbola Gnu/linux-libre" /></a> + <a href="https://replicant.us"><img src="/images/sistemas/replicant.png" title="Site Replicant" alt="Site Repliciant" /></a> + </div> + <p style="text-align: center;"> + <a href="pages/sistemas.html"><button class="button">Sistemas</button></a> + </p> + </section> + <section class="features"> + <div> + <h3>Consultoria <a href="#banner" title="Topo da Página">^</a></h3> + <p> + A Brigada Digital oferece apoio para organizações da classe trabalhadora, desenvolvendo planos, implementando, capacitando militantes e dando suporte em tecnologias da informação livres do controle proprietário, objetivando desenvolver autonomia na gestão da informação com infraestrutura auto-hospedada e controle interno às organizações de trabalhadores. + </p> + <p style="text-align: center;"> + <a href="pages/consultoria.html"><button class="button">Consultoria</button></a> + </p> + </div> + </section> + </body> +</html> + + diff --git a/content/pages/apoie.html b/content/pages/apoie.html new file mode 100644 index 0000000..b12afa9 --- /dev/null +++ b/content/pages/apoie.html @@ -0,0 +1,17 @@ +<html> + <head> + <title>Apoie</title> + <meta name="tags" content="brigada digital, doação, apoio" /> + <meta name="date" content="2024-04-09 01:23" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="apoie" /> + <meta name="summary" content="Apoie as atividades da Brigada Digital com a doação de dinheiro e equipamentos." /> + </head> + <body class="features"> + <section class="features"> + <p>Aceitamos apoio através da doação de equipamentos e em breve aceitaremos doações financeiras a fim de desenvolvermos as atividades da Brigada Digital.</p> + <p>Casos queira contribuir, entre em contato:</p> + <a href="/pages/contato.html" title="Contato"><button class="button">Contato</button></a> + </section> + </body> +</html> diff --git a/content/pages/apoie.html~ b/content/pages/apoie.html~ new file mode 100644 index 0000000..8728ab6 --- /dev/null +++ b/content/pages/apoie.html~ @@ -0,0 +1,14 @@ +<html> + <head> + <title>Apoie</title> + <meta name="tags" content="brigada digital, doação, apoio" /> + <meta name="date" content="2024-04-09 01:23" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="apoie" /> + <meta name="summary" content="Apoie as atividades da Brigada Digital com a doação de dinheiro e equipamentos." /> + <meta name="status" content="hidden" /> + </head> + <body class="features"> + <p>Aceitamos receber apoio através da doação de equipamentos ou dinheiro a fim de alimentar as atividades da Brigada Digital.</p> + </body> +</html> diff --git a/content/pages/artigos.html b/content/pages/artigos.html new file mode 100644 index 0000000..79eab1b --- /dev/null +++ b/content/pages/artigos.html @@ -0,0 +1,14 @@ +<html> + <head> + <title>Artigos</title> + <meta name="tags" content="brigada digital" /> + <meta name="date" content="2024-04-07 22:57" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="artigos" /> + <meta name="summary" content="Artigos publicados pela Brigada Digital" /> + <meta name="status" content="hidden" /> + </head> + <body class="features"> + <p>A Brigada Digital é uma organização marxista revolucionária compreende que o processo de produção capitalista é pautado na exploração e o sentido da classe trabalhadora é a superação dessa situação.</p> + </body> +</html> diff --git a/content/pages/artigos.html~ b/content/pages/artigos.html~ new file mode 100644 index 0000000..748c305 --- /dev/null +++ b/content/pages/artigos.html~ @@ -0,0 +1,13 @@ +<html> + <head> + <title>Artigos</title> + <meta name="tags" content="brigada digital" /> + <meta name="date" content="2024-04-07 22:57" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="artigos" /> + <meta name="summary" content="Artigos publicados pela Brigada Digital" /> + </head> + <body class="features"> + <p>A Brigada Digital é uma organização marxista revolucionária compreende que o processo de produção capitalista é pautado na exploração e o sentido da classe trabalhadora é a superação dessa situação.</p> + </body> +</html> diff --git a/content/pages/comunidade.html b/content/pages/comunidade.html new file mode 100644 index 0000000..23cf587 --- /dev/null +++ b/content/pages/comunidade.html @@ -0,0 +1,14 @@ +<html> + <head> + <title>Comunidade</title> + <meta name="tags" content="brigada digital, software livre, comunidade" /> + <meta name="date" content="2024-04-09 02:04" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="comunidade" /> + <meta name="summary" content="Comunidade de brigadistas." /> + <meta name="status" content="draft" /> + </head> + <body class="features"> + <p>A comunidade de brigadistas de tecnologia da informação.</p> + </body> +</html> diff --git a/content/pages/consultoria.html b/content/pages/consultoria.html new file mode 100644 index 0000000..b8585ec --- /dev/null +++ b/content/pages/consultoria.html @@ -0,0 +1,26 @@ +<html> + <head> + <title>Consultoria</title> + <meta name="tags" content="brigada digital, consultoria, anticapitalismo, ti, tecnologias da informação, comunicação, software livre" /> + <meta name="date" content="2024-04-09 01:50" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="consultoria" /> + <meta name="summary" content="Consultoria para apoio à organizações da classe na implementação de tecnologias da informação livres do controle proprietário." /> + </head> + <body class="features"> + <section class="features"> + <p> + A Brigada Digital oferece apoio para as organizações da classe trabalhadora implementarem tecnologias da informação livres do controle proprietário. + </p> + <p> + Nós desenvolvemos o projeto, tendo em mente tecnologias descentralizadas federadas e, de preferência, distribuídas. Implementamos infraestrutura auto-hospedada e capacitamos a organização visando a autonomia e o controle interno das informações. Além disso, oferemos suporte, se houver necessidade. + </p> + <p> + Caso tenha interesse, entre e contato: + </p> + <p> + <a href="/pages/contato.html"><button class="button">Contato</button></a> + </p> + </section> + </body> +</html> diff --git a/content/pages/consultoria.html~ b/content/pages/consultoria.html~ new file mode 100644 index 0000000..4e21c22 --- /dev/null +++ b/content/pages/consultoria.html~ @@ -0,0 +1,13 @@ +<html> + <head> + <title>Consultoria</title> + <meta name="tags" content="brigada digital, consultoria, anticapitalismo, ti, tecnologias da informação, comunicação, software livre" /> + <meta name="date" content="2024-04-09 01:50" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="consultoria" /> + <meta name="summary" content="Consultoria para apoio à organizações da classe na implementação de tecnologias da informação livres do controle proprietário." /> + </head> + <body class="features"> + <p>A Brigada Digital compreende aconselha os trabalhadores a usar somente software livre, contudo, a arquitetura de serviços SaaS, mesmo livre centralizado e descentralizado federado, é vulnerável a alguns tipos de ataque de confiaça. Nesse sentido, indicamos dar preferência a programas de rede livres de arquitetura distribuída. Abaixo, lista de programas que serguem a arquitetura distribuída.</p> + </body> +</html> diff --git a/content/pages/contato.html b/content/pages/contato.html new file mode 100644 index 0000000..e0a402e --- /dev/null +++ b/content/pages/contato.html @@ -0,0 +1,37 @@ +<html> + <head> + <title>Contato</title> + <meta name="tags" content="Brigada Digital" /> + <meta name="date" content="2026-04-27 13:30" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="contato" /> + <meta name="summary" content="Formas de contato da Brigada Digital" /> + </head> + <body class="features"> + <section class="features"> + <h3>E-mail</h3> + <p><a href="mailto:contato@brigadadigital.tec.br">contato@brigadadigital.tec.br</a></p> + <p> + Nossa chave de criptografia PGP tem impressão digital: 4C9346E3E33017EBE2F1DE83D8401FA49DEE38C4 (<a href="https://keys.openpgp.org/vks/v1/by-fingerprint/4C9346E3E33017EBE2F1DE83D8401FA49DEE38C4">Download da chave</a>). + </p> + <p>Nossos e-mails são marcados como spam pelos serviços proprietários. Caso seu e-mail seja gmail, yahoo, hotmail, outlook e etc, nossa resposta será encaminhada para a pasta de spam.</p> + <h3>Xmpp/Jabber</h3> + <p>Contato: <a href="xmpp:contato@brigadadigital.org.br">contato@brigadadigital.org.br</a></p> + <p>Sala de XMPP: <a href="xmpp:brigadadigital@grupos.brigadadigital.org.br?join" target="_blank" title="Sala XMPP da Brigada">brigadadigital@grupos.brigadadigital.org.br</a></p> + <div> + <p>Download de clientes para XMPP:</p> + <ul style="list-style: disc; padding-left: 5%;"> + <li>Gnu/Linux, Windows, MacOS e FreeBSD: <a href="https://gajim.org/" target="_blank" title="Download Gajim, cliente de XMPP para Gnu/Linux e Windows">Gajim</a>.</li> + <li>Android/Linux: <a href="https://conversations.im/" target="_blank" title="Download Gajim, cliente de XMPP para Gnu/Linux e Windows">Conversations</a>.</li> + <li>IOS: <a href="https://monal.im/" target="_blank" Title="Download do Monal - Cliente de XMPP para IOS ">Monal IM</a>.</li> + </ul> + </div> + <h3>Jami</h3> + <p>ID da conta: <a href="jami:brigada-digital">brigada-digital</a>.</p> + <p><a href="https://jami.net/" target="_blank" title="Download do Jami">Download do Jami</a> para Gnu/Linux, Windows, MacOS, IOS e Android/Linux.</p> + <h3>Tox</h3> + <p>ID: <a href="tox:14C838043B3C4B03EA4220E3A9FE907D10B56BED9C2741D862EFD6B02685147AFDDC46F234F8">14C838043B3C4B03EA4220E3A9FE907D10B56BED9C2741D862EFD6B02685147AFDDC46F234F8</a>.</p> + <p><a href="https://tox.chat/" target="_blank" title="Download do Tox">Download do Tox</a> para Gnu/Linux, Windows, FreeBSD e Android/Linux.</p> + </section> + </body> +</html> diff --git a/content/pages/contato.html~ b/content/pages/contato.html~ new file mode 100644 index 0000000..ecda806 --- /dev/null +++ b/content/pages/contato.html~ @@ -0,0 +1,15 @@ +<html> + <head> + <title>Contato</title> + <meta name="tags" content="Brigada Digital" /> + <meta name="date" content="2024-04-07 22:58" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="contato" /> + <meta name="summary" content="Formas de contato da Brigada Digital" /> + </head> + <body class="features"> + <p>E-mail: contato@brigadadigital.org.br</p> + <p>Xmpp: contato@brigadadigital.org.br</p> + <p>Tox: 6246503042349565285409E4DB057EA4C98A9F0CB022E4DB4300580338B38169A50CED96890A</p> + </body> +</html> diff --git a/content/pages/equipamentos.html b/content/pages/equipamentos.html new file mode 100644 index 0000000..3c56a5b --- /dev/null +++ b/content/pages/equipamentos.html @@ -0,0 +1,376 @@ +<html> + <head> + <title>Equipamentos</title> + <meta name="tags" content="equipamentos, dispositivos, ferramentas, software livre" /> + <meta name="date" content="2025-07-21 15:27" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="equipamentos" /> + <meta name="summary" content="A Brigada Digital prepara equipamentos notebooks, torres, smartphones, tablets e roteadores com implementação de sistemas completamente livres" /> + </head> + <body class="features"> + <section class="indice"> + <h3>Índice</h3> + <ul> + <li><a href="#notebooks-torres-servidores">Notebooks, torres e servidores</a></li> + <ul style="list-style: circle;"> + <li><a href="#notebooks">Notebooks</a></li> + <li><a href="#torres-servidores">Torres e servidores</a></li> + </ul> + <li><a href="#roteadores">Roteadores</a></li> + <li><a href="#smartphones">Smartphones</a></li> + <li><a href="#pendrives" title="Pendrive criptografado com GNU/Linux-libre">Pendrive criptografado com GNU/Linux-libre</a></li> + </ul> + </section> + <section class="features"> + <p> + Nossos equipamentos são preparados para trabalhadores, militantes e organizações sociais conscientes do conflito de classes, construídos com o objetivo de substituir os sitemas de controle proprietário por livres. Para tanto, temos uma lista de modelos que fazemos suportar a implementação de <a href="/pages/sistemas.html" title="Sistemas livres">sistemas livres do controle proprietário</a>. + </p> + <p> + Devido ao avanço do controle capitalista sobre a informática e o tempo gasto para o desenvolvimento de suporte nos sistemas livres, os modelos estão restritos a equipamentos usados. Então preparamos as ferramentas sob encomenda e disponibilidade do mercado de usados. Compramos os equipamentos, fazemos manutenção, reposição, troca de peças, upgrade e instalação dos sistemas. Por isso produzimos sob encomenda e precisamos combinar o tempo para fazer a entrega, que depende da disponibilidade do mercado. Da nossa parte, fazemos tudo com a máxima urgência. + </p> + <p><strong>Além disso, dedicamos 10% do valor do equipamento para apoiar os projetos de software livre implementados nos equipamentos.</strong></p> + <p> + Os equipamentos são produzidos tendo em vista sua função e/ou o nível de segurança exigido pela posição que o trabalhador, militante ou organização social ocupa no conflito de classes. Nesse sentido, pensamos em <strong>equipamentos para as organizações, direção e vanguarda e equipamentos para a base da militância</strong>. + </p> + <figure class="image img"> + <img + srcset="/images/equipamentos/thinkpad-t400-gnuboot-480x.jpg 480w, + /images/equipamentos/thinkpad-t400-gnuboot-720x.jpg 720w, + /images/equipamentos/thinkpad-t400-gnuboot-1024x.jpg" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/equipamentos/thinkpad-t400-gnuboot-1024x.jpg" + title="Thinkpads com Gnuboot" + alt="Imagem de notebook Thinkpad T400 com bios Gnuboot" /> + <img + srcset="/images/equipamentos/thinkpad-t400-canoeboot-480x.jpg 480w, + /images/equipamentos/thinkpad-t400-canoeboot-720x.jpg 720w, + /images/equipamentos/thinkpad-t400-canoeboot-1024x.jpg" + sizes="(width <= 600px) 480px, (width <= 1024px) 720px" + src="/images/equipamentos/thinkpad-t400-canoeboot-1024x.jpg" + title="Thinkpads com Canoeboot" + alt="Imagem de notebook Thinkpad T400 com bios Canoeboot" /> + <figcaption>Thinkpads T400 com Gnuboot e Canoeboot</figcaption> + </figure> + <p> + Tenha uma informática livre de controle proprietário capitalista: + </p> + <p> + <a href="/pages/contato.html"><button class="button">Contato</button></a> + </p> + </section> + <section class="features"> + <h1><a name="notebooks-torres-servidores" href="#notebooks-torres-servidores" title="Notebooks, torres e servidores preparados pela Brigada Digital">Notebooks, torres e servidores</a> <a href="#banner" title="Ir para o topo da página">^</a></h1> + <p> + São equipamentos com as mais avançadas implementações em termos de segurança da informação. São destinados a trabalhadores, militantes e organizações sociais que trabalham com informações sensíveis, onde a vigilância pode ocorrer desde o sistema básico e operacional. + <p> + Na construção dos notebooks, torres e servidores substituímos o BIOS proprietário por <a href="/pages/sistemas.html#bios" title="BIOS Gnuboot"><strong>BIOS livres Gnuboot ou Canoeboot</strong></a> e instalamos o <a href="/pages/sistemas.html#sistema-operacional-gnu">sistema operacional GNU</a> com <a href="/pages/sistemas.html#kernel-linux-libre">kernel Linux-libre</a>, através das distribuições <a href="/pages/sistemas.html#distribuicao-gnu-linux-libre-hyperbola" title="Hyperbola GNU/Linux-libre">Hyperbola Gnu/Linux-libre</a> e/ou <a href="/pages/sistemas.html#distribuicao-gnu-linux-libre-trisquel" title="Trisquel Gnu/Linux-libre">Trisquel Gnu/Linux-Libre</a>. O Bios Gnuboot, não insere o Mecanismo de Gerencialmento dos processadores da Intel e Amd, conhecido por ser um <a href="/pages/sistemas.html#bios" title="BIOS">backdoor de acessor root</a> inserido no sistema básico (BIOS) proprietário, garantindo, com isso, a máxima segurança, enquanto o Bios Canoeboot neutraliza/desabilita o Mecanismo de Gerenciamento dos processadores após o seu carregamento. + </p> + <div> + <h2><a name="notebooks" href="#notebooks" title="Notebooks preparados pela Brigada Digital">Notebooks</a> <a href="#banner" title="Ir para o topo da página">^</a></h2> + <p> + Em notebooks, além de instalar os <a href="/pages/sistemas.html#bios" title="BIOS Gnuboot"><strong>BIOS livres Gnuboot ou Canoeboot</strong></a> e os sistemas operacionais <strong>Trisquel/Hyperbola GNU/Linux-libre</strong>, instalamos <strong>dispositivo wifi que funciona por meio de firmware livre</strong>. Sob demanda, também podemos instalar no lugar do DVD outro dispositivo SATA, ampliando o armazenamento e as possibilidades de configuração. A seguir, lista de modelos de notebooks que a Brigada liberta: + </p> + <div> + <table> + <tr> + <th>Modelo</th> + <th>CPU</th> + <th>RAM (Máx.)</th> + <th>Gráfico</th> + <th>Tela</th> + <th>BIOS</th> + </tr> + <tr> + <td>Lenovo Thinkpad X200</td> + <td>Intel Core 2 Duo (Penryn)</td> + <td>4GB (2x2GB DDR3 1066MHz)</td> + <td>Intel GMA 4500MHD</td> + <td>12"</td> + <td>Gnuboot/Canoeboot</td> + </tr> + <tr> + <td>Dell Latitude E4300</td> + <td>Intel Core 2 Duo (Penryn)</td> + <td>8G (2x4G DDR3 1066MHz)</td> + <td>Intel GMA 4500MHD</td> + <td>13"</td> + <td>Gnuboot/Canoeboot</td> + </tr> + <tr> + <td>Dell Latitude E6400</td> + <td>Intel Core 2 Duo (Penryn)</td> + <td>8GB (2x4GB DDR3 1066MHz)</td> + <td>Intel GMA 4500MHD/Nvidia Quadro NVS 160M</td> + <td>14"</td> + <td>Gnuboot/Canoeboot</td> + </tr> + <tr> + <td>Lenovo Thinkpad T400</td> + <td>Intel Core 2 Duo (Penryn)</td> + <td>8GB (2x4GB DDR3 1066MHz)</td> + <td>Intel GMA 4500MHD</td> + <td>14"</td> + <td>Gnuboot/Canoeboot</td> + </tr> + <tr> + <td>Lenovo Thinkpad T500</td> + <td>Intel Core 2 Duo (Penryn)</td> + <td>8GB (2x4GB DDR3 1066MHz)</td> + <td>Intel GMA 4500MHD</td> + <td>15"</td> + <td>Gnuboot/Canoeboot</td> + </tr> + <tr> + <td>Lenovo Thinkpad X220</td> + <td>Intel 2ª Ger. i3/i5/i7 (Sandy Bridge)</td> + <td>8GB (2x4GB DDR3 1333MHz)</td> + <td>Intel HD Graphics 3000</td> + <td>12"</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>Dell Letitude E6220</td> + <td>Intel 2ª Ger. i3/i5/i7 (Sandy Bridge)</td> + <td>8GB (2x4GB DDR3 1333MHz)</td> + <td>Intel HD Graphics 3000</td> + <td>12"</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>Lenovo Thinkpad T420</td> + <td>Intel 2ª Ger. i3/i5/i7 (Sandy Bridge)</td> + <td>8GB (2x4GB DDR3 1333MHz)</td> + <td>Intel HD Graphics 3000</td> + <td>14"</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>Dell Letitude E5420/E6420</td> + <td>Intel 2ª Ger. i3/i5/i7 (Sandy Bridge)</td> + <td>8GB (2x4GB DDR3 1333MHz)</td> + <td>Intel HD Graphics 3000</td> + <td>14"</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>Dell Letitude E5520/E6520</td> + <td>Intel 2ª Ger. i3/i5/i7 (Sandy Bridge)</td> + <td>8G (2x4G DDR3 1333MHz)</td> + <td>Intel HD Graphics 3000</td> + <td>15"</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>Dell Latitude E6330</td> + <td>Intel 3ª Ger. i3/i5/i7 (Ivy Bridge)</td> + <td>8GB (2x4GB DDR3 1600MHz)</td> + <td>Intel HD Graphics 4000</td> + <td>13"</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>Dell Latitude E5530/E6530</td> + <td>Intel 3ª Ger. i3/i5/i7 (Ivy Bridge)</td> + <td>8GB (2x4GB DDR3 1600MHz)</td> + <td>Intel HD Graphics 4000</td> + <td>14"</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>Dell Latitude E6430</td> + <td>Intel 3ª Ger. i3/i5/i7 (Ivy Bridge)</td> + <td>8GB (2x4GB DDR3 1600MHz)</td> + <td>Intel HD Graphics 4000/Nvidia Quadro NVS 5200M</td> + <td>14"</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>Lenovo Thinkpad X230/Dell Latitude E6230</td> + <td>Intel 3ª Ger. i3/i5/i7 (Ivy Bridge)</td> + <td>16GB (2x8GB DDR3 1600MHz)</td> + <td>Intel HD Graphics 4000</td> + <td>12"</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>Lenovo Thinkpad T430</td> + <td>Intel 3ª Ger. i3/i5/i7 (Ivy Bridge)</td> + <td>16GB (2x8GB DDR3 1600MHz)</td> + <td>Intel HD Graphics 4000</td> + <td>14"</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>Lenovo Thinkpad T440p</td> + <td>Intel 4ª Ger. i3/i5/i7 (Haswell)</td> + <td>16GB (2x8GB DDR3 1600MHz)</td> + <td>Intel HD Graphics 4600</td> + <td>14"</td> + <td>Canoeboot</td> + </tr> + </table> + </div> + </div> + <div> + <h2><a name="torres-servidores"><a href="#torres-servidores" title="Torres e servidores preparados pela Brigada">Torres e servidores</a></a> <a href="#banner" title="Ir para o topo da página">^</a></h2> + <p> + Nas torres e servidores também implementamos <a href="/pages/sistemas.html#bios" title="BIOS Gnuboot"><strong>BIOS livres Gnuboot ou Canoeboot</strong></a>, sistema operacional GNU/Linux-libre Trisquel ou GNU/Linux-libre Hyperbola e Wi-Fi de firmware livre (opcional), também podemos instalar discos adicionais para ampliar o armazenamento e possibilitar a implementação de raid. A seguir, lista de modelos de torres/servidores que a Brigada Digital liberta: + </p> + <div> + <table> + <tr> + <th>Modelo</th> + <th>CPU</th> + <th>RAM (Máx.)</th> + <th>Gráfico</th> + <th>BIOS</th> + </tr> + <tr> + <td>Placa Gigabyte GA-G41M-ES2L</td> + <td>Intel Core 2 Duo/2 Quad (Penryn)</td> + <td>8GB (2x4GB DDR3)</td> + <td>Intel GMA 4500MHD</td> + <td>Gnuboot/Canoeboot</td> + </tr> + <tr> + <td>Placa ASUS KCMA-D8 mainboard</td> + <td>2 x socket C32 (LGA 1207) 4/6 Core AMD Opteron 4200 Series</td> + <td>32GB (8x8GB UDIMM DDR3 - 2 channel por CPU)</td> + <td>Aspeed AST2050 8MB</td> + <td>Gnuboot/Canoeboot</td> + </tr> + <tr> + <td>Placa Gigabyte ASUS KGPE-D16</td> + <td>2 x socket C32 (LGA 1207) 4/8/12/16 Core AMD Opteron 6200/6300 Series</td> + <td>64GB/256GB (UDIMM/RDIMM DDR3)</td> + <td>-</td> + <td>Gnuboot/Canoeboot</td> + </tr> + <tr> + <td>OptiPlex 780 MT/USFF</td> + <td>Intel Core 2 Duo (Penryn) (e.g. E8400 - T9600)</td> + <td>16GB/8GB (MT (4x4GB) - USFF (2x4GB) - DDR3 DIMMs)</td> + <td>Intel GMA 4500MHD</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>Dell OptiPlex 7010/9010 SFF/Precision T1650</td> + <td>Intel 3ª Ger. i5/i7 (Ivy Bridge)</td> + <td>32GB (4x8GB DDR3 DIMMs)</td> + <td>Intel HD Graphics 4000</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>HP Elite 8200 SFF/MT e 6200 Pro Business</td> + <td>Intel 2ª/3ª Ger. (Sandy/Ivy Bridge) i5/i7</td> + <td>32GB (4x8GB DDR3 DIMMs)</td> + <td>Intel HD Graphics 4000</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>HP Compaq 8300 Elite USDT</td> + <td>Intel 2ª/3ª Ger. (Sandy/Ivy Bridge) i5/i7</td> + <td>16GB (2x8GB DDR3 DIMMs)</td> + <td>Intel HD Graphics 4000</td> + <td>Canoeboot</td> + </tr> + <tr> + <td>Dell OptiPlex 9020/7020 SFF/MT ou XE2 SFF/MT</td> + <td>Intel 4ª Ger. (Haswell) i5/i7</td> + <td>32G (4x8GB DDR3 DIMMs)</td> + <td>Intel HD Graphics 4600</td> + <td>Canoeboot</td> + </tr> + </table> + </div> + </div> + </section> + <section class="features"> + <h1><a name="roteadores"><a href="#roteadores" title="Roteadores produzidos pela Brigada Digital">Roteadores</a></a> <a href="#banner" title="Ir para o topo da página">^</a></h1> + <p> + Implementamos nos roteadores o <a href="/pages/sistemas.html#distribuicao-gnu-linux-libre-librecmc" title="Sistema Operacional LibreCMC GNU/Linux-libre">sistema operacional LibreCMC GNU/Linux-libre</a>. A seguir, lista de roteadores que a Brigada Digital liberta: + </p> + <div> + <table> + <tr> + <td>Modelo</td> + <td>TP-Link TL-WDR4300</td> + </tr> + <tr> + <td>Frequências</td> + <td>2.4GHz (300Mbps) e 5GHz (450Mbps)</td> + </tr> + <tr> + <td>Portas USB</td> + <td>2 USB 2.0</td> + </tr> + </table> + </div> + </section> + <section class="features"> + <div> + <h1><a name="smartphones"><a href="#smartphones" title="Smartphones">Smartphones</a></a> <a href="#banner" title="Ir para o topo da página">^</a></h1> + <p> + Implementamos o <a href="/pages/sistemas.html#distribuicao-nao-gnu-livre-replicant">sistema operacional Replicant</a>, equipado com adaptador wifi externo, cabo Y, adaptador usb, cartão de memória, capa, película e bateria nova com capacidade maior que as originais nos modelos Samsung Galaxy Note 2 N7100 e Samsung Galaxy S3 I9300. + </p> + <figure class="image img"> + <img src="/images/equipamentos/note2-s3-replicant.png" + title="Samgung Galaxy Note 2 N7100 e Samsung Galaxy S3 I9300" + alt="Imagem de dois smartphones à esquerda Samsung Galaxy Note 2 N7100 e à direita Samsung Galaxy S3 I9300" /> + <figcaption>Samsung Galaxy Note 2 N7100 e Samsung Galaxy S3 I9300</figcaption> + </figure> + <p> + O sistema não suporta aceleração 3D, câmera frontal, GPS e Wi-Fi interno, devido a necessidade de firmware proprietário para fazer esses dispositivos internos funcionarem. Contudo, é possível ter Wi-Fi através dongle wi-fi (adaptador usb wi-fi). Apesar disso, é um bom dispositivo móvel em termos recursos de hardware e suporte a tecnologias livres. Toda a ligação com o Google é removido e o repositório F-Droid é incluído para o gerenciamento de aplicativos. + </p> + <p> + Abaixo especificações dos modelos: + </p> + <div> + <table> + <tr> + <th>Modelo</th> + <th>CPU</th> + <th>RAM</th> + <th>Armazenamento</th> + <th>Tela</th> + <th>Bateria</th> + </tr> + <tr> + <td>Samsung Galaxy Note 2 N7100</td> + <td>Quad-Core 1.6GHz Cortex A9</td> + <td>2G</td> + <td>16G</td> + <td>720x1280 AMOLED</td> + <td>3100 mAh</td> + </tr> + <tr> + <td>Samsung Galaxy S3 GT I9300</td> + <td>Quad-Core 1.4GHz</td> + <td>1G</td> + <td>16G</td> + <td>4.8"</td> + <td>2100 mAh</td> + </tr> + </table> + </div> + </div> + </section> + <section class="features"> + <div> + <h1><a name="pendrives" href="#base-pendrives" title="Pendrives criptografas com sistemas operacional para a base da militância">Pendrives</a> <a href="#banner" title="Ir para o topo da página">^</a></h1> + <p> + Implementamos o <a href="/pages/sistemas.html#distribuicao-gnu-linux-libre-hyperbola">a distribuição Hyperbola GNU/Linux-libre</a> ou <a href="/pages/sistemas.html#distribuicao-gnu-linux-libre-trisquel">a distribuição Trisquel GNU/Linux-libre</a>, em pendrive criptografado para ser utilizado em computadores públicos mantendo os arquivos seguros contra acesso não autorizado. + </p> + </div> + </section> + <section class="features"> + <h3>Contato <a href="#banner" title="Topo da página">^</a></h3> + <p> + Tenha uma informática livre de controle proprietário capitalista: + </p> + <p> + <a href="/pages/contato.html"><button class="button">Contato</button></a> + </p> + </section> + </body> +</html> diff --git a/content/pages/equipamentos.html~ b/content/pages/equipamentos.html~ new file mode 100644 index 0000000..9f52118 --- /dev/null +++ b/content/pages/equipamentos.html~ @@ -0,0 +1,290 @@ +<html> + <head> + <title>Equipamentos</title> + <meta name="tags" content="equipamentos, dispositivos, ferramentas, software livre" /> + <meta name="date" content="2024-04-11 18:27" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="equipamentos" /> + <meta name="summary" content="A Brigada Digital prepara equipamentos notebooks, torres, smartfones, tablets e roteadores com implementação de sistemas completamente livres" /> + </head> + <body class="features"> + <section class="features" style="display: flex;"> + <div> + <p> + Nossos equipamentos são preparados para trabalhadores, militantes e organizações sociais, construídos com o objetivo de retirar as formas de controle dos sistemas de baixo e alto nível do domínio proprietário. Para tanto, temos uma lista de modelos que fazemos suportar a implementação de sistemas completamente livres de sistemas proprietários. + </p> + <p> + Devido ao avanço do controle capitalista sobre a informática e o tempo gasto para desenvolvimento de supporte, os modelos estão restritos a dispositivos usados. Então preparamos as ferramentas sob encomenda e disponibilidade do mercado de usados. Compramos os dispositivos, fazemos manutenção, reposição, troca de peças, upgrade e instalação dos sistemas. Por isso produzimos sob encomenda e precisamos combinar o tempo para fazer a entrega depende da disponibilidade do mercado. Da nossa parte, fazemos tudo com a máxima urgência. + </p> + <p><b>Além disso, dedicamos 10% do valor do equipamento para apoiar os projetos de software livre implementados nos equipamentos.</b></p> + <p> + Os equipamentos são produzidos tendo em vista o nível de segurança exigido pela posição que o trabalhador, militante ou organização social ocupa no conflito de classes. Nesse sentido, pensamos os <b>equipamentos de direção e vanguarda e equipamentos de base</b>. + </p> + </div> + <div class="indice"> + <h3 style="padding-left: 10%;">Índice</h3> + <ul> + <li><a href="#equipamentos-de-direcao-e-vanguarda">Equipamentos de direção e Vanguarda</a></li> + <li> + <ul> + <li><a href="#direcao-e-vanguarda-notebooks-torres-e-servidores">Notebooks, Torres e Servidores</a></li> + <li> + <ul> + <li><a href="#direcao-e-vanguarda-notebooks">Notebooks</a></li> + <li><a href="#direcao-e-vanguarda-torres">Torres</a></li> + <li><a href="#direcao-e-vanguarda-servidores">Servidores</a></li> + </ul> + </li> + <li><a href="#direcao-e-vanguarda-smartfones-e-tablets">Smartfones e tablets</a></li> + <li> + <ul> + <li><a href="#direcao-e-vanguarda-smartfones">Smartfones</a></li> + <li><a href="#direcao-e-vanguarda-tablets">Tablets</a></li> + </ul> + </li> + </ul> + </li> + <li><a href="#equipamentos-de-base">Equipamentos de Base</a></li> + <li> + <ul> + <li><a href="#base-notebooks-e-torres">Notebooks e Torres</a></li> + <li> + <ul> + <li><a href="#base-notebooks">Notebooks</a></li> + <li><a href="#base-torres">Torres</a></li> + </ul> + </li> + </ul> + </li> + </ul> + </div> + </section> + <section class="features"> + <h3><a name="equipamentos-de-direcao-e-vanguarda">Equipamentos de Direção e Vanguarda</a> <a href="#banner">^</a></h3> + <p> + São equipamentos com as mais avançadas implementações de tecnologias da informação em termos de liberdade do controle proprietário. São destinados a trabalhadores, militantes e organizações sociais que trabalham com informações sensíveis, onde a espionagem pode ocorrer a baixo e alto nível. + </p> + <div> + <h4><a name="direcao-e-vanguarda-notebooks-torres-e-servidores">Notebooks, Torres e Servidores</a> <a href="#banner">^</a></h4> + <p> + Na construção dos notebooks, torres e servidores para a direção e vanguarda da classe trabalhadora, substituímos o Bios proprietário pelo Bios livre GNUBOOT e instalamos o sistema operacional, também livre, Hyperbola Gnu/Linux-libre e/ou Trisquel Gnu/Linux-Libre. O Bios GNUBOOT, remove o Mecanismo de Gerencialmente de Energia de Baixo Nível, no qual opera backdoor da Intel e AMD, garantindo, com isso, a máxima segurança. São destinados a militantes de direção e vanguarda que trabalham com informações sensíveis para a luta de classes. + </p> + <div> + <h5><a name="direcao-e-vanguarda-notebooks">Notebooks</a> <a href="#banner">^</a></h5> + <p> + Removemos o dispositivo wifi de controle proprietário e instalamos outro livre, além disso, podemos instalar no lugar do DVD outro dispositivo de armazenamento, ampliando a configuração de armazenamento. + </p> + <div> + <h6>Thinkpads Séries T400, T500 e X200</h6> + <h6>Especificações básicas</h6> + <table> + <tr> + <td>Modelos</td> + <td>Thinkpads séries T400 e T500</td> + <td>Thinkpads Séries X200</td> + </tr> + <tr> + <td>Processador</td> + <td>Intel Core 2 Duo T8400 a T9600 - Penryn</td> + <td>Intel Core 2 Duo P8000 Series - Penryn</td> + </tr> + <tr> + <td>Gráfico</td> + <td>Intel® GMA 4500MHD</td> + <td>Intel® GMA 4500MHD</td> + </tr> + <tr> + <td>Memória</td> + <td>8G DDR3 (Máx.)</td> + <td>4G DDR3 (Máx.)</td> + </tr> + <tr> + <td>Armazenamento</td> + <td>SSD 480G</td> + <td>SSD 480G</td> + </tr> + <tr> + <td>Especificações Completas</td> + <td><a href="/downloads/specifications/t400-t500-notebooks-specifications.pdf" title="Especificações Thinkpads Série T400/T500">Download</a></td> + <td><a href="/downloads/specifications/x200-notebooks-specifications.pdf" title="Especificações Thinkpads Séries X200">Download</a></td> + </tr> + </table> + </div> + <figure class="image img"> + <img src="/images/equipamentos/thinkpad-t400-frente.jpg" + title="Thinkpad T400 - frente" + alt="Thinkpad T400 - frente" /> + <img src="/images/equipamentos/thinkpad-t400-tampa.jpg" + title="Thinkpad T400 - tampa" + alt="Thinkpad T400 - tampa" /> + <figcaption>Thinkpads T400</figcaption> + </figure> + </div> + <div> + <h5><a name="direcao-e-vanguarda-torres">Torres</a> <a href="#banner">^</a></h5> + <h6>Placa Central Gigabyte GA-G41M-ES2L</h6> + <div> + <h6>Especificações básicas</h6> + <table> + <tr> + <td>Modelo da Placa Central</td> + <td>Gigabyte GA-G41M-ES2L</td> + </tr> + <tr> + <td>Processador</td> + <td>Intel Core 2 Duo/2 Quad</td> + </tr> + <tr> + <td>Gráfico</td> + <td>Intel® GMA 4500MHD</td> + </tr> + <tr> + <td>Memória</td> + <td>8G DDR3 (Máx.)</td> + </tr> + <tr> + <td>Armazenamento</td> + <td>SSD 480G</td> + </tr> + <tr> + <td>Espeficações completas</td> + <td><a href="/downloads/specifications/t400-t500-notebooks-specifications.pdf" title="Especificações Thinkpads Série T400/T500">Download</a></td> + </tr> + </table> + </div> + </div> + <div> + <h5><a name="direcao-e-vanguarda-servidores">Servidores</a> <a href="#banner">^</a></h5> + <div> + <h6>Placa principal ASUS KGPE-D16</h6> + </div> + <div> + <h6>Especificações básicas</h6> + <table> + <tr> + <td>Modelo da Placa Central</td> + <td>ASUS KGPE-D16 mainboard</td> + </tr> + <tr> + <td>Processador</td> + <td>4/8/12/16 Core AMD Opteron 6200/6300 Series</td> + </tr> + <tr> + <td>Gráfico</td> + <td>Aspeed AST2050 8MB</td> + </tr> + <tr> + <td>Memória</td> + <td>64G UDIMM e 256G DDR3 RDIMM (Máx)</td> + </tr> + <tr> + <td>Armazenamento</td> + <td>SSD 128G + 4TB HDD</td> + </tr> + <tr> + <td>Espeficações completas</td> + <td><a href="/downloads/specifications/t400-t500-notebooks-specifications.pdf" title="Especificações Thinkpads Série T400/T500">Download</a></td> + </tr> + </table> + </div> + </div> + </div> + <div> + <h4><a name="direcao-e-vanguarda-smartfones-e-tablets">Smartfones e Tablets</a> <a href="#banner">^</a></h4> + <p> + Implementamos o sistema operacional Replicant, equipado com adaptador wifi externo. O sistema não suporta aceleração 3D, câmera frontal e GPS. Além disso, eventualmente, apresenta instabilidade na execução de aplicações, exigindo do utilizador atenção na gestão de recursos. Apesar disso, esse é melhor dispositivo smartfone em termos recursos de hardware e suporte a tecnologias livres. Toda a ligação com o Google foi removido e o repositório F-Droid foi incluído para o gerenciamento de aplicativos. + </p> + <div> + <h5><a name="direcao-e-vanguarda-smartfones">Smartfones</a> <a href="#banner">^</a></h5> + <div> + <h6>Samsung Galaxy S3 GT I9300</h6> + </div> + <div> + <h6>Especificações básicas</h6> + <table> + <tr> + <td>Modelo</td> + <td>Samsung Galaxy S3 GT I9300</td> + </tr> + <tr> + <td>Processador</td> + <td>Quad-Core 1.4GHz</td> + </tr> + <tr> + <td>Memória</td> + <td>1G</td> + </tr> + <tr> + <td>Amazenamento</td> + <td>16G</td> + </tr> + <tr> + <td>Tela</td> + <td>4.8"</td> + </tr> + <tr> + <td>Internet</td> + <td>3G</td> + </tr> + <tr> + <td>Wifi</td> + <td>Adaptador USB</td> + </tr> + <tr> + <td>Bateria</td> + <td>2100 mAh</td> + </tr> + <tr> + <td>Espeficações completas</td> + <td><a href="/downloads/specifications/t400-t500-notebooks-specifications.pdf" title="Especificações Thinkpads Série T400/T500">Download</a></td> + </tr> + </table> + </div> + </div> + </div> + <div> + <h4><a name="direcao-e-vanguarda-tablets">Tablets</a> <a href="#banner">^</a></h4> + <div> + <h5>Galaxy Tab 2 7.0 e Galaxy Tab 2 10.1</h5> + </div> + </div> + <div> + <h4><a name="direcao-e-vanguarda-roteadores">Roteadores</a> <a href="#banner">^</a></h4> + <div> + <h5>TP-Link TL-DWR4300</h5> + </div> + </div> + <div> + <h4><a name="direcao-e-vanguarda-pendrivers">Pendrives</a> <a href="#banner">^</a></h4> + <div> + <h5>Pendrive 32G criptografado com Hyperbola ou Trisquel Gnu/Linux-libre</h5> + </div> + </div> + + </section> + <h3><a name="equipamentos-de-base">Equipamentos de Base</a> <a href="#banner">^</a></h3> + <p> + Equipamentos com o BIOS (Sistema Básico de Entreda e Saída) open source Libreboot, no qual o Mecanismo de Gerenciamento de Energia de Baixo Nível, no qual opera o backdoor da Intel e AMD, foi neutralizado. Como o Mecanismo de Gerenciamento, mesmo neutralizado, ainda sim é introduzido no BIOS, uma incerteza permanece sobre o sistema. + </p> + <p> + Ou mesmo com BIOS proprietária, de implementação de fábrica, e o sistema operacional livre sobre ele, como é o caso LibreCMC e Replicant. + </p> + <div> + <h4><a name="base-notebooks-e-torres">Notebooks e Torres</a> <a href="#banner">^</a></h4> + <div> + <h5><a name="base-notebooks">Notebooks</a> <a href="#banner">^</a></h5> + <div> + <h6>Thinkpads X220, T420, X230, T430 e T440p</h6> + </div> + </div> + </div> + <div> + <h5><a name="base-torres">Torres</a> <a href="#banner">^</a></h5> + <div> + <h6>HP Elite 8200 SFF/MT and 6200 Pro Business</h6> + </div> + </div> + </div> +</section> +</body> +</html> diff --git a/content/pages/sistemas.html b/content/pages/sistemas.html new file mode 100644 index 0000000..cf50e9b --- /dev/null +++ b/content/pages/sistemas.html @@ -0,0 +1,394 @@ +<html> + <head> + <title>Sistemas</title> + <meta name="tags" content="sistemas, ferramentas, dispositivos, software livre" /> + <meta name="date" content="2024-04-09 02:36" /> + <meta name="modified" content="2024-05-21 13:57" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="sistemas" /> + <meta name="summary" content="Sistemas livres implementados pela Brigada Digital" /> + </head> + <body class="features"> + <section class="indice"> + <h3>Índice</h3> + <ul> + <li><a href="#bios" title="Bios">Bios</a></li> + <li style="list-style: none;"> + <ul style="list-style: circle;"> + <li><a href="#bios-gnuboot" title="Bios Gnuboot">Gnuboot</a></li> + <li><a href="#bios-canoeboot" title="Bios Canoeboot">Canoeboot</a></li> + </ul> + </li> + <li><a href="#kernel-linux-libre" title="Kernel Linux-Libre">Kernel Linux-libre</a></li> + <li><a href="#sistema-operacional-gnu" title="Sistema Operacional Gnu">Sistema Operacional GNU</a></li> + <li><a href="#distribuicoes-gnu-linux-libre" title="Distribuições Gnu/Linux-libre">Distribuições GNU/Linux-libre</a></li> + <li style="list-style: none;"> + <ul style="list-style: circle;"> + <li><a href="#distribuicao-gnu-linux-libre-hyperbola">Hyperbola</a></li> + <li><a href="#distribuicao-gnu-linux-libre-trisquel">Trisquel</a></li> + <li><a href="#distribuicao-gnu-linux-libre-librecmc">LibreCMC</a></li> + </ul> + </li> + <li><a href="#distribuicoes-nao-gnu-livres" title="Distribuições Não-GNU Livres">Distribuições Não-GNU Livres</a></li> + <li style="list-style: none;"> + <ul style="list-style: circle;"> + <li><a href="#distribuicao-nao-gnu-livre-replicant" title="Distribuição não-GNU Replicant">Replicant</a></li> + </ul> + </li> + <li><a href="#servicos" title="Serviços">Serviços</a></li> + <li style="list-style: none;"> + <ul style="list-style: circle;"> + <li><a href="#servicos-agenda" title="Serviços de agenda">Agenda</a></li> + <li><a href="#servicos-anonimato" title="Serviços de anonimato">Anonimato</a></li> + <li><a href="#servicos-arquivos" title="Serviços arquivos">Arquivos</a></li> + <li><a href="#servicos-chat" title="Serviços de chat">Chat</a></li> + <li><a href="#servicos-conferencia" title="Serviços de conferência">Conferência</a></li> + <li><a href="#servicos-email" title="Serviços de e-mail">E-mail</a></li> + <li><a href="#servicos-multimidia" title="Serviços de Multimídia">Multimídia</a></li> + <li><a href="#servicos-rede-social" title="Serviços de rede social">Rede Social</a></li> + <li><a href="#servicos-sites" title="Serviços de sites">Sites</a></li> + </ul> + </li> + </ul> + </section> + <section class="features"> + <p> + Implementamos sistemas livres do controle proprietário, desde o sistema básico, operacional e serviços para que a classe trabalhadora tenha autonomia sobre sua informática. A seguir descrição dos sistemas implementados nos <a href="/pages/equipamentos.html" title="Equipamentos construídos pela Brigada Digital">equipamentos contruídos pela Brigada Digital</a>. + </p> + </section> + <section class="features"> + <div> + <h3><a name="bios"><a href="#bios" title="BIOS - Sistema Básico de Entrada e Saída">Bios</a></a> <a href="#banner">^</a></h3> + <p> + O BIOS é o sistema básico de entrada e saída do computador, gravado em memória não volátil (ROM), usado para realizar a inicialização do hardware e para fornecer serviços de tempo de execução para sistemas operacionais e programas. Os BIOS proprietários incluem um sistema de gerenciamento do processador que funciona com baixa carga de energia, composto por micro sistema operacional, controlador de rede ethernet e máquina virtual java, com acesso completo a todos os dispositivos do computador, mesmo desligado. + </p> + <p> + Esse sistema de gerenciamento do processador é considerado um backdoor de acesso total que pode ser utilizado pelos proprietários das fábricas de processadores e por pessoas que sabem explorar suas falhas para exercer controle remoto de baixo nível, dificilmente detectável. + </p> + <p> + Recentemente foram publicados estudos sobre suas vulnerabilidades, para saber mais, leia o <a href="https://en.wikipedia.org/wiki/Intel_Active_Management_Technology#Known_vulnerabilities_and_exploits" target="_blank" title="Artigo sobre o Sistema de Gerenciamento dos processores Intel (Intel ME)">seguinte artigo sobre as vulnerabilidades encontradas no sistema de gerenciamento da Intel</a> e o <a href="https://en.wikipedia.org/wiki/AMD_PSP#Reported_vulnerabilities" target="_blank" title="Artigo sobre as vulnerabilidade Sistema de gerenciamento dos processadores da AMD (PSP)">artigo sobre as vulnerabilidade do gerenciamento da AMD</a>. Para descrição crítica do gerenciamento da Intel (Intel ME), leia a <a href="https://canoeboot.org/faq.html#intelme" target="_blank" title="Seção sobre o Intel ME do site Canoeboot">seção Intel ME do FAQ do Projeto Canoeboot</a>, e para o gerenciamento da AMD, leia a seção <a href="https://canoeboot.org/faq.html#amd-platform-security-processor-psp" target="_blank" title="Seção sobre o Amd PSP do site Canoeboot">AMD PSP</a>. Uma reflexão aprofundada das implicações do uso de software de controle proprietário sobre as vulnerabilidades desse sistema de gerenciamento de processadores, leia o artigo do hacker brasileiro Alexandre Oliva, presidente da Fundação de Software Livre da América Latina (FSFLA), <a href="https://www.fsfla.org/ikiwiki/blogs/lxo/pub/who-is-afraid-of-spectre-and-meltdown.en.html" target="_blank" title="Quem tem medo do Spectre & Meltdown?"><i>Quem tem medo do Spectre & Meltdown?</i></a>. + </p> + <p> + Para remover esse controle proprietário, a Brigada Digital implementa os BIOS livres <a href="#bios-gnuboot" title="Bios livre Gnuboot">Gnuboot</a> e <a href="#bios-canoeboot" title="Bios livre Canoeboot">Canoeboot</a>. O processo envolve construir o BIOS em ambiente composto completamente por software livre e injetar através do computador de desenvolvimento Beagle Bone Black (BBB) - placa de hardware aberto também rodando somente com Software Livre - conectado à memória rom (chip BIOS) da placa mãe com pinça (ou jacaré). + </p> + <div class="image" style="text-align: center;"> + <figure class="image img"> + <img + src="/images/bios/instalacao/gnuboot-instalacao-t400-1_480x.jpg" + title="Implementação de bios livre Gnuboot e Canoeboot" + alt="Implementação de bios livre Gnuboot e Canoeboot"/> + <figcaption>Implementação de bios livre Gnuboot e Canoeboot</figcaption> + </figure> + </div> + <p> + Entenda a diferença entre Canoeboot e Gnuboot abaixo. + </p> + </div> + <div> + <h4><a name="bios-gnuboot"><a href="#bios-gnuboot" title="BIOS Gnuboot">Gnuboot</a></a> <a href="#banner">^</a></h4> + <p> + O <a href="https://savannah.gnu.org/projects/gnuboot/" target="_blank" title="Site do projeto Gnuboot">Gnuboot</a> é um BIOS livre, portanto sem o <a href="#bios" title="BIOS">gerencimento proprietário dos processadores Intel e AMD</a>. Além disso, nossa construção do Gnuboot insere o sistema de inicialização <a href="https://www.gnu.org/software/grub/" target="_blank" title="site GNU GRUB">GNU GRUB</a> e/ou <a href="https://seabios.org/" target="_blank" title="">Seabios</a> na memória ROM, tornando possível ter login do GRUB gravado na ROM e criptografia de todo o disco, inclusive da partição de boot. O que torna o sistema muito seguro em relação a controle proprietário. O Gnuboot também destrava os dispositivos, tornando possível substituir o adaptador wifi definido pelo fabricante por wifi de firmware livre. + </p> + <div style="text-align: center;"> + <a href="https://savannah.gnu.org/projects/gnuboot/" target="_blank"><img src="/images/sistemas/gnuboot.png" title="Site Gnuboot" alt="Site Gnuboot" /></a> + </div> + </div> + <div> + <h4><a name="bios-canoeboot"><a href="#bios-canoeboot" title="BIOS Canoeboot">Canoeboot</a></a> <a href="#banner">^</a></h4> + <p> + O <a href="https://canoeboot.org/" target="_blank" title="Site do projeto Canoeboot">Canoeboot</a> é um <a href="https://directory.fsf.org/wiki/Canoeboot" target="_blank" title="">BIOS livre definido em artigo na wiki do diretório da FSF</a> baseado em Libreboot e Coreboot que suporta processadores mais recentes que Gnuboot mantendo seu gerenciamento proprietário, mas fazendo sua neutralização/desativação após a inicialização do processador com o programa <i>me_cleaner</i>. Canoeboot suporta alguns modelos de computadores com processadores Intel i3/i5/i7 até a 4ª geração. Nos processadores mais antigos como, por exemplo, Intel Penryn, o Gerenciamento do processador (Intel ME) é removido, semelhante ao Gnuboot. Nossa construção do Canoeboot insere o sistema de inicialização <a href="https://www.gnu.org/software/grub/" target="_blank" title="site GNU GRUB">GNU GRUB</a> e/ou <a href="https://seabios.org/" target="_blank" title="">Seabios</a> na memória ROM, tornando possível ter login do GRUB gravado na ROM e criptografia de todo o disco, inclusive da partição de boot. O que torna o sistema muito seguro em relação a controle proprietário. O Canoeboot também destrava os dispositivos, tornando possível substituir o adaptador Wi-Fi do fabricante por Wi-fi de firmware livre. + </p> + <div style="text-align: center;"> + <a href="https://canoeboot.org" target="_blank"> + <img class="image img" + src="/images/canoeboot/canoeboot_124x.png" + title="Site Canoeboot" + alt="Site Canoeboot" /> + </a> + </div> + </div> + </section> + <section class="features"> + <h3><a name="kernel-linux-libre"><a href="#kernel-linux-libre" title="Kernel Linux-libre">Kernel Linux-libre</a></a> <a href="#banner">^</a></h3> + <p> + O Linux, kernel desenvolvido e distribuído por Linus Torvalds, contém software sob o controle proprietário (não livre) disfarçado como código-fonte e, além disso, induz a instalação de outros softwares proprietários que não contém. O <a href="https://www.fsfla.org/ikiwiki/selibre/linux-libre/freesh.en.html" target="_blank" title="Site do projeto GNU Linux-libre">GNU Linux-libre</a> é um projeto para manter e publicar distribuições de Linux 100% livres. O projeto remove do kernel Linux software que é incluído sem código fonte, com código fonte ofuscado ou obscurecido, sob licenças de software não-livre, que não permitem que você altere o software para que ele faça o que você deseja, e que induz ou exige que você instale peças adicionais de software não-livre. + </p> + <p> + O Linux-libre é desenvolvido pelo hacker brasileiro <a href="https://www.lx.oliva.nom.br/" target="_blank" title="Site do hacker Alexandre Oliva">Alexandre Oliva</a>, presidente da <a href="https://www.fsfla.org/ikiwiki/" target="_blank" title="Site FSFLA">Fundação de Software Livre da América Latina (FSFLA). + </p> + <div style="text-align: center;"> + <a href="https://www.fsfla.org/ikiwiki/selibre/linux-libre/" target="_blank"><img src="/images/sistemas/linux-libre.png" title="Site Gnu/Linux-libre" alt="Site Gnu/linux-libre" /></a> + </div> + </section> + <section class="features"> + <h3><a name="sistema-operacional-gnu"><a href="#sistema-operacional-gnu" title="Sistema Operacional GNU">Sistema Operacional GNU</a></a> <a href="#banner">^</a></h3> + <p> + GNU é um sistema operacional livre desenvolvido pelo <a href="https://www.gnu.org/" target="_blank" title="Site do Projeto GNU">Projeto GNU</a>, maior comunidade hacker de software livre e representente do Movimento de Software Livre. O sistema operacional GNU consiste em pacotes GNU (programas específicos lançados pelo projeto GNU) bem como software livre lançado por terceiros. O desenvolvimento do GNU tornou possível o uso de computador sem software proprietário. + </p> + <div style="text-align: center;"> + <p><a href="https://gnu.org" target="_blank"><img src="/images/sistemas/gnu-slick.png" title="Site Gnu" alt="Site Gnu" /></a></p> + </div> + </section> + <section class="features"> + <h3><a name="distribuicoes-gnu-linux-libre"><a href="#distribuicoes-gnu-linux-libre" title="Distribuições GNU/Linux-libre">Distribuições GNU/Linux-libre</a></a> <a href="#banner">^</a></h3> + <p> + Distribuições certificadas pela Fundação de Software Livre por conter apenas software livre em seus repositórios de programas. + </p> + <div> + <h4><a name="distribuicao-gnu-linux-libre-hyperbola"><a href="#distribuicao-gnu-linux-libre-hyperbola" title="Hyperbola GNU/Linux-libre">Hyperbola GNU/Linux-libre</a></a> <a href="#banner">^</a></h4> + <p> + <a href="https://www.hyperbola.info/" target="_blank" title="Site do Hyperbola">Hyperbola</a> é um projeto de software e cultura livre que providencia um sistema operacional com a experiência mais avançada em termos de distribuição de sistemas livres, proporcionando um sistema operacional muito seguro. Atualmente está desenvolvendo um novo sistema operacional descendente do BSD nomeado de HyperbolaBSD. Providencia um suporte de longo tempo e usa o gerenciador de pacotes do Arch Gnu/Linux, sitema de inicialiação Openrc, desenvolvido pelo Gentoo/Linux, seguindo o manifesto de liberdade do sistema de inicialização (nosystemd) e patches do Debian. Os pacotes são otimizados para a arquitetura i686 e x86_64 CPUs. + </p> + <div style="text-align: center;"> + <a href="https://hyperbola.info" target="_blank"><img src="/images/sistemas/hyperbola.png" title="Site Hyperbola GNU/Linux-libre" alt="Site Hyperbola Gnu/linux-libre" /></a> + </div> + </div> + <div> + <h4><a name="distribuicao-gnu-linux-libre-trisquel"><a href="#distribuicao-gnu-linux-libre-trisquel" title="Trisquel GNU/Linux-libre">Trisquel GNU/Linux-libre</a></a> <a href="#banner">^</a></h4> + <p> + Distribuição do Sistema operacional Gnu/Linux-libre, baseado na versão LTS do Ubuntu/Linux, mas que distribui exclusivamente software livre, fazendo uso do kernel Linux-Libre. <a href="https://trisquel.info/" target="_blank" title="Site do Trisquel GNU/Linux-libre">Trisquel</a> possui um riquíssimo repositório de softwares e é indicada para usuários iniciantes e pequenas organizações. Para desktop mantém uma versão do MATE muito bem polida, com software gráfico para instalações e atualizações. + </p> + <div style="text-align: center;"> + <a href="https://trisquel.info" target="_blank"><img src="/images/sistemas/trisquel.png" title="Site Trisquel GNU/Linux-libre" alt="Site Trisquel Gnu/linux-libre" /></a> + </div> + </div> + <div> + <h4><a name="distribuicao-gnu-linux-libre-librecmc"><a href="#distribuicao-gnu-linux-libre-librecmc" title="LibreCMC GNU/Linux-libre">LibreCMC GNU/Linux-libre</a></a> <a href="#banner">^</a></h4> + <p> + Distribuição do sistema operacional Gnu/Linux completamente livre para embarcados de propósito geral, utilizada especialmente em roteadores e computadores de placa única. Nós construímos o <a href="https://librecmc.org/" target="_blank" title="Site do projeto LibreCMC">LibreCMC</a> com a interface de gerenciamento Luci, mas também pode ser gerenciado de maneira avançada através de conexão SSH. + </p> + <p> + Para conhecer melhor, leia nosso <a href="/librecmc.html" title="Guia de introdução ao LibreCMC">guia de introdução ao LibreCMC</a>. + </p> + <div style="text-align: center;"> + <a href="https://librecmc.org" target="_blank"><img src="/images/sistemas/librecmc.png" title="Site LibreCMC GNU/Linux-libre" alt="Site LibreCMC Gnu/linux-libre" /></a> + </div> + </div> + </section> + <section class="features"> + <h3><a name="distribuicoes-nao-gnu-livres"><a href="#distribuicoes-nao-gnu-livres" title="Distribuições não-GNU livres">Distribuições Não-GNU Livres</a></a> <a href="#banner">^</a></h3> + <div> + <h4><a name="distribuicao-nao-gnu-livre-replicant"><a href="#distribuicao-nao-gnu-livre-replicant" title="Replicant Android/Linux">Replicant Android/Linux</a></a> <a href="#banner">^</a></h4> + <p> + <a href="https://replicant.us/" target="_blank" title="Site do Replicant">Replicant</a> é a única distribuição do sistema operacional Android/Linux completamente livre e <a href="https://www.gnu.org/distros/free-non-gnu-distros.html" target="_blank" title="Distribuições Não-GNU Livres">certificada pelo projeto GNU</a> com ênfase na privacidade/segurança, destinada a smartfones e tablets. + </p> + <p> + Para conhecer melhor, leia nosso <a href="/replicant.html" title="Guia de introdução ao Replicant">guia de introdução ao Replicant</a>. + </p> + <div style="text-align: center;"> + <a href="https://replicant.us" target="_blank"><img src="/images/sistemas/replicant.png" title="Site Replicant" alt="Site Repliciant" /></a> + </div> + </div> + </section> + <section class="features"> + <div> + <h3><a name="servicos"><a href="#servicos" title="Serviços">Serviços</a></a> <a href="#banner">^</a></h3> + <p> + São sistemas livres que operam em rede de computadores de arquitetura centralizada, descentralizada (ou federada) e distribuída. São substitutos livres dos serviços proprietários de grandes corporações capitalistas (Facebook, Instagram, Twitter, Youtube, Drive, Dropbox, etc.). Abaixo ilustrações comparativas da arquitetura de sistemas de redes. + </p> + <p> + Os serviços de arquitetura centralizada possuem um servidor central de armazenamento e gerenciamento de dados e processos. São muito utilizados pelos serviços proprietários, mas também existem muitos serviços livres com essa arquitetura. + </p> + <p> + Os serviços descentralizados e federados são constituídos por um conjunto de servidores que se comunicam criando uma ponte entre todo o conjunto de usuários. O <a href="https://pt.wikipedia.org/wiki/Fediverse" target="_blank" title="Saiba mais sobre o Fediverso">Fediverso</a> é um exemplo de servidores federados usados para a publicação web (por exemplo, redes sociais, microblogs, sítio e etc) e hospedagem de arquivos. + </p> + <p> + Os serviços distribuídos possuem arquitetura de redes de computadores <a href="https://pt.wikipedia.org/wiki/P2p" target="_blank" title="Saiba mais sobre a arquitetura P2P">peer-to-peer (P2P)</a> - par a par ou ponto a ponto -, onde cada um dos pontos ou nós da rede funciona tanto como cliente quanto como servidor, permitindo compartilhamentos de serviços e dados sem a necessidade de um servidor central. + </p> + <p> + Nas arquiteturas centralizadas e descentralizadas as pessoas se comunicam através de um ou mais servidores (federado). O usuário envia a mensagem para o servidor que, por sua vez, encaminha para o destinatário, permitindo a comunicação dessincronizada - isto é, quando as pessoas não estão conectadas ao mesmo tempo. O servidor foi importante para o tempo em que as pessoas não podiam ficar conectadas. Contudo, o intermediário representa um risco de violação de dados e de neutralidade, pois informações descriptografadas e metadados (localização, emissor, destinatário, horário de conexão e etc.) podem ser lidos e alguns conteúdos impulsionados pelos administradores. Além disso, o servidor pode cair, o seu dono pode fechar as portas (para um usuário ou para todos), fazendo perdas de informações, contatos e etc. + </p> + <p> + Esses problemas não ocorrem na arquitetura distribuída, pois pessoas se comunicam diretamente, sem intermediários. Os dados são armazenados apenas nos pontos (dispositivos dos usuários), não sendo possível que ocorra violação em servidor, como ocorre com frequência. Além disso, a arquitetura distribuída é resistente à suspensão de serviços por ataques cybernéticos, suspensão de contas ou mandados judiciais. Sendo exigido, apenas, cópias das chaves e que emissor e destinatário estejam conectados ao mesmo tempo - atualmente não é mais problema, visto que as pessoas mantém seus equipamentos conectados. Ademais, o custo (processamento e tráfego) é distribuído entre as pessoas, sendo, inclusive, inversamente proporcional ao número de usuários. A arquitetura P2P, portanto, é a mais avançada em termos de segurança da informação. + </p> + <div style="text-align: center; padding-left: 1%;"> + <figure> + <img src="/images/sistemas/services-centralizeds.png" title="Redes centralizadas" alt="Redes centralizadas" /> + <img src="/images/sistemas/services-descentralizeds.png" title="Redes descentralizadas" alt="Redes descentralizadas" /> + <img src="/images/sistemas/services-distributeds.png" title="Redes distribuídas" alt="Redes distribuídas" /> + <figcaption>Comparativo entre redes centralizadas, descentralizadas e distribuídas</figcaption> + </figure> + </div> + </div> + <div> + <h4><a name="servicos-agenda"><a href="#servicos-agenda" title="Serviços de Agenda">Agenda</a></a> <a href="#banner" title="Vai para o topo">^</a></h4> + <div> + <h5><a name="servico-agenda-caldav-carddav"><a href="#servico-agenda-caldav-carddav" title="Serviço Agenda Caldav e Carddav">Caldav e Carddav</a></a> <a href="#banner">^</a></h5> + <p> + <a href="https://en.wikipedia.org/wiki/CalDAV" target="_blank" title="Saiba mais sobre Caldav">Caldav</a> e <a href="https://en.wikipedia.org/wiki/CardDAV" target="_blank" title="Saiba mais sobre Caldav">carddav</a> são protocolos de agenda. O primeiro providencia calendário e compartilhamento de eventos, enquanto o último providencia livro de contatos. + </p> + <p> + A Brigada implementa o serviço centralizado <a href="https://radicale.org/v3.html" target="_blank" title="Saiba mais sobre o Radicale">Radicale</a> de calendário, tarefas e contatos. + </p> + </div> + </div> + <div> + <h4><a name="servicos-anonimato"><a href="#servicos-anonimato" title="Serviços de anonimato">Anonimato</a></a> <a href="#banner">^</a></h4> + <div> + <h5><a name="servico-anonimato-tor"><a href="#servico-anonimato-tor" title="Serviço de anonimato Tor">Tor</a></a> <a href="#banner">^</a></h5> + <p> + <a href="https://www.torproject.org/" target="_blank" title="Saiba mais a rede de anonimato Tor">Tor</a> é um serviços <a href="#servicos" title="Sobre os tipos de arquitetura serviços">descentralizado</a> que proporciona comunicação anônima e segura ao navegar na internet e em atividades online. O Tor criptografa os dados e direciona o tráfego da internet por meio de uma rede sobreposta livre de alcance mundial para ocultar a localização e utilização do usuário de qualquer pessoa que realize vigilância de rede ou análise de tráfego. O uso do Tor dificulta o rastreamento da atividade da Internet para o usuário: isso inclui "visitas a sites, postagens online, mensagens instantâneas e outras formas de comunicação". + </p> + <p> + A rede possui suporte a todo o tipo de serviço, garantindo a segurança e anonimato para comunicação mais sensíveis. É possível manter um site serviço em núvem, mensageria e etc, abrigada pela rede Tor, garantindo segurança para o miltantes que acessa o serviço. + </p> + <figure style="text-align: center;"> + <img src="/images/sistemas/services-anonimized.png" title="Serviço descentralizdo de anonimato Tor" alt="Serviço de anonimato Tor" /> + <figcaption>Funcionamento do serviço de anonimato Tor</figcaption> + </figure> + </div> + </div> + <div> + <h4><a name="servicos-arquivos"><a href="#servicos-arquivos" title="Serviços de gerenciamento de arquivos">Arquivos</a></a> <a href="#banner">^</a></h4> + <div> + <h5><a name="servico-arquivos-nextcloud"><a href="#servico-arquivos-nextcloud" title="Serviço descentralizado de gerenciamento de arquivos">Nextcloud</a></a> <a href="#banner">^</a></h5> + <p> + <a href="https://nextcloud.com/" target="_blank" title="Site do projeto Nextcloud">Nextcloud</a> é um serviço para armazenamento e criação de arquivos em nuvem. As funções podem ser extendidas para providenciar autenticação segura e criação e edição de arquivos. Substitui Dropbox, Google Drive e Office 365 quando extendido suas funções. + </p> + <figure> + <a href="https://nextcloud.com/" target="_blank" title="Site do projeto Nextcloud"><img src="/images/sistemas/nextcloud.png" alt="Logo do Projeto Nextcloud" /></a> + </figure> + </div> + <div> + <h5><a href="#servico-distribuido-arquivos-bittorrent" title="Serviço distribuído de compartilhamento de arquivos BitTorrent">BitTorrent</a> <a href="#banner" title="Vai para o topo">^</a></h5> + <p> + <a href="https://pt.wikipedia.org/wiki/Bittorrent" target="_blank" title="Saiba mais sobre o BitTorrent">BitTorrent</a> é um sistema de compartilhamento e download de arquivos entre usuários através do protocolo de rede sem que o arquivo precise estar em um servidor. Nesse protocolo os usuários partilham o que descarregam. Em síntese, os usuários que fazem o download de um arquivo, tornam-se também fornecedores deste arquivo; quando alguém for baixá-lo, todos os computadores que já o possuem através do torrent e que estiverem online no momento vão atuar como "semeadores", cada um fornecendo uma parte do arquivo, portanto quanto mais usuários fizerem o download, mais rápido será feito o compartilhamento, pois a parte enviada do arquivo por cada um será menor. + </p> + </div> + <div> + <h5><a name="servico-arquivos-webdav"><a href="#servico-arquivos-webdav" title="Serviço de gerenciamento de arquivos webdav">Webdav</a></a> <a href="#banner">^</a></h5> + <p> + De arquitetura centralizada, <a href="https://pt.wikipedia.org/wiki/WebDAV" target="_blank" title="Para saber mais sobre o Webdav">webdav</a> é uma extensão do protocolo HTTP utilizado na criação e distribuição de conteúdo com recurso de bloqueio para que não haja edições simultâneas. Com grande diversidade de aplicações, desde aplicações de armazenamento de arquivo, tarefas, notas e diário. + </p> + </div> + </div> + <div> + <h4><a name="servicos-chat"><a href="#servicos-chat" title="Serviços de mensageria">Chat</a></a> <a href="#banner" title="Vai para o topo">^</a></h4> + <div> + <h5><a name="servico-chat-tox"><a href="#servico-chat-tox" title="Serviço distribuído de chat Tox">Tox</a></a> <a href="#banner">^</a></h5> + <p> + <a href="https://tox.chat/" target="_blank" title="Saiba mais sobre o Tox">Tox</a> é um serviço distribuído de mensageria de texto, voz, vídeo e arquivos encriptados usando o protocolo Tox de arquitetura ponto-a-ponto (P2P). + </p> + </div> + <div> + <h5><a name="servico-chat-jami"><a href="#servico-chat-jami" title="Serviço distribuído de chat Jami">Jami</a></a> <a href="#banner">^</a></h5> + <p> + <a href="https://jami.net/" target="_blank" title="Saiba mais sobre o Jami">Jami</a> é um serviço de arquitetura distribuída de mensageria de texto, voz, vídeo e arquivos encriptados usando o protocolo Ring de arquitetura ponto-a-ponto (P2P). + </p> + </div> + <div> + <h5><a name="servico-chat-xmpp"><a href="#servico-chat-xmpp" title="Serviço de chat descentralizado de protocolo XMPP">XMPP</a></a> <a href="#banner">^</a></h5> + <p> + <a href="https://xmpp.org/" target="_blank" title="Saiba mais sobre o XMPP">XMPP</a> é um protocolo muito utlizado e bem desenvolvido de chat de arquitetura descentralizada para mensagens de texto, voz, vídeo e arquivos encriptados. Possui grande diversidade de clientes e servidores para multiplas plataforams. + </p> + <p> + Nós implementamos os serviços <a href="https://www.ejabberd.im/" target="_blank" title="Saiba mais sobre o Ejabberd">Ejabberd</a> e <a href="https://prosody.im/" target="_blank" title="Saiba mais sobre o Ejabberd">Prosody</a> de XMPP. + </p> + <figure> + <a href="https://xmpp.org/" target="_blank" title="site do projeto XMPP"><img src="/images/sistemas/xmpp.png" alt="Logo do XMPP" /></a> + </figure> + </div> + </div> + <div> + <h4><a name="servicos-conferencia"><a href="#servicos-conferencia" title="Serviços de conferência de vídeo">Conferência</a></a> <a href="#banner" title="Vai para o topo">^</a></h4> + <div> + <h5><a name="servico-conferencia-jitsi"><a href="#servico-conferencia-jitsi" title="Serviço de conferência Jitsi">Jitsi</a></a> <a href="#banner">^</a></h5> + <p> + <a href="https://meet.jit.si/" target="_blank" title="Saiba mais sobre Jitsi">Jitsi</a> é um serviço de conferência com aplicações clientes de multiplas plataformas. + </p> + </div> + </div> + <div> + <h4><a name="servicos-email" title="Serviços de e-mail"><a href="#servicos-email">E-mail</a></a> <a href="#banner">^</a></h4> + <p> + Implementamos serviços de e-mail com todos os protocolos de segurança configurados. Os serviços de e-mail possuem arquitetura descentralizada. + </p> + <div> + <h5><a name="servico-email-envio-smtp"><a href="#servico-email-envio-smtp">Envio SMTP</a></a> <a href="#banner">^</a></h5> + <p> + Implementamos o serviço de envio (Protocolo SMTP) de e-mail <a href="http://www.postfix.org/" target="_blank" title="Saiba mais sobre Postfix">Postfix</a> (SMTP). + </p> + <figure> + <a href="http://www.postfix.org/" target="_blank" title="Saiba mais sobre Postfix"><img src="/images/sistemas/postfix.gif" alt="Site do Projeto Postfix" /></a> + </figure> + </div> + <div> + <h5><a name="servico-email-recebimento-pop3-imap"><a href="#servico-email-recebimento-pop3-imap" title="Serviços de recebimento de e-mail POP3 e IMAP">Recebimento POP3 e IMAP</a></a> <a href="#banner">^</a></h5> + <p> + Implementamos o serviço de recebimento (Protocolos POP3 e IMAP) de e-mail <a href="https://www.dovecot.org/" target="_blank" title="Saiba mais sobre o Dovecot">Dovecot</a> (SMTP). + </p> + </div> + </div> + <div> + <div> + <h4><a name="servicos-multimidia"><a href="#servicos-multimidia" title="Serviços de multimídia">Multimídia</a></a> <a href="#banner">^</a></h4> + </div> + <div> + <h5><a name="servico-multimidia-peertube"><a href="#servico-multimidia-peertube" title="Serviço descentralizado e distribuído vídeos Peertube">Peertube</a></a> <a href="#banner" title="Vai para o Topo">^</a></h5> + <p> + <a href="https://joinpeertube.org/" title="Saiba mais sobre o Peertube">Peertube</a> é uma plataforma de vídeo alternativa das proprietárias capitalistas Youtube, Vimeo, etc com rede social. Possui arquitetura descentralizada e distribuída, compartilhando a carga de trabalhado do servidor entre os clientes. + </p> + <figure> + <a href="https://joinpeertube.org/" title="Site do projeto Peertube"><img src="/images/sistemas/peertube.png" alt="Logo Peertube" /></a> + </figure> + </div> + <div> + <h5><a name="servico-multimidia-peertube"><a href="#servico-multimidia-mediagoblin" title="Serviço descentralizado de multimídia Mediagoblin">Mediagoblin</a></a> <a href="#banner" title="Vai para o Topo">^</a></h5> + <p> + <a href="https://mediagoblin.org" title="Saiba mais sobre o Mediagoblin">Mediagoblin</a> é uma plataforma multimídia (fotos e vídeos), parte do Projeto GNU, alternativa às proprietárias capitalistas Youtube, Vimeo, Flickr, etc com rede social. Possui arquitetura descentralizada. + </p> + <figure> + <a href="https://mediagoblin.org/" title="Site do projeto Mediagoblin"><img src="/images/sistemas/mediagoblin.png" alt="Logo Mediagoblin" /></a> + </figure> + </div> + </div> + <div> + <div> + <h4><a name="servicos-rede-social"><a href="#servicos-rede-social" title="Serviços de rede social">Rede Social</a></a> <a href="#banner">^</a></h4> + </div> + <div> + <h5><a name="servico-rede-social-mastodon"><a href="#servico-rede-social-mastodon" title="Serviço descentralizado de rede social Mastodon">Mastodon</a></a> <a href="#banner" title="Vai para o Topo">^</a></h5> + <p> + <a href="https://joinmastodon.org/pt-BR" title="Saiba mais sobre o Mastodon">Mastodon</a> é uma rede social descentralizada de microblog, substituta do Twitter, com milhões de usuários em todo o mundo e uma comunidade bastante ativa no Brasil. + </p> + <figure> + <a href="https://joinmastodon.org/pt-BR" title="Saiba mais sobre o Mastodon"><img src="/images/sistemas/mastodon.png" /></a> + </figure> + </div> + <div> + <h5><a name="servico-rede-social-scuttlebutt"><a href="#servico-rede-social-scuttlebutt" title="Serviço distribuido de rede social Scuttlebutt">Scuttlebutt</a></a> <a href="banner">^</a></h5> + <p> + <a href="https://www.scuttlebutt.nz/" target="_blank" title="Saiba mais sobre o Scuttlebutt">Scuttlebutt</a> é uma rede social de microblog distribuída com mensageria de texto, voz, vídeo e transmissão de arquivos encriptados usando o protocolo SSB de arquitetura ponto-a-ponto (P2P). + </p> + <figure> + <a><img src="/images/sistemas/scuttlebutt.png" /></a> + </figure> + </div> + </div> + <div> + <div> + <h4><a name="servicos-sites"><a href="#servicos-sites" title="Serviços de sites">Sites</a></a> <a href="#banner">^</a></h4> + </div> + <div> + <h5><a name="servico-site-pelican"><a href="#servico-site-pelican" title="Framework de desenvolvimento de sites Pelican">Pelican</a></a> <a href="#banner" title="Vai para o Topo">^</a></h5> + <p> + <a href="https://getpelican.com/" title="Saiba mais sobre o Pelican">Pelican</a> é um framework de desenvolvimento de sites estáticos, ideal para pequenos sites e blogs. + </p> + <figure> + <a href="https://getpelican.com/" title="Site do projeto Pelican"><img src="/images/sistemas/pelican.png" alt="Logo Pelican" /></a> + </figure> + </div> + <div> + <h5><a name="servico-site-wordpress"><a href="#servico-site-wordpress" title="Framework para o desenvolvimento de sites dinâmicos">Wordpress</a></a> <a href="#banner" title="Vai para o Topo">^</a></h5> + <p> + <a href="https://wordpress.org/" title="Saiba mais sobre o wordpress">Wordpress</a> é um frameword de desenvolvimento de sites dinâmicos muito popular na internet que torna todo o processo muito fácil de ser realizado. + </p> + <figure> + <a href="https://wordpress.org/" title="Site do projeto wordpress"><img src="/images/sistemas/wordpress.png" alt="Logo Wordpress" /></a> + </figure> + </div> + </div> + + </section> + </body> +</html> diff --git a/content/pages/sistemas.html~ b/content/pages/sistemas.html~ new file mode 100644 index 0000000..1cd6be3 --- /dev/null +++ b/content/pages/sistemas.html~ @@ -0,0 +1,70 @@ +<html> + <head> + <title>Sistemas</title> + <meta name="tags" content="sistemas, ferramentas, dispositivos, software livre" /> + <meta name="date" content="2024-04-09 02:36" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="sistemas" /> + <meta name="summary" content="Sistemas livres implementados pela Brigada Digital" /> + </head> + <body class="features"> + <p> + Implementamos sistemas verdadeiramente livres do controle proprietário. + </p> + <section> + <h2>Gnuboot</h2> + <p> + BIOS livre que usamos para substituir o BIOS proprietário. O BIOS é o sistema básico de entrada/saída, gravado em memória não volátil, usado para realizar a inicialização do hardware e para fornecer serviços de tempo de execução para sistemas operacionais e programas. O Gnuboot remove o conhecido backdoor de acesso total de processadores da Intel e AMD de arquitetura x86, parte do mecanismo de gerenciamento de energia de baixo nível desses processadores. Esse backdoor opera em micro sistema operacional, possui controlador ethernet com acesso a rede e máquina virtual java carregado com acesso a todos os recursos do computador, mesmo com pouca energia (computador desligado). Dessa forma, a empresa e atacantes, podem ter livre acesso a todos os recursos disponíveis no computador. Então apagamos a memória rom dos chips (BIOS) e escrevemos o BIOS Gnuboot no lugar. Isso também destrava o suporte a novos dispositivos e permite a troca do wifi por outro que funciona livre de firmware proprietário. + </p> + <div style="text-align: center;"> + <a href="https://savannah.gnu.org/projects/gnuboot/"><img src="/images/sistemas/gnuboot.png" title="Site Gnuboot" alt="Site Gnuboot" /></a> + </div> + </section> + <section> + <h2>Linux-libre</h2> + <p> + O Linux, kernel desenvolvido e distribuído por Linus Torvalds, contém software sob o controle proprietário (não livre) disfarçado como código-fonte e, além disso, induz a instalação de outros softwares proprietários que não contém. O Linux distruído pela maioria dos repositórios não é livre. GNU Linux-libre é um projeto para manter e publicar distribuições de Linux 100% livres. O projeto remove do kernel Linux software que é incluído sem código fonte, com código fonte ofuscado ou obscurecido, sob licenças de software não-livre, que não permitem que você altere o software para que ele faça o que você deseja, e que induz ou exige que você instale peças adicionais de software não-livre. + </p> + <p> + O Linux-libre é desenvolvido pelo hacker brasileiro Alexandre Oliva, presidente da Fundação de Software Livre da América Latina. + </p> + <div style="text-align: center;"> + <a href="https://www.fsfla.org/ikiwiki/selibre/linux-libre/"><img src="/images/sistemas/linux-libre.png" title="Site Gnu/Linux-libre" alt="Site Gnu/linux-libre" /></a> + </div> + </section> + <section> + <h2>Hyperbola Gnu/Linux-libre</h2> + <p></p> + <div style="text-align: center;"> + <a href="https://hyperbola.info"><img src="/images/sistemas/hyperbola.png" title="Site Hyperbola Gnu/Linux-libre" alt="Site Hyperbola Gnu/linux-libre" /></a> + </div> + </section> + <section> + <h2>Trisquel Gnu/Linux-libre</h2> + <p> + Distribuição do Sistema operacional Gnu/Linux que distribui exclusivamente software livre, fazendo uso do kernel Linux-Libre. A distribuição possui riquíssimo repositório de softwares e é indicada a todo tipo de fim. Para desktop mantém uma versão do MATE muito bem polida, com software gráfico para instalações e atualizações. + </p> + <div style="text-align: center;> + <a href="https://trisquel.info"><img src="/images/trisquel.png" title="Site Trisquel Gnu/Linux-libre" alt="Site Trisquel Gnu/linux-libre" /></a> + </div> + </section> + <section> + <h2>LibreCMC</h2> + <p> + Distribuição do sistema operacional Gnu/Linux completamente livre para embarcados, utilizada especialmente em roteadores e computadores de placa única. + </p> + <div style="text-align: center;> + <a href="https://librecmc.org"><img src="/images/sistemas/librecmc.png" title="Site LibreCMC Gnu/Linux-libre" alt="Site LibreCMC Gnu/linux-libre" /></a> + </div> + </section> + <section> + <h2>Replicant</h2> + <p> + Distribuição do sistema operacional Android/Linux completamente livre com ênfase na privacidade/segurança, destinada a smartphones e tablets. + </p> + <div style="text-align: center;"> + <a href="https://replicant.us"><img src="/images/sistemas/replicant.png" title="Site Replicant" alt="Site Repliciant" /></a> + </div> + </section> + </body> +</html> diff --git a/content/pages/sobre.html b/content/pages/sobre.html new file mode 100644 index 0000000..8d71d36 --- /dev/null +++ b/content/pages/sobre.html @@ -0,0 +1,54 @@ +<html> + <head> + <title>Sobre</title> + <meta name="tags" content="brigada digital" /> + <meta name="date" content="2024-04-07 22:57" /> + <meta name="modified" content="2024-05-10 13:45" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="sobre" /> + <meta name="summary" content="Sobre a Brigada Digital" /> + </head> + <body> + <section class="features"> + <p> + A Brigada Digital é uma organização marxista, pois compreende que o processo de produção capitalista é fundamentado na exploração da classe proprietária dos meios de produção sobre a classe trabalhadora. A partir da propriedade dos meios de produção a classe proprietária controla a estrutura social, condicionando tudo a seu interesse essencialmente econômico, produzindo, com isso, problemas sociais de toda ordem. Essa relação de produção coloca a classe trabalhadora em conflito com a classe proprietária. Adquirindo sentido de transformação e superação das contradições da sociedade capitalista, impondo aos trabalhadores conscientes da estrutura social engajamento e posicionamento de luta. + </p> + <p> + A formação da Brigada Digital resulta do entendimento da relação entre o desenvolvimento das forças produtivas e a luta de classes. As novas tecnologias da informação estão sendo aparelhadas no processo de exploração sobre a classe trabalhadora. A evidência disso, é a participação proprietária dos meios de produção de tecnologias da informação (TIC's) no processo de hegemonia ideológica ocorrida em todo mundo. Onde equipamentos e plataformas proprietárias de internet tem sido utilizadas como ferramentas de dominação. Por exemplo, na "Primavera Árabe", ocorrida no Oriente Médio e Norte da África, bem como nas "Jornadas de Junho" brasileira, e os consequentes golpes de Estado desencadeados, no caso do Brasil entre 2013 e 2016. Os documentos apresentadas por Edward Snowden, ex-agente da NSA, acrescentaram a participação do Estado, alienado pelo interesse capitalista. + </p> + <p> + Com o objetivo de recompor a extração de valor em países periféricos, como já denuncia há séculos a teoria marxista, os meios de produção de tecnologias da informação coletam dados do conjunto da população, bem como de agentes sociais privilegiados, estratégicos para coordenação da sociedade. Manipulam o conjunto da classe trabalhadora através das redes sociais e fortalecem facções políticas que defendem seus interesses: a flexibilização econômica, privatizações, abertura de mercado, redução do orçamento estatal em políticas sociais, flexibilização das relações de trabalho, remuneração por produtividade, redução dos direitos trabalhistas, terceirização dos meios de produção, aumento do desemprego estrutural, etc, para ampliar a extração de valor, colocando em risco a sobrevivência dos trabalhadores periféricos. A relação entre os proprietários dos meios de produção de tecnologias da informação e comunicação (TIC's) e o conflito de classes é evidente. A extração de informação dos grandes bancos de dados das redes sociais, o impulsionamento de conteúdo, bem como a espionagem em equipamentos de trabalhadores específicos, especiais para a coordenação social, resulta na expansão da exploração. + </p> + <p> + Existe um problema real, objetivo: as TIC's proprietárias. Sua aplicação de massa, do trabalhador comum, aos militantes de base e dirigentes de movimentos sociais e partidários de trabalhadores, todos, em boa medida, ao usarem as TIC's, alimentam esse sistema de informação e controle proprietário. A maioria dos trabalhadores e militantes armazenam seus contatos, mensagens, contratos, cursos de formação, agenda de atividades, rotas e etc nos banco de dados proprietários, alimentando uma estrutura de vigilância e controle social planetária. A alienação da tecnologia trabalhadora pelos proprietários dos meios de produção resultou na expansão exponencial das formas de controle social, minimizando os riscos da operação de exploração. Com as novas ferramentas de controle, a classe proprietária está avançando com a extração de valor. + </p> + <p> + Se o problema é o controle proprietário das tecnologias da informação trabalhadora, a solução passa por substituir as TIC's proprietárias por outras livres desse controle. Nesse sentido, o <a href="https://www.gnu.org/philosophy/free-sw.pt-br.html" target="_blank" title="Leia mais o software livre">software livre (SL)</a> oferece as melhores condições de emancipação tecnológica para a classe trabalhadora e, consequentemente, a redução do poder capitalista, proprietário, pois desenvolve e defende tecnologias livres desse controle. As <a href="https://www.gnu.org/philosophy/free-sw.pt-br.html#four-freedoms" target="_blank" title="As quatro liberdades essenciais do software livre">liberdades do usuário</a> defendidas pelo movimento de software livre (SL) podem eliminar o controle capitalista, parte da estrutura de exploração. Em síntese, a Brigada Digital conjuga marxismo com software livre, posicionando o SL como ferramenta de emancipação da classe trabalhadora no desenvolvimento do conflito de classes. + </p> + <p> + Essa tarefa é urgente e deve ser encarada por todos os trabalhadores consciêntes do conflito de classes, especialmente os militantes e suas organizações sociais pela sua posição estratégica. As condições materiais impõem essa tarefa, então os militantes que realmente desejam a vitória da classe trabalhadora sobre a exploração, opressão e dominação proprietária capitalista, devem adequar sua infraestrutura de comunicação em torno de tecnologias livres do controle proprietário. + </p> + <p> + A Brigada Digital pensa esse processo em três etapas: + </p> + <p> + Etapa 1: implementação de tecnologias livres em organizações classistas e militantes. Esta etapa é de nível artesanal, pois exige <a href="/pages/equipamentos.html" title="Equipamendos hackerados pela Brigada para implementação de Software Livre">hackear equipamentos</a>, fazendo as adaptações necessárias para a implementação de infraestrutura de <a href="/pages/sistemas.html" title="Sitemas livres do controle proprietário implementado pela Brigada Digital">tecnologia da informação e comunicação livre</a> do controle proprietário, removendo, assim, a vigilância no <a href="/pages/sistemas.html#bios" title="BIOS">sistema básico</a>, <a href="/pages/sistemas.html#sistema-operacional-gnu" title="Sistema operacional livre">operacional</a> e <a href="/pages/sistemas.html#servicos" title="Serviços livres implementados pela Brigada">rede/internet</a> sobre a classe trabalhadora organizada e melhorarando a capacidade de ação do movimento. + </p> + <p> + Etapa 2: mobilizar a classe trabalhadora a utilizar a infraestrutura de tecnologia das suas organizações. Esta etapa é parte artesanal e parte automatizada. Parte artesanal porque exige o esforço do conjunto dos militantes organizados para orientar a classe à migração de tecnologias, por exemplo, deixando as plataformas proprietárias de internet. Nesse momento, é estratégico o apoio dos militantes propagandistas já estabelecidos nas plataformas proprietárias. Parte automático porque a infraestrutura implementada nas organizações contribuem com o esforço automatizando processos de engajamento dos trabalhadores na luta de classes. + </p> + <p> + Etapa 3: revolução proletária. + </p> + <p> + A Brigada Digital está no esforço da etapa 1. Para tanto, <a href="/pages/equipamentos.html" title="Equipamentos produzidos pela Brigada Digital">hackeamos equipamentos</a>, fazendo a adaptação necessária para implementar desde <a href="/pages/sistemas.html#bios" title="BIOS implementas pela Brigada Digital">sistemas básicos</a> livres, <a href="/pages/sistemas.html#sistema-operacional-gnu" title="Sistemas operacionais livres implementados pela Brigada Digital">sitemas operacionais</a> e <a href="/pages/sistemas.html#servicos" title="Serviços livres de rede/internet implementados pela Brigada Digital">serviços de rede/internet</a>. <a href="/pages/consultoria.html" title="Formação da Brigada Digital">Capacitamos militantes</a> e <a href="/pages/consultoria.html" title="Implementação de serviços">implementamos infraestrutura auto-hospeada</a> em suas organizações. + </p> + <p> + Quer contribuir com a Brigada Digital? Entre em contato: + </p> + <p> + <a href="/pages/contato.html"><button class="button">Contato</button></a> + </p> + </section> + </body> +</html> diff --git a/content/pages/sobre.html~ b/content/pages/sobre.html~ new file mode 100644 index 0000000..85680a9 --- /dev/null +++ b/content/pages/sobre.html~ @@ -0,0 +1,84 @@ +<html> + <head> + <title>Sobre</title> + <meta name="tags" content="brigada digital" /> + <meta name="date" content="2024-04-07 22:57" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="sobre" /> + <meta name="summary" content="Sobre a Brigada Digital" /> + </head> + <body> + <section class="features"> + <p> + A Brigada Digital é uma organização marxista revolucionária que compreende que o processo de produção capitalista é pautado na exploração e que o único sentido superação dessa situação está na luta da classe trabalhadora contra a classe proprietária dos meios de produação. + </p> + <p> + Analisando a "Primavera Árabe" ocorrida no Oriente Médio e Norte da África, bem como as "Jornadas de Junho", e os consequentes golpes de Estado ocorridos, no caso do Brasil entre 2013 e 2016, conjuntamente como as denúncias realizadas por Edward Snowden, ex-agente da NSA, fica evidente a interferência proprietária das tecnologias da informação e comunicação (TIC's) nesses processos, seja de maneira direta ou através de agências de segurança dos países centrais do capitalismo, com o objetivo de recompor a extração de valor em países periféricos, como já denuncia há século a teoria marxista através de Lénin e através dos marxistas latino-americados por meio da teoria da dependência. + </p> + <p> + A minha hipótese central é que a expansão das TIC's proprietárias nos países periféricos apliaram a extração de valor por meio da ampliação do entendimento do campo, através de informações privilegiadas do conjunto da população e de indivíduos específicos, estratégicos para coordenação da estrutura social, bem como a formação de redes para o fortalecimento de facções políticas e sociais que defendem a flexibilização econômica e a abertura de mercado, promovendo a redução do orçamento estatal em políticas sociais e a flexibilização das relações de trabalho. A remuneração por produtividade, sem direitos trabalhistas, a terceirização de parte dos meios de produção e o desemprego estrutural ampliam a extração de valor e colocam em risco a sobrevivência dos trabalhadores. + </p> + <p> + CONTINUAR A PARTIR DAQUI + </p> + <hr> + <p> + A relação entre o desenvolvimento das TIC's e o conflito de classes ficou evidente, o controle proprietário das TIC's e a extração de valor da informação como estratégia de exploração. + </p> + <p> + Existe um problema real, objetivo: as TIC's proprietárias. Sua aplicação de massa, do trabalhador comum, aos militantes de base e dirigentes de movimentos sociais e partidários de trabalhadores, todos, em boa medida, alimentam esse sistema de informação de controle proprietário armazenando seus contatos, mensagens, contratos, cursos de formação, agenda de atividades, rotas e etc. + </p> + <p> + Se o problema é o controle proprietário, a solução passa por substituir as TIC's proprietárias por outras livres desse controle. O software livre oferece as melhores condições de emancipação tecnológica para a classe trabalhadora. As liberdades do usuário defendidas pelo movimento de software livre podem minimizar gradualmente a estrutura de controle, parte da estrutura de exploração. + </p> + <p> + Em síntese, ideia é conjugar marxismo com software livre, posicionando o SL como ferramenta de emancipação da classe trabalhadora no desenvolvimento do conflito de classes. + </p> + <p> + Inicialmente, sugerimos como marco teórico marxista: Teoria da exploração (mais-valia, classes sociais, conflito de classes, fetiche da mercadoria (consumismo); Imperialismo; Teoria da dependência; Ideologia; Hegemonia; contra-hegemonia; Indústria cultural; cultural de massa; meios de comunicação de massa; Organização de classe; Partidos; Movimentos sociais; + </p> + <p> + E , como marco teórico de TIC's livres: FSF; licenças; descentralização; federado (SaaS) e distribuído; Movimento de software livre; + </p> + <p> + Precisamos de mais indicações de referenciais teóricos do software livre para avançar com a reflexão. + </p> + <p> + Da teoria à prática social, pretendo construir uma organização política (BRIGADA DIGITAL) de trabalhadores com formação em tecnologia e/ou marxismo cujo objetivo seja implementar TIC's livres para a classe trabalhadora. Será uma organização com registro jurídico de associação sem fins lucrativos. + </p> + <p> + A ideia é comprar dispositivos usados, fazer a adaptação necessária e implementar as TIC's livres para trabalhadores, militantes e suas organizações, oferecendo alternativas livres. Ademais, capacitar os militantes para usar tais tecnologias e até mesmo fazer a implementação difundindo a experiência da Brigada Digital. + </p> + <p> + Nós já temos condição de implementar Gnuboot, Trisquel GNU/Linux-Libre, LibreCMC GNU/Linux-Libre e Replicant. Então, faremos a aquisição dos dispositivos usados que são suportados, bem como a adaptação e manutenção, e, por fim a implementação desses sistemas. Também faremos a implementação de serviços auto-hospedados para a Brigada Digital e para outras organizações. Além disso, com o intuito formentar a autonomia e o empoderamento de outras organizações, propomos a implementação auto-hospedada, até mesmo no sentido de formar novas Brigadas Digitais. A estrutura de serviços será descentralizada federada e distribuída, dando preferência para as tecnologias distribuídas. A saber: e-mail, webblog, mensageria, agenda e calendário, conferência, office e vídeo. + </p> + <p> + Contudo, encontramos alguns limites desse conjunto quanto se trata da implementação de serviços, visto que Gnuboot é suportado apenas em dualcore com máximo de 8GB de ram. A ideia é oferecer uma linha provisória, aliança tática, com o open source. Provisória porque compreendemos o limite da tecnologia open source para nosso objetivo. A linha terá Libreboot (sem atualização do microcódigo) em HP 8200 elite SFF, pois suporta processadores octacore e 32GB de ram, para oferecer serviços. + </p> + <p> + Pensando também que algumas atividades demandam maior maior processamento, então ofereceremos notebooks e torres quadcore/octacore com Libreboot (sem atualização do microcódigo) para estação de trabalho. + </p> + <p> + Também encontramos limites graves na capacidade de processamento dos smartphones que suportam Replicant, quadcore de 1.4GHz e 1GB de ram. Sendo assim, também implementaremos Lineage, mas com uma advertência grave para a segurança por usar extensivamente blobs proprietários. Acreditamos para atividades poucos sensíveis não seja tão arriscado sua utilização. + </p> + <p> + Em resumo, a Brigada Digital tem condições de começar suas atividades implementando: + </p> + <p> + Como não temos recursos para emancipar todo o conjunto da classe, a estratégia é selecionar os elementos e organizações com maior capacidade de avançar com a mudança. Compreendo que o primeiro apoio seria para militantes e organizações da classe, especialmente marxistas, para empoderá-los, pois são mais rigorosos no enfrentamento capitalista. + </p> + <p> + Manteremos um webblog da brigada com elaboração de artigos para capacitação da classe trabalhadora com canais de suporte, bem como hospedagem de serviços para organizações e militantes que não tenham condições de promover auto-hospedagem. + </p> + <p> + Por fim, propomos realizar oficinas em escola públicas promovendo o software livre, bem como ajustar a instituição ao uso exclusivo de TIC's livres, modificando seu plano político pedagógico (PPP) e infraestrutura física (laboratórios e etc). + </p> + <p> + O financiamento da Brigada Digital será por meio de doações de apoiadores, comercialização das equipamentos, implementação e suporte de serviços, capacitações, e, por fim, financiamento público de projetos via editais de desenvolvimento da economia solidária, educação e cultura. + </p> + <p> + Concluindo, essa é a ideia para o desenvolvimento das condições de emancipação da classe trabalhadora diante da exploração proprietária. Estou aberto a sugestões e críticas. + </p> + </section> + </body> +</html> diff --git a/content/pages/tutoriais.html b/content/pages/tutoriais.html new file mode 100644 index 0000000..e62ca1a --- /dev/null +++ b/content/pages/tutoriais.html @@ -0,0 +1,126 @@ +<html> + <head> + <title>Tutoriais</title> + <meta name="tags" content="brigada digital, tutoriais, software livre" /> + <meta name="date" content="2024-04-09 01:40" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="tutoriais" /> + <meta name="summary" content="Tutoriais sobre programas livres indicados." /> + <meta name="status" content="draft" /> + </head> + <body class="features"> + <p> + A Brigada Digital aconselha os trabalhadores a usar somente software livre, contudo, a arquitetura de serviços SaaS, mesmo livre centralizado e descentralizado federado, é vulnerável a alguns tipos de ataque de confiaça. Nesse sentido, indicamos dar preferência a programas de rede livres de arquitetura distribuída. Abaixo, lista de programas que serguem a arquitetura distribuída. + </p> + <section> + <h3>Mensagens</h3> + <div> + <h4>E-mail</h4> + <p> Aprenda como instalar, configurar e usar Clientes de e-mail seguros que possuem recursos de assinatura e criptografia.</p> + <div class="container"> + <div> + <h5>Gnu/Linux</h5> + <div> + <figure> + <img src="/images/tutoriais/icedove-uxp.png" title="Thunderbird/icedove-uxp" alt="Thunderbird/icedove-uxp" /> + <figcaption>Thunderbird/icedove-uxp</figcaption> + </figure> + </div> + </div> + <div> + <h5>Replicant/Android</h5> + <div> + <figure> + <img src="/images/tutoriais/k9-mail.png" title="K9-Mail" alt="K9-Mail" /> + <figcaption>K9-Mail</figcaption> + </figure> + </div> + </div> + </div> + </div> + <div> + <h4>Xmpp</h4> + <p>Saiba como usar o xmpp para conversar.</p> + <div class="container"> + <div> + <h5>Gnu/Linux</h5> + <div> + <figure> + <img src="/images/tutoriais/pidgin.png" title="Pidgin" alt="Pidgin" /> + <figcaption>Pidgin</figcaption> + </figure> + </div> + </div> + <div> + <h5>Replicant/Android</h5> + <div> + <figure> + <img src="/images/tutoriais/conversations.png" title="Conversations" alt="Conversations" /> + <figcaption>Conversations</figcaption> + </figure> + </div> + </div> + </div> + </div> + <div> + <h4>Tox</h4> + <p>Aprenda a usar o tox para conversar.</p> + <div class="container"> + <div> + <h5>Gnu/Linux</h5> + <div> + <figure> + <img src="/images/tutoriais/qtox.png" title="Qtox" alt="Qtox" /> + <figcaption>Qtox</figcaption> + </figure> + </div> + </div> + <div> + <h5>Replicant/Android</h5> + <div> + <figure> + <img src="/images/tutoriais/trifa.png" title="Trifa" alt="Trifa" /> + <figcaption>Trifa</figcaption> + </figure> + </div> + </div> + </div> + </div> + </section> + <section> + <div> + <h3>Navegação</h3> + <p>Navegação web segura e anônima.</p> + <div> + <h4>Browser</h4> + <div class="container"> + <div> + <h5>Gnu/Linux</h5> + <div> + <figure> + <img src="/images/tutoriais/iceweasel-uxp.png" title="Abrowser/Iceweasel-uxp" alt="Abrowser/Iceweasel-uxp" /> + <figcaption>Abrowser/Iceweasel-uxp</figcaption> + </figure> + </div> + </div> + <div> + <h5>Replicant/Android</h5> + <div> + <figure> + <img src="/images/tutoriais/privacy-browser.png" title="Navegador Seguro/Privacy Browser" alt="Navegador Seguro/Privacy Browser" /> + <figcaption>Navegador Seguro/Privacy Browser</figcaption> + </figure> + </div> + </div> + </div> + </div> + </div> + </section> + <section> + <h3>Compartilhamento</h3> + <h4>Torrent</h4> + <p></p> + </section> + + </body> +</html> diff --git a/content/pages/tutoriais.html~ b/content/pages/tutoriais.html~ new file mode 100644 index 0000000..19bb6f1 --- /dev/null +++ b/content/pages/tutoriais.html~ @@ -0,0 +1,32 @@ +<html> + <head> + <title>Tutoriais</title> + <meta name="tags" content="brigada digital, tutoriais, software livre" /> + <meta name="date" content="2024-04-09 01:40" /> + <meta name="author" content="Bio" /> + <meta name="slug" content="tutoriais" /> + <meta name="summary" content="Tutoriais sobre programas livres indicados." /> + </head> + <body class="features"> + <p> + A Brigada Digital compreende aconselha os trabalhadores a usar somente software livre, contudo, a arquitetura de serviços SaaS, mesmo livre centralizado e descentralizado federado, é vulnerável a alguns tipos de ataque de confiaça. Nesse sentido, indicamos dar preferência a programas de rede livres de arquitetura distribuída. Abaixo, lista de programas que serguem a arquitetura distribuída. + </p> + <section> + <h3>Mensagens</h3> + <h4>E-mail</h4> + <h5>Clientes de e-mail</h5> + <h5><a href="/pages/assinatura-e-criptografia-de-e-mail.html">Assinatura e criptografia de e-mail</a></h5> + <p>Aprenda como assinar e criptografar e-mail.</p> + <h4>Xmpp</h4> + <p>Saiba como usar o xmpp para conversar.</p> + <h4>Tox</h4> + <p>Aprenda a usar o tox para conversar.</p> + </section> + <section> + <h3>Compartilhamento</h3> + <h4>Torrent</h4> + <p></p> + </section> + + </body> +</html> diff --git a/content/videos/bios/t400-flash-gnuboot_1024x.gif b/content/videos/bios/t400-flash-gnuboot_1024x.gif Binary files differnew file mode 100644 index 0000000..0be1675 --- /dev/null +++ b/content/videos/bios/t400-flash-gnuboot_1024x.gif diff --git a/content/videos/bios/t400-flash-gnuboot_480x.gif b/content/videos/bios/t400-flash-gnuboot_480x.gif Binary files differnew file mode 100644 index 0000000..5c2b581 --- /dev/null +++ b/content/videos/bios/t400-flash-gnuboot_480x.gif diff --git a/content/videos/bios/t400-flash-gnuboot_720x.gif b/content/videos/bios/t400-flash-gnuboot_720x.gif Binary files differnew file mode 100644 index 0000000..255a64e --- /dev/null +++ b/content/videos/bios/t400-flash-gnuboot_720x.gif diff --git a/description b/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/hooks/applypatch-msg.sample b/hooks/applypatch-msg.sample new file mode 100755 index 0000000..a5d7b84 --- /dev/null +++ b/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/hooks/commit-msg.sample b/hooks/commit-msg.sample new file mode 100755 index 0000000..b58d118 --- /dev/null +++ b/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/hooks/fsmonitor-watchman.sample b/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..14ed0aa --- /dev/null +++ b/hooks/fsmonitor-watchman.sample @@ -0,0 +1,173 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + } + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $last_update_token, + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; <CHLD_OUT>}; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/hooks/post-update.sample b/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/hooks/pre-applypatch.sample b/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/hooks/pre-commit.sample b/hooks/pre-commit.sample new file mode 100755 index 0000000..e144712 --- /dev/null +++ b/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/hooks/pre-merge-commit.sample b/hooks/pre-merge-commit.sample new file mode 100755 index 0000000..399eab1 --- /dev/null +++ b/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/hooks/pre-push.sample b/hooks/pre-push.sample new file mode 100755 index 0000000..6187dbf --- /dev/null +++ b/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# <local ref> <local sha1> <remote ref> <remote sha1> +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +z40=0000000000000000000000000000000000000000 + +while read local_ref local_sha remote_ref remote_sha +do + if [ "$local_sha" = $z40 ] + then + # Handle delete + : + else + if [ "$remote_sha" = $z40 ] + then + # New branch, examine all commits + range="$local_sha" + else + # Update to existing branch, examine new commits + range="$remote_sha..$local_sha" + fi + + # Check for WIP commit + commit=`git rev-list -n 1 --grep '^WIP' "$range"` + if [ -n "$commit" ] + then + echo >&2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/hooks/pre-rebase.sample b/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/hooks/pre-receive.sample b/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/hooks/prepare-commit-msg.sample b/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/hooks/update.sample b/hooks/update.sample new file mode 100755 index 0000000..5014c4b --- /dev/null +++ b/hooks/update.sample @@ -0,0 +1,128 @@ +#!/bin/sh +# +# An example hook script to block unannotated tags from entering. +# Called by "git receive-pack" with arguments: refname sha1-old sha1-new +# +# To enable this hook, rename this file to "update". +# +# Config +# ------ +# hooks.allowunannotated +# This boolean sets whether unannotated tags will be allowed into the +# repository. By default they won't be. +# hooks.allowdeletetag +# This boolean sets whether deleting tags will be allowed in the +# repository. By default they won't be. +# hooks.allowmodifytag +# This boolean sets whether a tag may be modified after creation. By default +# it won't be. +# hooks.allowdeletebranch +# This boolean sets whether deleting branches will be allowed in the +# repository. By default they won't be. +# hooks.denycreatebranch +# This boolean sets whether remotely creating branches will be denied +# in the repository. By default this is allowed. +# + +# --- Command line +refname="$1" +oldrev="$2" +newrev="$3" + +# --- Safety check +if [ -z "$GIT_DIR" ]; then + echo "Don't run this script from the command line." >&2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 <ref> <oldrev> <newrev>)" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 <ref> <oldrev> <newrev>" >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero="0000000000000000000000000000000000000000" +if [ "$newrev" = "$zero" ]; then + newrev_type=delete +else + newrev_type=$(git cat-file -t $newrev) +fi + +case "$refname","$newrev_type" in + refs/tags/*,commit) + # un-annotated tag + short_refname=${refname##refs/tags/} + if [ "$allowunannotated" != "true" ]; then + echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/info/exclude b/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/pelicanconf.py b/pelicanconf.py new file mode 100644 index 0000000..06d482d --- /dev/null +++ b/pelicanconf.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- # +from __future__ import unicode_literals + +AUTHOR = 'Bio' +SITENAME = 'Brigada Digital' +## Development +#SITEURL = '' +## Production +SITEURL = 'https://brigadadigital.org.br' + +PATH = 'content' +ARTICLE_PATHS = ['articles'] +DEFAULT_CATEGORY = 'Artigos' +PAGE_PATHS = ['pages'] +STATIC_PATHS = ['images', 'downloads', 'extra/favicon.ico'] + +DEFAULT_PAGINATION = 10 +#PAGINATED_TEMPLATES = {'category': None, 'author': None, 'archives': None, 'tags': None, 'home': 6} + +TIMEZONE = 'America/Sao_Paulo' + +DEFAULT_LANG = 'pt_BR' + +THEME = 'themes/nojs' + +# Feed generation is usually not desired when developing +## Development +#FEED_ALL_ATOM = None +## Production +FEED_ALL_ATOM = 'feeds/all.atom.xml' +FEED_ALL_RSS = 'feeds/all.rss.xml' + +#FEED_DOMAIN = 'SITEURL' +CATEGORY_FEED_ATOM = None +TRANSLATION_FEED_ATOM = None +AUTHOR_FEED_ATOM = None +AUTHOR_FEED_RSS = None + +# Blogroll +LINKS = (('Pelican', 'http://getpelican.com/'), + ('Python.org', 'http://python.org/'), + ('Jinja2', 'http://jinja.pocoo.org/'), + ('You can modify those links in your config file', '#'),) + +# Social widget +SOCIAL = (('You can add links in your config file', '#'), + ('Another social link', '#'),) + +# Uncomment following line if you want document-relative URLs when developing +RELATIVE_URLS = True + +DISPLAY_PAGES_ON_MENU = True +DISPLAY_CATEGORIES_ON_MENU = True + +#MENUITEMS = (('Home', '/'),) + +EXTRA_PATH_METADATA = { + 'extra/robots.txt': {'path': 'robots.txt'}, + 'extra/favicon.ico': {'path': 'favicon.ico'} +} diff --git a/publishconf.py b/publishconf.py new file mode 100644 index 0000000..a9dafe8 --- /dev/null +++ b/publishconf.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- # +from __future__ import unicode_literals + +# This file is only used if you use `make publish` or +# explicitly specify it as your config file. + +import os +import sys +sys.path.append(os.curdir) +from pelicanconf import * + +# If your site is available via HTTPS, make sure SITEURL begins with https:// +SITEURL = 'https://brigadadigital.org.br' +RELATIVE_URLS = False + +FEED_ALL_ATOM = 'feeds/all.atom.xml' +CATEGORY_FEED_ATOM = 'feeds/{slug}.atom.xml' + +DELETE_OUTPUT_DIRECTORY = True + +# Following items are often useful when publishing + +#DISQUS_SITENAME = "" +#GOOGLE_ANALYTICS = ""
\ No newline at end of file diff --git a/tasks.py b/tasks.py new file mode 100644 index 0000000..85f29ff --- /dev/null +++ b/tasks.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- + +import os +import shutil +import sys +import datetime + +from invoke import task +from invoke.util import cd +from pelican.server import ComplexHTTPRequestHandler, RootedHTTPServer + +CONFIG = { + # Local path configuration (can be absolute or relative to tasks.py) + 'deploy_path': 'output', + # Remote server configuration + 'production': 'nbio@brigadadigital.org.br:2221', + 'dest_path': '/var/www', + # Port for `serve` + 'port': 8000, +} + +@task +def clean(c): + """Remove generated files""" + if os.path.isdir(CONFIG['deploy_path']): + shutil.rmtree(CONFIG['deploy_path']) + os.makedirs(CONFIG['deploy_path']) + +@task +def build(c): + """Build local version of site""" + c.run('pelican -s pelicanconf.py') + +@task +def rebuild(c): + """`build` with the delete switch""" + c.run('pelican -d -s pelicanconf.py') + +@task +def regenerate(c): + """Automatically regenerate site upon file modification""" + c.run('pelican -r -s pelicanconf.py') + +@task +def serve(c): + """Serve site at http://localhost:8000/""" + + class AddressReuseTCPServer(RootedHTTPServer): + allow_reuse_address = True + + server = AddressReuseTCPServer( + CONFIG['deploy_path'], + ('', CONFIG['port']), + ComplexHTTPRequestHandler) + + sys.stderr.write('Serving on port {port} ...\n'.format(**CONFIG)) + server.serve_forever() + +@task +def reserve(c): + """`build`, then `serve`""" + build(c) + serve(c) + +@task +def preview(c): + """Build production version of site""" + c.run('pelican -s publishconf.py') + + +@task +def publish(c): + """Publish to production via rsync""" + c.run('pelican -s publishconf.py') + c.run( + 'rsync --delete --exclude ".DS_Store" -pthrvz -c ' + '{} {production}:{dest_path}'.format( + CONFIG['deploy_path'].rstrip('/') + '/', + **CONFIG)) + diff --git a/themes/nojs/static/css/fonts.css b/themes/nojs/static/css/fonts.css new file mode 100644 index 0000000..928faf3 --- /dev/null +++ b/themes/nojs/static/css/fonts.css @@ -0,0 +1,9 @@ +@font-face { + font-family: 'Fira Code'; + font-style: Retina; + font-weight: 400; + src: + local('Fira Code Retina'), + local('FiraCode-Retina'), + url('../fonts/FiraCode-Retina.ttf') format('ttf'); +} diff --git a/themes/nojs/static/css/fonts.css~ b/themes/nojs/static/css/fonts.css~ new file mode 100644 index 0000000..5601507 --- /dev/null +++ b/themes/nojs/static/css/fonts.css~ @@ -0,0 +1,12 @@ +@font-face { + font-family: 'Yanone Kaffeesatz'; + font-style: normal; + font-weight: 400; + src: + local('Yanone Kaffeesatz Regular'), + local('YanoneKaffeesatz-Regular'), + /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLRTHiN2BPBirwIkMLKUspj4.woff */ + url('../fonts/Yanone_Kaffeesatz_400.woff') format('woff'), + /* from https://fonts.gstatic.com/s/yanonekaffeesatz/v8/YDAoLskQQ5MOAgvHUQCcLfGwxTS8d1Q9KiDNCMKLFUM.woff2 */ + url('../fonts/Yanone_Kaffeesatz_400.woff2') format('woff2'); +} diff --git a/themes/nojs/static/css/main.css b/themes/nojs/static/css/main.css new file mode 100644 index 0000000..fdfd311 --- /dev/null +++ b/themes/nojs/static/css/main.css @@ -0,0 +1,279 @@ +/* + Name: nojs style css + Date: Abr 2024 + Description: layout for HTML5 and CSS3 goodness. + Version: 1.0 + License: GPLv3 <https://www.gnu.org/licenses/gpl-3.0.html> + Licensed by: Brigada Digital <https://brigadadigital.tec.br> + Original author: Núbio Cicarini Hott <bio@brigadadigital.tec.br> +*/ + +/* Imports */ +@import url("reset.css"); +@import url("pygment.css"); +@import url("typogrify.css"); +@import url("fonts.css"); + +/* Body */ +body { + background: #000000; + color: #000000; + font-size: 87.5%; /* Base font size: 14px */ + font-family: 'Fira Code Retina', 'Fira Code Bold'; + font-size: 1.4em; + line-height: 1.8em; + text-align: left; + margin: 1% 0 0 0; +} + +/* Headings */ +h1 {font-size: 2.1em;} +h2 {font-size: 1.95em;} /* 22px */ +h3 {font-size: 1.85em;} /* 20px */ +h4 {font-size: 1.7em;} /* 18px */ +h5 {font-size: 1.6em;} /* 16px */ +h6 {font-size: 1.5em;} /* 14px */ +h1, h2, h3, h4, h5, h6 { + font-weight: bold; + line-height: 1.429em; + margin-top: 5px; + margin-bottom: 5px; +} +h3, h4, h5, h6 {margin-top: .8em;} + +/* Line */ +hr {border: 1px solid #000000;} + +/* Button */ +.button { + color: #FFF; + background-color: #000000; + border: 1px solid #CC0000; + padding: 12px 30px; + text-align: center; + font-size: .8em; + font-weight: bold; + display: inline-block; +} +.button:hover { + color: #FF0000; + background-color: #000000; + border: 1px solid #FF0000; + text-decoration: underline; +} + +dl {margin: 0 0 1.5em 0;} +dt {font-weight: bold;} +dd {margin-left: 1.5em;} + +/* Tables */ +table {margin: .5em auto .5em auto; font-size: .9em; display: inline-flex;} + +/* Thead */ +thead th {padding: .5em .4em; text-align: left; display: flex;} +thead td {} + +/* Tbody */ +tbody td {padding: .5em .4em; border: 1px solid;} +tbody th {} + +tbody .alt td {} +tbody .alt th {} + +/* Tfoot */ +tfoot th {} +tfoot td {} + + +/* Anchors */ +a {outline: 0;} +a img {border: 0px; text-decoration: none;} +a:link {color: #CC0000; text-decoration: underline;} +a:visited {color: #990000; text-decoration: underline;} +a:hover, a:active { + color: #FF0000; + text-decoration: underline; +} + +/* HTML5 tags */ +header, section, footer, +aside, nav, article, figure { + display: block; +} + +/* banner */ +header#banner { + text-align: center; +} +header#banner a img { border: 0; text-decoration: none; } + +/* MenuMain Nav */ +nav#menu { + font-size: 1em; + text-align: center; + +/* border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +*/ +} +nav#menu ul { + list-style: none; +} +nav#menu li { + float: center; + display: inline-block; + padding: 0 1% .5% 0; +} +nav#menu a:link, nav#menu a:visited { + color: #FFF; + text-decoration: none; + font-weight: bold; +} + +nav#menu a:hover, nav#menu a:active, nav#menu .active a:link, nav#menu .active a:visited { + color: #CC0000; + /* text-decoration: underline; */ + text-decoration: none; + text-shadow: none !important; + font-weight: bold; + border-bottom: 2px solid #CC0000; +} + +/* Content */ +#content { + overflow: hidden; + background: #FFF; + padding: 2% 10% 2% 10%; + +/* border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +*/ +} + +#contentinfo { + font-size: .8em; + line-height: 1.3em; + overflow: hidden; + color: #FFF; + text-align: center; + margin: 0; + padding: 2% 10% 2% 10%; +} +#contentinfo a:link {color: #CC0000;} +#contentinfo a:hover {color: #FF0000;} +#contentinfo a:visited {color: #990000;} + +/* Post */ +#post-list { +} + +.post-info { +} + +.hentry { +} + +.entry-title { +} +.entry-title h1 a:link, h2 a:link, h3 a:link, h4 a:link, h5 a:link, h6 a:link {color: #000000;} +.entry-title h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover {color: #CC0000;} + + +.vcard.author{ +} + +/* Home */ +#home { + background-color: #FFF; +} +#home section { + padding: 1% 0 1% 0; +} +#home div { + padding: 0 10% 0 10%; +} + +.image img { + margin: 1%; + padding: 2%; + text-align: center; +} + +.codebox { + padding: 0; + background-color: black; + color: red; +} + +figure { + text-align: center; +} +/*Features*/ + +.features { +} +.features a:link {color: #CC0000;} +.features a:hover {color: #FF0000;} +.features a:active {color: #FF0000;} +.features a:visited {color: #990000;} +.features h3 a:link {color: #000000;} +.features h4 a:link {color: #000000;} +.features h5 a:link {color: #000000;} +.features h6 a:link {color: #000000;} +.features h3 a:visited {color: #000000;} +.features h4 a:visited {color: #000000;} +.features h5 a:visited {color: #000000;} +.features h6 a:visited {color: #000000;} +.features h3 a:hover {color: #CC0000;} +.features h4 a:hover {color: #CC0000;} +.features h5 a:hover {color: #CC0000;} +.features h6 a:hover {color: #CC0000;} +.features p { + padding: 1% 0 1% 0; +} + +.indice { + float: left; + text-align: left; + padding: 2%; + margin: 1% 2% 1% 0; + background: #CC0000; + border: 1px solid #FF0000; +} +.indice h3 { + color: #FFFFFF; + margin-top: 0; +} +.indice a:link, a:visited { + color: #000000; +} +.indice a:hover, a:active { + color: #FFFFFF; +} +.indice ul { + list-style: disc; + padding-left: 10%; +} + +/* Blog */ +.blog h2 { + color: #FFFFFF; +} +.blog a:link, a:visited { + color: #000000; + text-decoration: underline; +} +.blog a:hover { + color: #FFFFFF; + text-decoration: underline; +} + +.container { + display: grid; + grid-template-columns: 1fr 1fr; + grid-gap: 5%; + text-align: center; +} + diff --git a/themes/nojs/static/css/main.css~ b/themes/nojs/static/css/main.css~ new file mode 100644 index 0000000..e682bf4 --- /dev/null +++ b/themes/nojs/static/css/main.css~ @@ -0,0 +1,219 @@ +/* + Name: nojs style css + Date: Abr 2024 + Description: layout for HTML5 and CSS3 goodness. + Version: 1.0 + License: GPLv3 <https://www.gnu.org/licenses/gpl-3.0.html> + Licensed by: Brigada Digital <https://brigadadigital.tec.br> + Original author: Núbio Cicarini Hott <bio@brigadadigital.tec.br> +*/ + +/* Imports */ +@import url("reset.css"); +@import url("pygment.css"); +@import url("typogrify.css"); +@import url("fonts.css"); + +/* Body */ +body { + background: #000000; + color: #000000; + font-size: 87.5%; /* Base font size: 14px */ + font-family: 'DejaVu Sans Mono', 'Dejavu Sans', 'Dejavu Serif'; + font-size: 1.05em; + line-height: 1.8em; + text-align: left; + margin: 0; +} + +/* Headings */ +h1 {font-size: 2em;} +h2 {font-size: 1.571em;} /* 22px */ +h3 {font-size: 1.429em;} /* 20px */ +h4 {font-size: 1.286em;} /* 18px */ +h5 {font-size: 1.143em;} /* 16px */ +h6 {font-size: 1em;} /* 14px */ +h1, h2, h3, h4, h5, h6 { + font-weight: 400; + line-height: 1.429em; + margin-top: 5px; + margin-bottom: 5px; +} +h3, h4, h5, h6 {margin-top: .8em;} + +/* Line */ +hr {border: 1px solid #CC0000;} + +/* Button */ +.button { + color: #FFF; + background-color: #000000; + border: 1px solid #CC0000; + padding: 15px 36px; + text-align: center; + text-decoration: underline; + display: inline-block; +} +.button:hover { + color: #FF0000; + background-color: #000000; + border: 1px solid #FF0000; + text-decoration: underline; +} + +dl {margin: 0 0 1.5em 0;} +dt {font-weight: bold;} +dd {margin-left: 1.5em;} + +/* Tables */ +table {margin: .5em auto 1.5em auto; width: 98%;} + + /* Thead */ + thead th {padding: .5em .4em; text-align: left;} + thead td {} + + /* Tbody */ + tbody td {padding: .5em .4em;} + tbody th {} + + tbody .alt td {} + tbody .alt th {} + + /* Tfoot */ + tfoot th {} + tfoot td {} + + +/* Anchors */ +a {outline: 0;} +a img {border: 0px; text-decoration: none;} +a:link, a:visited {color: #990000; text-decoration: underline;} +a:hover, a:active { + color: #FF0000; + text-decoration: underline; +} + +/* HTML5 tags */ +header, section, footer, +aside, nav, article, figure { + display: block; +} + +/* banner */ +header#banner { + text-align: center; + padding-top: 10px; +} +header#banner a img { border: 0; text-decoration: none; } + +/* MenuMain Nav */ +nav#menu { + font-size: 1.1em; + text-align: center; + +/* border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +*/ +} +nav#menu ul { + list-style: none; +} +nav#menu li { + float: center; + display: inline-block; + padding: 0 15px 5px 0; +} +nav#menu a:link, nav#menu a:visited { + color: #FFF; + text-decoration: underline; + font-weight: bold; +} + +nav#menu a:hover, nav#menu a:active, nav#menu .active a:link, nav#menu .active a:visited { + color: #CC0000; + text-decoration: underline; + text-shadow: none !important; + font-weight: bold; +} + +/* Contençt */ +#content { + overflow: hidden; + background: #FFF; + padding: 10px 170px 10px 170px; + +/* border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +*/ +} + +#contentinfo { + font-size: .8em; + line-height: 1.3em; + overflow: hidden; + color: #FFF; + text-align: center; + margin: 0; + padding: 20px 170px 20px 170px; +} + +/* Post */ +#post-list { +} + +.post-info { +} + +.hentry{ +} + +.entry-title{ +} + +.entry-content{ +} + +.vcard.author{ +} + +/* Home */ +#home { + background-color: #FFF; +} +#home section { + padding-top: 5px; + padding-bottom: 5px; +} +#home div { + padding: 5px 170px 5px 170px; +} + +.image img { + padding: 30px; + text-align: center; +} + +/*Features*/ +.features a { + color: #000000; + text-decoration: underline; +} +.features a:link { + color: #000000; + text-decoration: underline; +} +.features a:hover { + color: #FFFFFF; + text-decoration: underline; +} +.features p { + padding-bottom: 10px; +} + +.container { + display: grid; + grid-template-columns: 1fr 1fr; + grid-gap: 10px; +} diff --git a/themes/nojs/static/css/pygment.css b/themes/nojs/static/css/pygment.css new file mode 100644 index 0000000..fdd056f --- /dev/null +++ b/themes/nojs/static/css/pygment.css @@ -0,0 +1,205 @@ +.hll { +background-color:#eee; +} +.c { +color:#408090; +font-style:italic; +} +.err { +border:1px solid #FF0000; +} +.k { +color:#007020; +font-weight:bold; +} +.o { +color:#666666; +} +.cm { +color:#408090; +font-style:italic; +} +.cp { +color:#007020; +} +.c1 { +color:#408090; +font-style:italic; +} +.cs { +background-color:#FFF0F0; +color:#408090; +} +.gd { +color:#A00000; +} +.ge { +font-style:italic; +} +.gr { +color:#FF0000; +} +.gh { +color:#000080; +font-weight:bold; +} +.gi { +color:#00A000; +} +.go { +color:#303030; +} +.gp { +color:#C65D09; +font-weight:bold; +} +.gs { +font-weight:bold; +} +.gu { +color:#800080; +font-weight:bold; +} +.gt { +color:#0040D0; +} +.kc { +color:#007020; +font-weight:bold; +} +.kd { +color:#007020; +font-weight:bold; +} +.kn { +color:#007020; +font-weight:bold; +} +.kp { +color:#007020; +} +.kr { +color:#007020; +font-weight:bold; +} +.kt { +color:#902000; +} +.m { +color:#208050; +} +.s { +color:#4070A0; +} +.na { +color:#4070A0; +} +.nb { +color:#007020; +} +.nc { +color:#0E84B5; +font-weight:bold; +} +.no { +color:#60ADD5; +} +.nd { +color:#555555; +font-weight:bold; +} +.ni { +color:#D55537; +font-weight:bold; +} +.ne { +color:#007020; +} +.nf { +color:#06287E; +} +.nl { +color:#002070; +font-weight:bold; +} +.nn { +color:#0E84B5; +font-weight:bold; +} +.nt { +color:#062873; +font-weight:bold; +} +.nv { +color:#BB60D5; +} +.ow { +color:#007020; +font-weight:bold; +} +.w { +color:#BBBBBB; +} +.mf { +color:#208050; +} +.mh { +color:#208050; +} +.mi { +color:#208050; +} +.mo { +color:#208050; +} +.sb { +color:#4070A0; +} +.sc { +color:#4070A0; +} +.sd { +color:#4070A0; +font-style:italic; +} +.s2 { +color:#4070A0; +} +.se { +color:#4070A0; +font-weight:bold; +} +.sh { +color:#4070A0; +} +.si { +color:#70A0D0; +font-style:italic; +} +.sx { +color:#C65D09; +} +.sr { +color:#235388; +} +.s1 { +color:#4070A0; +} +.ss { +color:#517918; +} +.bp { +color:#007020; +} +.vc { +color:#BB60D5; +} +.vg { +color:#BB60D5; +} +.vi { +color:#BB60D5; +} +.il { +color:#208050; +} diff --git a/themes/nojs/static/css/reset.css b/themes/nojs/static/css/reset.css new file mode 100644 index 0000000..1e21756 --- /dev/null +++ b/themes/nojs/static/css/reset.css @@ -0,0 +1,52 @@ +/* + Name: Reset Stylesheet + Description: Resets browser's default CSS + Author: Eric Meyer + Author URI: http://meyerweb.com/eric/tools/css/reset/ +*/ + +/* v1.0 | 20080212 */ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + background: transparent; + border: 0; + font-size: 100%; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; +} + +body {line-height: 1;} + +ol, ul {list-style: none;} + +blockquote, q {quotes: none;} + +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} + +/* remember to define focus styles! */ +:focus { + outline: 0; +} + +/* remember to highlight inserts somehow! */ +ins {text-decoration: none;} +del {text-decoration: line-through;} + +/* tables still need 'cellspacing="0"' in the markup */ +table { + border-collapse: collapse; + border-spacing: 0; +}
\ No newline at end of file diff --git a/themes/nojs/static/css/typogrify.css b/themes/nojs/static/css/typogrify.css new file mode 100644 index 0000000..9d98a85 --- /dev/null +++ b/themes/nojs/static/css/typogrify.css @@ -0,0 +1,3 @@ +.caps {font-size:.92em;} +.amp {color:#666; font-size:1.05em; font-family: "DejaVu Sans Mono"; font-style:italic;} +.dquo {margin-left:-.38em;} diff --git a/themes/nojs/static/css/typogrify.css~ b/themes/nojs/static/css/typogrify.css~ new file mode 100644 index 0000000..3bae497 --- /dev/null +++ b/themes/nojs/static/css/typogrify.css~ @@ -0,0 +1,3 @@ +.caps {font-size:.92em;} +.amp {color:#666; font-size:1.05em;font-family:"Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua",serif; font-style:italic;} +.dquo {margin-left:-.38em;} diff --git a/themes/nojs/static/fonts/FiraCode-Bold.ttf b/themes/nojs/static/fonts/FiraCode-Bold.ttf Binary files differnew file mode 100644 index 0000000..c7afc5e --- /dev/null +++ b/themes/nojs/static/fonts/FiraCode-Bold.ttf diff --git a/themes/nojs/static/fonts/FiraCode-Light.ttf b/themes/nojs/static/fonts/FiraCode-Light.ttf Binary files differnew file mode 100644 index 0000000..18fcf8e --- /dev/null +++ b/themes/nojs/static/fonts/FiraCode-Light.ttf diff --git a/themes/nojs/static/fonts/FiraCode-Medium.ttf b/themes/nojs/static/fonts/FiraCode-Medium.ttf Binary files differnew file mode 100644 index 0000000..8956cc6 --- /dev/null +++ b/themes/nojs/static/fonts/FiraCode-Medium.ttf diff --git a/themes/nojs/static/fonts/FiraCode-Regular.ttf b/themes/nojs/static/fonts/FiraCode-Regular.ttf Binary files differnew file mode 100644 index 0000000..ad6f304 --- /dev/null +++ b/themes/nojs/static/fonts/FiraCode-Regular.ttf diff --git a/themes/nojs/static/fonts/FiraCode-Retina.ttf b/themes/nojs/static/fonts/FiraCode-Retina.ttf Binary files differnew file mode 100644 index 0000000..bdce19d --- /dev/null +++ b/themes/nojs/static/fonts/FiraCode-Retina.ttf diff --git a/themes/nojs/static/fonts/FiraCode-SemiBold.ttf b/themes/nojs/static/fonts/FiraCode-SemiBold.ttf Binary files differnew file mode 100644 index 0000000..e32a1e1 --- /dev/null +++ b/themes/nojs/static/fonts/FiraCode-SemiBold.ttf diff --git a/themes/nojs/static/fonts/fonts.css b/themes/nojs/static/fonts/fonts.css new file mode 100644 index 0000000..5edee84 --- /dev/null +++ b/themes/nojs/static/fonts/fonts.css @@ -0,0 +1,9 @@ +@font-face { + font-family: 'Fira Code'; + font-style: Retina; + font-weight: 400; + src: + local('Fira Code Retina'), + local('FireCode-Retina'), + url('../fonts/FiraCode-Retina.ttf') format('ttf'); +} diff --git a/themes/nojs/templates/archives.html b/themes/nojs/templates/archives.html new file mode 100644 index 0000000..cd12950 --- /dev/null +++ b/themes/nojs/templates/archives.html @@ -0,0 +1,14 @@ +{% extends "base.html" %} + +{% block title %}{{ SITENAME }} - Archives{% endblock %} + +{% block content %} +<h1>Archives for {{ SITENAME }}</h1> + +<dl> +{% for article in dates %} + <dt>{{ article.locale_date }}</dt> + <dd><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></dd> +{% endfor %} +</dl> +{% endblock %} diff --git a/themes/nojs/templates/article.html b/themes/nojs/templates/article.html new file mode 100644 index 0000000..5a1c093 --- /dev/null +++ b/themes/nojs/templates/article.html @@ -0,0 +1,67 @@ +{% extends "base.html" %} +{% block html_lang %}{{ article.lang }}{% endblock %} + +{% block title %}{{ SITENAME }} - {{ article.title }}{% endblock %} + +{% block head %} + {{ super() }} + + {% import 'translations.html' as translations with context %} + {% if translations.entry_hreflang(article) %} + {{ translations.entry_hreflang(article) }} + {% endif %} + + {% if article.description %} + <meta name="description" content="{{article.description}}" /> + {% endif %} + + {% for tag in article.tags %} + <meta name="tags" content="{{tag}}" /> + {% endfor %} + +{% endblock %} + +{% block content %} +<section id="content" class="body"> + <header> + <h2 class="entry-title"> + <a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" + title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2> + {% import 'translations.html' as translations with context %} + {{ translations.translations_for(article) }} + </header> + <footer class="post-info"> + <time class="published" datetime="{{ article.date.isoformat() }}"> + {{ article.locale_date }} + </time> + {% if article.modified %} + <time class="modified" datetime="{{ article.modified.isoformat() }}"> + {{ article.locale_modified }} + </time> + {% endif %} + {% if article.authors %} + <address class="vcard author"> + By {% for author in article.authors %} + <a class="url fn" href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a> + {% endfor %} + </address> + {% endif %} + {% if article.category %} + <div class="category"> + Category: <a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a> + </div> + {% endif %} + {% if article.tags %} + <div class="tags"> + Tags: + {% for tag in article.tags %} + <a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a> + {% endfor %} + </div> + {% endif %} + </footer><!-- /.post-info --> + <div class="entry-content"> + {{ article.content }} + </div><!-- /.entry-content --> +</section> +{% endblock %} diff --git a/themes/nojs/templates/author.html b/themes/nojs/templates/author.html new file mode 100644 index 0000000..a190194 --- /dev/null +++ b/themes/nojs/templates/author.html @@ -0,0 +1,8 @@ +{% extends "index.html" %} + +{% block title %}{{ SITENAME }} - Articles by {{ author }}{% endblock %} + +{% block content_title %} +<h2>Articles by {{ author }}</h2> +{% endblock %} + diff --git a/themes/nojs/templates/authors.html b/themes/nojs/templates/authors.html new file mode 100644 index 0000000..9aee5db --- /dev/null +++ b/themes/nojs/templates/authors.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} + +{% block title %}{{ SITENAME }} - Authors{% endblock %} + +{% block content %} + <h1>Authors on {{ SITENAME }}</h1> + <ul> + {% for author, articles in authors|sort %} + <li><a href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a> ({{ articles|count }})</li> + {% endfor %} + </ul> +{% endblock %} diff --git a/themes/nojs/templates/base.html b/themes/nojs/templates/base.html new file mode 100644 index 0000000..75cb3da --- /dev/null +++ b/themes/nojs/templates/base.html @@ -0,0 +1,69 @@ +<!DOCTYPE html> +<html lang="{% block html_lang %}{{ DEFAULT_LANG }}{% endblock html_lang %}"> +<head> + {% block head %} + <title>{% block title %}{{ SITENAME }}{% endblock title %}</title> + <meta charset="utf-8" /> + <link rel="stylesheet" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/{{ CSS_FILE }}" /> + {% if FEED_ALL_ATOM %} + <link href="{{ FEED_DOMAIN }}/{% if FEED_ALL_ATOM_URL %}{{ FEED_ALL_ATOM_URL }}{% else %}{{ FEED_ALL_ATOM }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Full Atom Feed" /> + {% endif %} + {% if FEED_ALL_RSS %} + <link href="{{ FEED_DOMAIN }}/{% if FEED_ALL_RSS_URL %}{{ FEED_ALL_RSS_URL }}{% else %}{{ FEED_ALL_RSS }}{% endif %}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Full RSS Feed" /> + {% endif %} + {% if FEED_ATOM %} + <link href="{{ FEED_DOMAIN }}/{%if FEED_ATOM_URL %}{{ FEED_ATOM_URL }}{% else %}{{ FEED_ATOM }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Atom Feed" /> + {% endif %} + {% if FEED_RSS %} + <link href="{{ FEED_DOMAIN }}/{% if FEED_RSS_URL %}{{ FEED_RSS_URL }}{% else %}{{ FEED_RSS }}{% endif %}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" /> + {% endif %} + {% if CATEGORY_FEED_ATOM and category %} + <link href="{{ FEED_DOMAIN }}/{% if CATEGORY_FEED_ATOM_URL %}{{ CATEGORY_FEED_ATOM_URL|format(category.slug) }}{% else %}{{ CATEGORY_FEED_ATOM|format(category.slug) }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Categories Atom Feed" /> + {% endif %} + {% if CATEGORY_FEED_RSS and category %} + <link href="{{ FEED_DOMAIN }}/{% if CATEGORY_FEED_RSS_URL %}{{ CATEGORY_FEED_RSS_URL|format(category.slug) }}{% else %}{{ CATEGORY_FEED_RSS|format(category.slug) }}{% endif %}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Categories RSS Feed" /> + {% endif %} + {% if TAG_FEED_ATOM and tag %} + <link href="{{ FEED_DOMAIN }}/{% if TAG_FEED_ATOM_URL %}{{ TAG_FEED_ATOM_URL|format(tag.slug) }}{% else %}{{ TAG_FEED_ATOM|format(tag.slug) }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Tags Atom Feed" /> + {% endif %} + {% if TAG_FEED_RSS and tag %} + <link href="{{ FEED_DOMAIN }}/{% if TAG_FEED_RSS_URL %}{{ TAG_FEED_RSS_URL|format(tag.slug) }}{% else %}{{ TAG_FEED_RSS|format(tag.slug) }}{% endif %}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Tags RSS Feed" /> + {% endif %} + {% endblock head %} +</head> + +<body id="index" class="home"> + <header id="banner"> + <a name="banner" href="{{ SITEURL }}/"><img src="{{ static }}/images/brigadadigital-banner.png" title="Início" alt="Logo Brigada Digital"/></a> + </header><!-- /#banner --> + <nav id="menu" class="body"><ul> + {% for title, link in MENUITEMS %} + <li><a href="{{ link }}">{{ title }}</a></li> + {% endfor %} + {% if DISPLAY_PAGES_ON_MENU %} + {% for p in pages %} + <li{% if p == page %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></li> + {% endfor %} + {% endif %} + {% if DISPLAY_CATEGORIES_ON_MENU %} + {% for cat, null in categories %} + <li{% if cat == category %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ cat.url }}">{{ cat }}</a></li> + {% endfor %} + {% endif %} + </ul></nav><!-- /#menu --> + {% block content %} + {% endblock %} + <footer id="contentinfo" class="body"> + <a href="{{ SITEURL }}/"><img src="{{ static }}/images/brigadadigital-footer.png" title="Início" alt="Logo Brigada Digital"/></a> + <p>Associação sem fins lucrativos, Belo Horizonte, MG, CNPJ 64.479.229/0001-33.</p> + <p style="padding: 10px;">Site livre de cookies e javascript, sob a licença <a href="https://creativecommons.org/licenses/by-nd/4.0/deed.pt-br" target="_blank" title="Saiba mais sobre a licença">CC BY-ND 4.0</a>.</p> + <address id="about" class="vcard body"> + Desenvolvido em <a href="http://getpelican.com/" target="_blank" title="Site do projeto Pelican">Pelican</a>, + que tira proveito de <a href="http://python.org" target="_blank" title="site do projeto Python">Python</a>. + </address><!-- /#about --> + {% if FEED_ALL_ATOM %} + <p style="padding: 10px;"><a href="{{ FEED_DOMAIN }}/{% if FEED_ALL_ATOM_URL %}{{ FEED_ALL_ATOM_URL }}{% else %}{{ FEED_ALL_ATOM }}{% endif %}" type="application/atom+xml" target="_blank" rel="alternate" title="Feed completo em Atom">Feed/Atom</a>.</p> + {% endif %} + </footer><!-- /#contentinfo --> +</body> +</html> diff --git a/themes/nojs/templates/categories.html b/themes/nojs/templates/categories.html new file mode 100644 index 0000000..7999de4 --- /dev/null +++ b/themes/nojs/templates/categories.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} + +{% block title %}{{ SITENAME }} - Categories{% endblock %} + +{% block content %} + <h1>Categories on {{ SITENAME }}</h1> + <ul> + {% for category, articles in categories|sort %} + <li><a href="{{ SITEURL }}/{{ category.url }}">{{ category }}</a> ({{ articles|count }})</li> + {% endfor %} + </ul> +{% endblock %} diff --git a/themes/nojs/templates/category.html b/themes/nojs/templates/category.html new file mode 100644 index 0000000..a9a105d --- /dev/null +++ b/themes/nojs/templates/category.html @@ -0,0 +1,8 @@ +{% extends "index.html" %} + +{% block title %}{{ SITENAME }} - {{ category }} category{% endblock %} + +{% block content_title %} +<h2>{{ category }}</h2> +{% endblock %} + diff --git a/themes/nojs/templates/gosquared.html b/themes/nojs/templates/gosquared.html new file mode 100644 index 0000000..49ccbbe --- /dev/null +++ b/themes/nojs/templates/gosquared.html @@ -0,0 +1,14 @@ +{% if GOSQUARED_SITENAME %} +<script type="text/javascript"> + var GoSquared={}; + GoSquared.acct = "{{ GOSQUARED_SITENAME }}"; + (function(w){ + function gs(){ + w._gstc_lt=+(new Date); var d=document; + var g = d.createElement("script"); g.type = "text/javascript"; g.async = true; g.src = "https://d1l6p2sc9645hc.cloudfront.net/tracker.js"; + var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(g, s); + } + w.addEventListener?w.addEventListener("load",gs,false):w.attachEvent("onload",gs); + })(window); +</script> +{% endif %} diff --git a/themes/nojs/templates/home.html b/themes/nojs/templates/home.html new file mode 100644 index 0000000..74aeaa5 --- /dev/null +++ b/themes/nojs/templates/home.html @@ -0,0 +1,50 @@ +{% extends "base.html" %} +{% block html_lang %}{{ page.lang }}{% endblock %} + +{% block title %}{{ SITENAME }} - {{ page.title }}{%endblock%} + +{% block head %} + {{ super() }} + + {% import 'translations.html' as translations with context %} + {% if translations.entry_hreflang(page) %} + {{ translations.entry_hreflang(page) }} + {% endif %} +{% endblock %} + +{% block content %} +<section id="home" class="body"> + {% import 'translations.html' as translations with context %} + {{ translations.translations_for(page) }} + + {{ page.content }} + +</section> + +<section id="home" class="body blog" style="border-top: 2px solid #CC0000; background: #CC0000;"> + <div> + <h3>Blog <a href="#banner" title="Topo da Página">^</a></h3> + </div> + <div> + {% for article in articles[:3] %} + <article> + <header> <h4><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h4> </header> + <footer> + <time class="published" datetime="{{ article.date.isoformat() }}"> {{ article.locale_date }} </time> + <address class="vcard author">By + {% for author in article.authors %} + <a class="url fn" href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a> + {% endfor %} + </address> + </footer><!-- /.post-info --> + <p> {{ article.summary }} </p><!-- /.entry-content --> + </article> + {% endfor %} + </div><!-- /#posts-list --> + <div style="text-align: center; padding-bottom: 15px;"> + <a href="/category/blog.html"><button class="button"><b>Leia mais...</b></button></a> + </div> +</section> + +{% endblock %} + diff --git a/themes/nojs/templates/home.html~ b/themes/nojs/templates/home.html~ new file mode 100644 index 0000000..bc13ba1 --- /dev/null +++ b/themes/nojs/templates/home.html~ @@ -0,0 +1,50 @@ +{% extends "base.html" %} +{% block html_lang %}{{ page.lang }}{% endblock %} + +{% block title %}{{ SITENAME }} - {{ page.title }}{%endblock%} + +{% block head %} + {{ super() }} + + {% import 'translations.html' as translations with context %} + {% if translations.entry_hreflang(page) %} + {{ translations.entry_hreflang(page) }} + {% endif %} +{% endblock %} + +{% block content %} +<section id="home" class="body"> + {% import 'translations.html' as translations with context %} + {{ translations.translations_for(page) }} + + {{ page.content }} + +</section> + +<section id="home" class="body" style="color: background: #CC0000;"> + <div style="background: #CC0000;"> + <h2>Blog</h2> + </div> + <ol id="content" class="container" style="background: #CC0000;"> + {% for article in articles[:4] %} + <li><article class="features"> + <header> <h4><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h4> </header> + <footer> + <time class="published" datetime="{{ article.date.isoformat() }}"> {{ article.locale_date }} </time> + <address class="vcard author">By + {% for author in article.authors %} + <a class="url fn" href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a> + {% endfor %} + </address> + </footer><!-- /.post-info --> + <p> {{ article.summary }} </p><!-- /.entry-content --> + </article></li> + {% endfor %} + </ol><!-- /#posts-list --> + <div style="background: #CC0000; text-align: center; padding-bottom: 15px;"> + <a href="/category/blog.html"><button class="button"><b>Leia mais...</b></button></a> + </div> +</section> + +{% endblock %} + diff --git a/themes/nojs/templates/index.html b/themes/nojs/templates/index.html new file mode 100644 index 0000000..d678ba2 --- /dev/null +++ b/themes/nojs/templates/index.html @@ -0,0 +1,28 @@ +{% extends "base.html" %} +{% block content %} +<section id="content"> +{% block content_title %} +<h2>Artigos</h2> +{% endblock %} + +<ol id="post-list"> +{% for article in articles_page.object_list %} + <li><article class="hentry"> + <header> <h2 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2> </header> + <footer class="post-info"> + <time class="published" datetime="{{ article.date.isoformat() }}"> {{ article.locale_date }} </time> + <address class="vcard author">By + {% for author in article.authors %} + <a class="url fn" href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a> + {% endfor %} + </address> + </footer><!-- /.post-info --> + <div class="entry-content"> {{ article.summary }} </div><!-- /.entry-content --> + </article></li> +{% endfor %} +</ol><!-- /#posts-list --> +{% if articles_page.has_other_pages() %} + {% include 'pagination.html' %} +{% endif %} +</section><!-- /#content --> +{% endblock content %} diff --git a/themes/nojs/templates/page.html b/themes/nojs/templates/page.html new file mode 100644 index 0000000..4570d47 --- /dev/null +++ b/themes/nojs/templates/page.html @@ -0,0 +1,29 @@ +{% extends "base.html" %} +{% block html_lang %}{{ page.lang }}{% endblock %} + +{% block title %}{{ SITENAME }} - {{ page.title }}{%endblock%} + +{% block head %} + {{ super() }} + + {% import 'translations.html' as translations with context %} + {% if translations.entry_hreflang(page) %} + {{ translations.entry_hreflang(page) }} + {% endif %} +{% endblock %} + +{% block content %} +<section id="content" class="body"> + <h2>{{ page.title }}</h2> + {% import 'translations.html' as translations with context %} + {{ translations.translations_for(page) }} + + {{ page.content }} + + {% if page.modified %} + <p> + Last updated: {{ page.locale_modified }} + </p> + {% endif %} +</section> +{% endblock %} diff --git a/themes/nojs/templates/pagination.html b/themes/nojs/templates/pagination.html new file mode 100644 index 0000000..4219a5c --- /dev/null +++ b/themes/nojs/templates/pagination.html @@ -0,0 +1,11 @@ +{% if DEFAULT_PAGINATION %} +<p class="paginator"> + {% if articles_page.has_previous() %} + <a href="{{ SITEURL }}/{{ articles_previous_page.url }}">«</a> + {% endif %} + Page {{ articles_page.number }} / {{ articles_paginator.num_pages }} + {% if articles_page.has_next() %} + <a href="{{ SITEURL }}/{{ articles_next_page.url }}">»</a> + {% endif %} +</p> +{% endif %} diff --git a/themes/nojs/templates/period_archives.html b/themes/nojs/templates/period_archives.html new file mode 100644 index 0000000..e1ddf62 --- /dev/null +++ b/themes/nojs/templates/period_archives.html @@ -0,0 +1,14 @@ +{% extends "base.html" %} + +{% block title %}{{ SITENAME }} - {{ period | reverse | join(' ') }} archives{% endblock %} + +{% block content %} +<h1>Archives for {{ period | reverse | join(' ') }}</h1> + +<dl> +{% for article in dates %} + <dt>{{ article.locale_date }}</dt> + <dd><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></dd> +{% endfor %} +</dl> +{% endblock %} diff --git a/themes/nojs/templates/tag.html b/themes/nojs/templates/tag.html new file mode 100644 index 0000000..9c95803 --- /dev/null +++ b/themes/nojs/templates/tag.html @@ -0,0 +1,7 @@ +{% extends "index.html" %} + +{% block title %}{{ SITENAME }} - {{ tag }} tag{% endblock %} + +{% block content_title %} +<h2>Articles tagged with {{ tag }}</h2> +{% endblock %} diff --git a/themes/nojs/templates/tags.html b/themes/nojs/templates/tags.html new file mode 100644 index 0000000..b90b0ac --- /dev/null +++ b/themes/nojs/templates/tags.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} + +{% block title %}{{ SITENAME }} - Tags{% endblock %} + +{% block content %} + <h1>Tags for {{ SITENAME }}</h1> + <ul> + {% for tag, articles in tags|sort %} + <li><a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a> ({{ articles|count }})</li> + {% endfor %} + </ul> +{% endblock %} diff --git a/themes/nojs/templates/translations.html b/themes/nojs/templates/translations.html new file mode 100644 index 0000000..f0e2478 --- /dev/null +++ b/themes/nojs/templates/translations.html @@ -0,0 +1,16 @@ +{% macro translations_for(article) %} +{% if article.translations %} +Translations: +{% for translation in article.translations %} +<a href="{{ SITEURL }}/{{ translation.url }}" hreflang="{{ translation.lang }}">{{ translation.lang }}</a> +{% endfor %} +{% endif %} +{% endmacro %} + +{% macro entry_hreflang(entry) %} +{% if entry.translations %} + {% for translation in entry.translations %} + <link rel="alternate" hreflang="{{ translation.lang }}" href="{{ SITEURL }}/{{ translation.url }}"> + {% endfor %} +{% endif %} +{% endmacro %} |
