Vaga-lume III – Gerente de Finanças Pessoais

Suponho que talvez muitos de vocês o conheçam, Firefly III é um serviço que podemos usar para gerenciar nossas finanças. Um gerente que nos ajudará a entender nossas contas bancárias, Seremos capazes de entender facilmente para onde está indo nosso dinheiro, Claro, código aberto e local!

Poço, Bem, é isso, Se você precisa ter mais visibilidade sobre suas contas bancárias, ou ter um maior monitoramento de receitas e despesas, O FireFly III tem ajudado nesse sentido há anos. Nós tê-lo-emos instalado em menos do que 5 minutos graças ao Docker!

Existem várias maneiras de instalar o Firely III (e configurá-lo), com base no que precisamos; neste caso, instalaremos o Firefly III em um contêiner Docker, Antes de prosseguir, baixamos os arquivos necessários e os adaptamos às nossas necessidades:

wget https://raw.githubusercontent.com/firefly-iii/docker/main/docker-compose-importer.yml -O docker-compose.yml wget https://raw.githubusercontent.com/firefly-iii/firefly-iii/main/.env.example -O .env wget https://raw.githubusercontent.com/firefly-iii/docker/main/database.env -O .db.env wget https://raw.githubusercontent.com/firefly-iii/data-importer/main/.env.example -O .importer.env

Editamos o arquivo '.env’ e pelo menos vamos modificar o APP_KEY, Locais e credenciais de acesso ao banco de dados MySQL, já que este arquivo terá a maior parte da configuração, a parte de e-mail, se quisermos notificações…

APP_KEY=secretrode32characters DEFAULT_LANGUAGE=es_ES TZ=Europa/Madrid
...
DB_USERNAME=USUARIO_BD DB_PASSWORD=CONTRASEÑA_USUARIO_BD
...

Editamos o arquivo '.db.env’ e pelo menos modificar as credenciais de acesso ao banco de dados (o mesmo que na etapa anterior):

MYSQL_USER=USUARIO_BD MYSQL_PASSWORD=CONTRASEÑA_USUARIO_BD

Último, se estivermos interessados em ter o contêiner para importar dados para o Firefly, editamos '.importer.env’ (E se não, nós ignoramos isso). E indicaremos o endereço IP ou FQDN do servidor Firefly III, assim como escolheremos a maneira de nos autenticar, geralmente com o Access Token (mais tarde veremos como gerá-lo):

FIREFLY_III_URL=http://IP_O_FQDN_FIREFLY_III FIREFLY_III_ACCESS_TOKEN=ey...
TZ=Europa/Madri

E acabamos editando o 'docker-compose.yml’ Se estivermos interessados em fazer alguma alteração, No meu caso eu só abri as portas, 80tcp para FireFly III, 81tcp para o importador e, claro, o 3306 Deixo aberto para consultar o MySQL de fora, por exemplo, do Grafana, Ficar:

Serviços:
...
  Aplicação:
...
    Portas:
      - '80:8080'
...
...
  Db:
...
    Portas:
      - '3306:3306'
...
...
  Importador:
...
    Portas:
      - '81:8080'
...

E, Terminamos levantando os contêineres:

docker compose -f docker-compose.yml up -d --pull=sempre

Agora poderemos acessar o site do Firefly iii, neste caso, publicado na porta 80tcp do IP do host do Docker, Então HTTP://DIRECCION_IP_O_FQDN e na primeira vez que fizermos login, temos que criar uma conta, Fornecemos nosso endereço de e-mail e uma senha & “Registro”,

Assim que entrarmos, teremos que registrar nosso primeiro banco, e podemos começar a dar uma olhada no aplicativo, mas sem dados é um pouco pobre… Portanto, o próximo passo será importar os dados do nosso banco!

Em primeiro lugar, devemos decidir o tipo de autenticação que usaremos no contêiner 'Firefly III Data Impor Tool', a coisa mais fácil é gerar um Token de Acesso Pessoal do Firefly III e indicá-lo no '.importer.env’

Se regenerarmos os contêineres e nos conectarmos ao site da 'Firefly III Data Impor Tool'’ (No meu caso, na porta 81tp) Poderemos iniciar o processo de importação, Clique em “Importar arquivo”,

Em 'Arquivo importável'’ deixaremos o arquivo CSV que baixaremos do nosso banco, com toda a história que nos interessa dos movimentos. O arquivo de configuração opcional que nos pede, por enquanto não teremos, Mas uma vez que terminamos este assistente, Poderemos gerá-lo, um arquivo JSON que será alimentado com as opções que escolheremos abaixo, “Próximo”,

Indicamos se o arquivo CSV tem cabeçalhos, se quisermos convertê-lo para UTF-8, o que é o delimitador CSV, Em qual banco vamos importá-lo do FireFly III, Formato de data… “Enviar”,

Dependendo das opções escolhidas acima, ele nos mostrará o conteúdo do nosso arquivo e separará as colunas… podemos ignorar as colunas que não estamos interessados em importar (É claro), e associar o papel de cada coluna, pelo menos importaremos os campos 'Data da transação', «Descrição’ e 'Quantidade'. “Enviar”,

Antes de começar, podemos clicar em “Baixar arquivo de configuração” para que não tenhamos que fazer esse assistente e lembrar o formato que ele tem, ou para automatizar essa importação no futuro. Clique em “Iniciar trabalho” Comece com,

Vemos como os movimentos CSV são importantes… Esperança…

Assim que terminar, ele nos dirá, perfeito!

Estamos começando a ter dados! Ole e Ole Rigodón! Agora poderemos ver qualquer relatório com mais detalhes, etc…

O seguinte, pode ser configurar as Categorias, Para saber para onde está indo nosso dinheiro! para que categorize cada movimento e diga se é uma hipoteca, Gastos em supermercados, gasolina, da Amazon…

Desde “Automação” > “Réguas” nós podemos criá-los, A configuração é simples, Damos um nome e quando queremos que seja ativado, quando detecta uma palavra na descrição, Por exemplo…

E aí deixo vocês com Firefly III, Algumas voltas que são muito simples; Em seguida, os pequenos queijos, Os relatórios são mais elegantes, Entendemos para onde nosso orçamento está indo de forma mais detalhada. Essas capturas de tela que você vê acima são de um aplicativo de código aberto que podemos instalar em nossos celulares (chamado Waterfly III) que se conecta ao FireFly III e talvez seja mais confortável…

E… Espere, não terminamos! Você se lembra que no contêiner do banco de dados MySQL deixamos o 3306tcp aberto? Bem, com as credenciais de acesso podemos conectar e fazer consultas, como estamos interessados e vê-lo de uma forma bonita e para provar a partir de Grafana, Por categorias, ou simplesmente os movimentos… mas não só para vê-lo do Grafana, mas com o quão nerd eu sou, Eu gero um PDF e essa informação vem a mim nele, entre outras coisas, como detalhes interessantes do Home Assistant (estatística…)

A propósito, Os números que vemos, Eles são falsos, além do fato de que eles estão meio cobertos para que você não conheça as figuras que eu manuseio, Não posso dizer publicamente quantos milhões tenho). Vir, direto ao ponto, aquele que precisa de consultas MySQL:

  • Gráfico com total:
SELECT tj.date como hora, "Total" como métrica, SOMA(t.montante) SOBRE (ORDENAR POR tj.date ASC) COMO valor DAS transações t INNER JOIN transaction_journals TJ EM t.transaction_journal_id = tj.id ONDE t.account_id = ORDEM 'TU_ID_DEL_BANCO' POR tj.date ASC;

  • Gráfico com movimentos:
SELECT tj.date como hora, t.montante como valor, tj.description como métrica DAS transações t INNER JOIN transaction_journals TJ ON t.transaction_journal_id = tj.id ONDE t.account_id = 'TU ID DEL BANCO' ORDER BY tj.date ASC;

  • Tabela de Movimento:
SELECT t.montante, tj.description, ESQUERDA(tj.date, 10) Até à data, SOMA(t.montante) SOBRE (ORDENAR POR tj.date ASC) AS Total DAS transações t INNER JOIN transaction_journals TJ ON t.transaction_journal_id = tj.id ONDE t.account_id = 'TU ID DEL BANCO' ORDER BY date desc;

E espero que eu esqueça a coisa mais importante! Como automatizamos isso? Bem, se você tiver sorte e seu banco permitir que você se conecte de alguma forma,, por API, etc… Nada mau, caso contrário, Existe algum serviço de terceiros (Pago e externo) que podem ajudá-lo… Outra forma é baixarmos manualmente os arquivos semanalmente e deixá-los sempre no mesmo caminho, em seguida, um script os importa (Há um contêiner cron), ou usando uma ferramenta que registra os cliques, Faça login no banco e gere o relatório… Este último é minha escolha pessoal. É realmente uma porcaria, Tenho uma VM isolada, Sem acesso à internet (nada além dos sites dos bancos)… e uma pequena tarefa é executada diariamente (Tomar cuidado) que gera os relatórios, como cada banco pertence ao seu pai, alguns são gerados em CSV, outros em XLS e outros em XLSX (toque no seu…) Por isso deixo-vos algumas dicas que tenho num script que vos podem ajudar:

#Converta de XLSX para CSV e use o ; como separador:
    xlsx2csv -d ';' fichero.xlsx fichero.csv #Convierte de XLS a CSV sin perder el formato de las fechas:
    libreoffice --convert-to csv fichero.xls #Borra o primeiro 15 Linhas:
    sed -i '1,15d' fichero.csv #Importa el csv que hay en la carpeta atual con el JSON de configuración, Ambos os arquivos têm o mesmo nome:
    sudo docker run --rm -v $PWD:/import -e FIREFLY_III_ACCESS_TOKEN=ey... -e IMPORT_DIR_ALLOWLIST=/import -e FIREFLY_III_URL=http://IP_FQDN_FIREFLY_III -e WEB_SERVER=false fireflyiii/importador de dados:mais recente

Com este último comando vamos importar o CSV para o Banco indicado no JSON uma maravilha! Evitando movimentos duplicados, etc… O mais recente (E é isso de verdade), as consultas MySQL que vimos antes, eles podem ser úteis para integrá-lo ao Home Assistant, e isso nos diz, enquanto tomamos café da manhã em nossos alto-falantes, o saldo que temos nas contas, bem como os movimentos mais recentes… Tecido de marinheiro!!!

Vir, Agora eu estou deixando você sozinho, Desejo-lhe muito, que você trabalhe pouco e ganhe muito 😉 um abraço!

Postagens recomendadas

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Não hesite em contactar-me, Vou tentar ajudá-lo sempre que puder, Compartilhar é viver ;) . Desfrute de documentos!!!