BAOBÁXIA
NA ROTA DOS BAOBÁS
. ,d . , aA... YF^ *@@@b d@P *@@@b,,,,,-d@@P , , ....a@@@@aa.. *@@V@`;;..,, ,*, ,* `V*' ``*@@B`b b@((bb`@@P*q*@@*"' `*@`9@,(()))*' `*. `A@,`@@Y@(;' (a`@,`@`&@ ."@,@`.@(@@ (@a.@",@^a., ,.o..o@ (@o.` (*",.`*@@o`*@, "Vamos fazer um mundo digital ,',@***@a,,`^*., mais do nosso jeito!" ,&^,@@@@@a,`a., &`@`,;aaaa @; )@ NPDD/Rede Mocambos c@(.@".;'".@",@@" @@ @",@`.@*`,@@`, @P,@,*@a, ,a@*`,@ , *(`*@@a.,*@*`,@*` ,;a&*"` .;a@@ *;,'o,`*@@a;@@P`, oo..,, ,.;a@@@*"` ,;a@@*"` , *"`7`,"a,`"*",d) **oo..`""*oo., ,;@@@@@@*` ,;d@@@@P` ,.@@b *@b`"@a,`"*@@@` ~*o..,`""*oo,."*@a, @@@@@@@@b `*@@@@@;, `'"*@, "*@@a`*@@&;,` ~*o.,, `"@a, `*@b,`*@a `"*@@@@@@b. `"*o@@@@a;, `"*o,,`` `""*@@@b;.`"*, `@@ `@@; `*, `"*@@@@@@b. ``*o@@@@@@;, `"*ooo**'` ,;o@* `@ @@@; `"*@@@@@@@b., ``"***oo@@oo;,,,,,;;o@@*'` ,;o@ `@@@@, `"*@@@@@@@@@b.,, ,;o@@@@ @@@@@ `"*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@P* ,@@@@@ ````````''''''''''''''''''''``` ,...;@@@@P*` ```'"""```
Publicado sob GNU/GPLv3.
Introdução
“A ideia nasce da referência do Baobá, árvore que vive milhares de anos e representa simbolicamente a memória coletiva ligada ao território. Baobáxia é a união de baobá com galáxia. Uma galáxia de memórias coletivas locais ligadas ao território. A galáxia liga também com as estrelas, que por sua vez são ligadas a Casa de Cultura Tainã, que em tupi-guarani significa caminho das estrelas. Baobáxia vira bbx, tirando as vocais, que remete ao acrônimo bbs que eram os nos de uma antiga rede de computadores.”
Baobáxia é um sistema de gestão descentralizada de repositórios compartilhados dentro de uma rede denominada rota, a Rota dos Baobás. As instâncias que controlam os repositórios, denominadas Mucuas, que também é o nome do fruto do Baobá, gerenciam os repositórios a partir de uma API de metadados exposta como rest, atuando sobre repositórios sincronizados.
São pontos de atenção do projeto a eficácia no compartilhamento de dados em redes instáveis e de baixa disponibilidade e a eficiência no uso do hardware local visando facilitar o acesso a equipamentos com potencial de serem Mucuas.
Apoio
A partir de dezembro de 2019 o projeto conta com apoio da FAPESP atravez do projeto: Siwazi Rowaihuuze Auwe - rede de informação Xavante: conectividade, gestão de dados e apropriação da internet por povos indígenas.
Processo: 18/23094-4
Conceitos básicos
A Baobáxia funciona como uma plataforma federada (usuáries se conectam a instâncias diferentes e essas conectam-se entre si) e rizomática (as instâncias funcionam de forma independente e descentralizada). Para além disso, os conceitos próprios da Baobáxia são descritos, tanto em termos leigos quanto técnicos, neste documento.
Instalação
Instalação do ambiente de desenvolvimento
Requisitos
- git
- git-annex*
- python 3
- pip
- virtualenv
- A versão do git-annex dos repositórios APT pode estar desatualizada. Neste caso podemos utilizar a versão do Neurodebian.
Instruções para instalar o git-annex pelo Neurodebian:
Após configurar o repositório, rodar:
apt update
apt install git-annex-standalone
Preparação do ambiente
Inicialmente, na pasta desejada, clonar o ambiente com:
git clone <url_do_ambiente>.git
Antes de entrar na pasta baixada, preparar o ambiente virtual:
virtualenv venv-bbx
. ./venv-bbx/bin/activate
Instalação das dependências
Na pasta do projeto, ativar o ambiente virtual e rodar o pip
:
cd baobaxia-mucua
pip install -r requirements/dev.txt
Configuração inicial da Mucua
A mucua deve estar em execução. Em um novo terminal, na pasta do projeto, ativar e entrar no console do Python:
cd baobaxia-mucua
. ./bin/activate
python3
Dentro do console do Python, importar e rodar o instalador interativo:
from baobaxia.install import install_interactive
install_interactive()
Preencher as informações necessárias para o instalador:
-
Caminho do diretório de dados: pasta onde ficarão os repositórios (ex.:
/home/user/.bbx/data
) -
Nome do balaio: nome do repositório compartilhado entre as mucuas (ex.:
Rede Mocambos
) -
Nome da mucua: nome da instância local da Baobáxia, usar algo significativo para a comunidade ou coletivo que vai alimentar a mucua (ex.:
Abdias
) -
Nome de usuário: username da/o mocambola padrão (ex.:
exu
) -
E-mail: e-mail da/o mocambola padrão (ex.:
exu@mocambos.net
) - Senha: senha da/o mocambola padrão
Configurações de chave primária (ver detalhes abaixo)
-
Tamanho da chave aleatória (smid): tamanho, em caracteres, do identificador gerado aleatoriamente para os saberes (ex.:
7
) -
Tamanho do nome na chave primária: número de caracteres do nome do Saber que será usado para compor o slug (ex.:
20
) -
Tamanho da chave aleatória na chave primária: número de caracteres do identificador aleatório que será utilizado para compor o slug (ex.:
7
) -
Separador da chave primária: caracter que será usado para separar o nome do identificador aleatório quando montar o slug (ex.:
-
)
Execução da mucua
Caso o ambiente virtual não esteja ativo:
cd baobaxia-mucua
. ./bin/activate
Executar o Uvicorn (em primeiro plano, terminal fica dedicado e logs são escritos no stdout):
uvicorn baobaxia.acervo:api --host 0.0.0.0 --port 8000 --reload
A porta pode ser alterada conforme sua preferência.
A flag --reload
instrui o Uvicorn a monitorar os arquivos e recarregar a mucua quando houver alterações.
Chave primária: idenficador aleatório (smid) e slug
O identificador aleatório (small id ou smid
) é gerado automaticamente pela plataforma e serve como chave primária para os saberes. O número de caracteres dessa chave deve ser suficiente para evitar colisão.
O slug é o identificador composto, usado para que o caminho do Saber seja mais intuitivo para quem está acessando o sistema. Por exemplo, o balaio chamado Rede Mocambos que receber um identificador aleatório A1B2C3D teria um slug parecido com rede-mocambos-A1B2C3D
.
Instalação com docker
A instalação via docker está desatualizada, para desenvolvimento, usar "Instalação do ambiente de desenvolvimento".
Criar a imagem com dados padrões da Casa de Cultura Tainã:
sudo docker build -t bbx-fastapi .
Criar a imagem com dados personalizados:
sudo docker build -t bbx-fastapi \
--build-arg BALAIO='Nosso Balaio' \
--build-arg EMAIL='a-gente@email.net' \
--build-arg MOCAMBO='Comunidade' \
--build-arg MOCAMBOLA='mocambola' \
--build-arg MUCUA='Itinerante' \
--build-arg SENHA='tem que trocar' .
e iniciar com
sudo docker run --name xango1 -p 80:80 bbx-fastapi
Pronto, agora você já tem a API de Baobáxia rodando e possui uma mucua criada.