Skip to content

Releases: bps2414/memcard

v0.7.0

Choose a tag to compare

@bps2414 bps2414 released this 06 Oct 16:57

Adicionado

  • Assistente de primeiro acesso na interface: encontra o PS5 (com campos de IP e sub-rede
    e orientação quando a busca falha), faz a primeira cópia e configura os avisos do Discord.
    Aparece uma vez, também em instalações que já têm backups; pode ser pulado em qualquer passo.
  • POST /api/setup e o campo setup em /api/overview, que dizem se o assistente deve aparecer.
  • Botão "Copiar diagnóstico" na aba Registro e no assistente, quando o PS5 não é encontrado.

English

Added

  • First-run wizard in the web interface: finds the PS5 (with IP and subnet fields and
    guidance when the search fails), runs the first backup and sets up Discord notifications.
    Shown once, including on installations that already have backups; it can be skipped at any step.
  • POST /api/setup and the setup field in /api/overview, which tell whether the wizard should show.
  • "Copy diagnostics" button in the Log tab and in the wizard, when the PS5 is not found.

v0.6.0

Choose a tag to compare

@bps2414 bps2414 released this 06 Oct 16:57

Adicionado

  • ps5backup diag e memcard.exe diag: diagnóstico FTP somente leitura, com versão,
    banner/respostas resumidos por privacidade, MLSD, contagens e RETR de teste.
  • GET /api/diag, protegido pelo mesmo login da API e com relatório em português ou inglês.
  • Tabela de compatibilidade nos dois idiomas e formulário de issue para novos relatos.

English

Added

  • ps5backup diag and memcard.exe diag: read-only FTP diagnostics with version,
    privacy-preserving banner/reply summaries, MLSD, counts and a test RETR.
  • GET /api/diag, protected by the same API login with Portuguese or English reports.
  • Compatibility tables in both languages and an issue form for new reports.

v0.5.0

Choose a tag to compare

@bps2414 bps2414 released this 06 Oct 16:57

Adicionado

  • Executável memcard.exe para Windows: dois cliques iniciam os backups e abrem a interface no navegador.
  • Workflow para gerar o executável com Python 3.13 e PyInstaller 6.22.3 em tags v*,
    com a interface embutida e SHA-256 anexado à release.
  • Instruções de download, SmartScreen, conferência de SHA-256 e início com o Windows nos dois README.

Alterado

  • No executável, config.toml e data/ ficam ao lado dele; sem argumentos, inicia o daemon.
  • A interface do executável escuta em 127.0.0.1; WEB_BIND permite trocar o endereço.
    Docker e código-fonte continuam usando 0.0.0.0 por padrão.
  • A porta web é reservada antes de iniciar o daemon. Se já estiver ocupada, uma segunda
    execução do executável só abre o navegador e termina com código 0.

English

Added

  • memcard.exe for Windows: a double-click starts backups and opens the web interface in your browser.
  • Workflow to build the executable with Python 3.13 and PyInstaller 6.22.3 on v* tags,
    with the interface bundled and SHA-256 attached to the release.
  • Download, SmartScreen, SHA-256 checking and Windows startup instructions in both README files.

Changed

  • In the executable, config.toml and data/ live next to it; with no arguments, it starts the daemon.
  • The executable's interface listens on 127.0.0.1; WEB_BIND allows changing the address.
    Docker and source runs still use 0.0.0.0 by default.
  • The web port is reserved before starting the daemon. If it is already in use, a second
    run of the executable only opens the browser and exits with code 0.

v0.4.2

Choose a tag to compare

@bps2414 bps2414 released this 06 Oct 16:57

Adicionado

  • Roda no Windows a partir do código-fonte, com Python 3.13 e sem Docker;
    instruções nos dois README.
  • Testes de backup contra um FTP de PS5 de mentira e matriz de testes no Windows e no Linux.

Corrigido

  • Travamento entre threads e processos no Windows, mantendo flock no Linux.
  • Config, JSON e log gravados e lidos em UTF-8, preservando nomes como "João".
  • Nomes de saves lidos do SQLite com URI válida no Windows e banco fechado antes da limpeza.
  • Gravação de JSON tenta novamente no Windows se uma leitura impedir a troca do arquivo.

English

Added

  • Runs on Windows from source, with Python 3.13 and without Docker;
    instructions in both README files.
  • Backup tests against a fake PS5 FTP server and a Windows/Linux test matrix.

Fixed

  • Locking between threads and processes on Windows, retaining flock on Linux.
  • Config, JSON and log files are written and read as UTF-8, preserving names such as "João".
  • Save names are read from SQLite with a valid Windows URI and the database is closed before cleanup.
  • JSON writes retry on Windows when a reader prevents replacing the file.

v0.4.1

Choose a tag to compare

@bps2414 bps2414 released this 05 Oct 21:59

Alterado

  • Procurar agora usa o IP e a sub-rede digitados em Ajustes (mesmo sem salvar) e a busca
    também tenta 192.168.1.0/24 e 192.168.0.0/24, então funciona com o endereço vazio ou errado.

Corrigido

  • Trocar o IP ou a porta nos ajustes agora marca o PS5 como offline em até uma sondagem
    (~13 s), em vez de esperar as 3 falhas seguidas (~40 s); a busca automática só roda depois
    de o status atualizar.
  • host vazio não conecta mais na própria máquina (aparecia como "PS5 ligado em .").

English

Changed

  • Find now uses the IP and subnet typed in Settings (even unsaved) and the scan also
    tries 192.168.1.0/24 and 192.168.0.0/24, so it works with an empty or wrong address.

Fixed

  • Changing the IP or port in Settings now marks the PS5 offline within one probe (~13 s)
    instead of waiting for 3 consecutive failures (~40 s); automatic discovery only runs
    after the status has updated.
  • An empty host no longer connects to the local machine (it showed as "PS5 on at .").

v0.4.0

Choose a tag to compare

@bps2414 bps2414 released this 05 Oct 21:48

Adicionado

  • Busca automática do PS5 na rede: quando o console não responde, o daemon varre a
    sub-rede (portas 2121, 1337 e 21), confirma com FTP anônimo em /user/home e
    grava host e ftp_port no config.toml. Repete a cada 5 minutos.
  • Botão Procurar agora em Ajustes, rota /api/discover e comando ps5backup discover.
  • Chaves ps5.auto_discover (padrão true) e ps5.subnet (vazio = o /24 do host).
  • Atualização automática: o compose.yml traz o Watchtower, que a cada 15 minutos
    baixa a imagem nova da main e recria o container.
  • CHANGELOG.md e versão do app (VERSION, ps5backup --version, linha de log ao iniciar).

English

Added

  • Automatic PS5 discovery: when the console stops responding, the daemon scans the
    subnet (ports 2121, 1337 and 21), confirms with anonymous FTP on /user/home and
    writes host and ftp_port to config.toml. Retries every 5 minutes.
  • Find now button in Settings, the /api/discover route and the ps5backup discover command.
  • Keys ps5.auto_discover (default true) and ps5.subnet (empty = the /24 of host).
  • Automatic updates: compose.yml ships Watchtower, which pulls the new main image
    every 15 minutes and recreates the container.
  • CHANGELOG.md and an app version (VERSION, ps5backup --version, a log line on start).

v0.3.0

Choose a tag to compare

@bps2414 bps2414 released this 05 Oct 21:48

Adicionado

  • Imagem pronta no GitHub Container Registry (ghcr.io/bps2414/memcard, amd64 e arm64),
    publicada a cada push na main.
  • Workflow do GitHub Actions que roda os testes.

Alterado

  • O projeto passa a se chamar Memcard.

English

Added

  • Ready-made image on the GitHub Container Registry (ghcr.io/bps2414/memcard, amd64 and arm64),
    published on every push to main.
  • GitHub Actions workflow that runs the tests.

Changed

  • The project is now called Memcard.

v0.2.0

Choose a tag to compare

@bps2414 bps2414 released this 05 Oct 21:48

Adicionado

  • Resumo semanal no Discord (notify.weekly_summary): tempo de jogo por jogo e perfil, e espaço.
  • Senha opcional na interface (WEB_PASSWORD), cobrindo páginas, API, artes e downloads;
    cinco senhas erradas bloqueiam o endereço por 5 minutos.
  • Conferência de integridade agendada (triggers.verify_interval_days): refaz o checksum
    das versões guardadas e só avisa se alguma não bater.
  • Janela do "jogando agora" configurável (notify.now_playing_minutes).
  • Interface e avisos em inglês, com README.en.md e a chave notify.language.
  • Testes automáticos (unittest) das regras de retenção, da limpeza, da validação do
    config, da projeção e da interface.
  • ROADMAP.md.

Alterado

  • Discord: mensagem nova quando o PS5 liga e resumo novo quando desliga (editar não
    notifica); a mensagem da sessão mostra o que está sendo jogado agora.
  • Quedas rápidas de rede não geram aviso: só vale como desligado após
    triggers.offline_grace_seconds.
  • Varredura dos saves a cada 30 s, com confirmação em 10 s quando há mudança pendente.

Corrigido

  • Msg/tr quebravam com erros de configuração que têm o campo key.

English

Added

  • Weekly Discord summary (notify.weekly_summary): play time per game and profile, and disk space.
  • Optional web UI password (WEB_PASSWORD), covering pages, API, artwork and downloads;
    five wrong passwords block the address for 5 minutes.
  • Scheduled integrity check (triggers.verify_interval_days): recomputes the checksum of
    every stored version and only alerts if one does not match.
  • Configurable "playing now" window (notify.now_playing_minutes).
  • UI and alerts in English, with README.en.md and the notify.language key.
  • Automated tests (unittest) for retention rules, cleanup, config validation, the
    projection and the UI.
  • ROADMAP.md.

Changed

  • Discord: a new message when the PS5 turns on and a fresh summary when it turns off
    (editing does not notify); the session message shows what is being played now.
  • Short network drops no longer raise an alert: the console only counts as off after
    triggers.offline_grace_seconds.
  • Saves are scanned every 30 s, with a 10 s confirmation when a change is pending.

Fixed

  • Msg/tr broke on config errors that carry a key field.

v0.1.0

Choose a tag to compare

@bps2414 bps2414 released this 05 Oct 21:48

Primeira versão.

Adicionado

  • Backup versionado dos saves do PS5, só leitura, pelo ftpsrv (FTP), com checksum SHA-256 por versão.
  • Gatilhos: save alterado, PS5 ligou, agendamento e manual.
  • Retenção que rareia versões antigas em vez de apagar por idade, com lixeira, versões
    fixadas, intervalo mínimo por sessão e aviso de espaço.
  • Avisos no Discord por sessão de jogo.
  • Interface web: cartões por perfil, um bloco por jogo, histórico por save, download,
    ajustes e registro agrupado por sessão.
  • Painel: mapa de uso do console, tempo de jogo estimado, espaço por jogo e projeção
    de 12 meses simulada com as regras reais de retenção.

English

First release.

Added

  • Versioned, read-only backup of PS5 saves over ftpsrv (FTP), with a SHA-256 checksum per version.
  • Triggers: save changed, PS5 turned on, schedule and manual.
  • Retention that thins old versions instead of deleting by age, with a trash folder, pinned
    versions, a minimum gap per session and a space warning.
  • Discord alerts per play session.
  • Web UI: one card per profile, one block per game, per-save history, downloads,
    settings and a log grouped by session.
  • Dashboard: console usage map, estimated play time, space per game and a 12-month
    projection simulated with the real retention rules.