8000
Skip to content

funesomemorioso/metamemo

Repository files navigation

MetaMemo

Requisitos

  • Docker
  • Docker compose

Como usar

Primeiro, copie o .env-example para .env e edite o arquivo caso necessário. Para subir todos os serviços necessários, execute docker compose up -d na raiz do projeto. A primeira vez que o comando for executado irá demorar alguns minutos, dado que o docker compose precisará baixar algumas imagens e gerar a image do serviço web.

Quando tudo estiver rodando você poderá acompanhar os logs com docker compose logs -t e quando todos os serviços tiverem subido, basta acessar localhost:5000.

Configurações iniciais

Para criar a estrutura dos modelos no banco de dados, execute o bash dentro do container web com docker compose exec web bash e, dentro do container, execute:

python manage.py migrate

Para criar o usuário administrativo:

python manage.py createsuperuser

É necessário fazer a autenticação por 2 fatores no Telegram na primeira vez (o arquivo de sessão ficará salvo em settings.DATA_DIR e será reutilizado nas outras vezes que o programa rodar). Para isso, execute manualmente qualquer um dos comandos import_telegram e responda com o telefone e o código.

Refazendo a imagem

Caso seja necessário refazer a imagem do container web (por ter adicionado alguma dependência de sistema ou Python), basta executar:

docker compose stop web
docker compose rm -f web
docker compose build web  # em alguns casos, `--no-cache` pode ajudar
docker compose start web

Backup/restore do banco local

Para criar um backup da base de dados PostgreSQL local, execute dentro do container web:

# Para executar o bash no container, rode: docker compose exec web bash
pg_dump -F c -d $DATABASE_URL -f "metamemo-$(date +'%Y-%m-%d').dump"

Para restaurar usando o arquivo YYYY-MM-DD-metamemo.dump, execute dentro do container web:

# Para executar o bash no container, rode: docker compose exec web bash
pg_restore -d $DATABASE_URL YYY-MM-DD-metamemo.dump

Populando arquivos de mídia em storage

  1. Entre em http://storage:9001/

  2. Logue como admin / admin123

  3. Crie um bucket chamado metamemo

  4. Clique no bucked e mude a privacidade para public

  5. Acesse o container web com

docker compose exec web bash
  1. Execute o comando
./copy-media.sh 843356903808399_337035443_6190.xxoh00_AfDEN0TNPa5N1nZYOpjUVWCfgssHMWaqKMSxyT3YCXcjZAoe641F459F

Assim conseguimos copiar as mídias que precisarmos em desenvolvimento.

Listando nome de arquivos de mídia do banco de dados e copiando mídia

Ainda no container web executamos

echo "SELECT media FROM metamemoapp_memomedia WHERE media IS NOT NULL AND media <> '' ORDER BY id DESC LIMIT 10" | psql $DATABASE_URL | grep --color=no media/ | while read filename; do filename=$(basename $filename); ./copy-media.sh $filename; done

Aqui limitamos para 10 arquivos para poupar espaço na máquina de desenvolvimento mas isso pode ser alterado de acordo com as necessidades.

Também é possível especificar apenas arquivos do tipo .jpg ou qualquer outras extensões necessárias, por exemplo, alterando no WHERE AND media ILIKE '%.jpg'. Como segundo argumento é possível enviar o nome da pasta que vai ser gerada e feito o salvamento do arquivo definido, desse modo podemos baixar conteúdo da timeline por exemplo.

Deployment

Acesse deploy.md.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

0