Projeto open source para executar o Brasfoot em container, com acesso via navegador usando a base LinuxServer Selkies. 🖥️🌐
O objetivo é facilitar o uso remoto do jogo, sem precisar montar manualmente um ambiente gráfico Linux no host. 💻🕹️
- Imagem Docker pronta para rodar Brasfoot no navegador. 🌐
- Persistência dos dados do jogo entre reinicializações do container. ♻️
- Persistência de save e registro/licença no mesmo volume
/data. 💾 - Build multi‑arch publicado no GHCR. 🧩
- Runtime do jogo em
/data, inicializado a partir de/opt/brasfootna primeira execução. ⚙️
Imagem publicada:
ghcr.io/mfbasso/docker-brasfoot:latest
Se você quer apenas subir o container e jogar, este é o caminho mais simples:
docker run --rm \
--name=brasfoot \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=America/Sao_Paulo \
-p 3000:3000 \
-v ./data:/data \
--shm-size="2gb" \
ghcr.io/mfbasso/docker-brasfoot:latestDepois disso, abra no navegador:
http://localhost:3000
- Publica a interface web na porta
3000. 🚪 - Persiste os dados do jogo, runtime e registro/licença em
./data. 💾 - Define
PUID,PGIDeTZpara um runtime mais previsível. 🧩 - Reserva
2gbde memória compartilhada (shm), o que ajuda na estabilidade de aplicações gráficas. 🖥️
Se preferir subir com Compose:
services:
brasfoot:
image: ghcr.io/mfbasso/docker-brasfoot:latest
container_name: brasfoot
ports:
- "3000:3000"
environment:
PUID: 1000
PGID: 1000
TZ: America/Sao_Paulo
volumes:
- ./data:/data
shm_size: "2gb"
restart: unless-stoppedPara iniciar:
docker compose up -dPara parar:
docker compose downEste projeto usa um único ponto de persistência:
/data
Na prática:
./data/brasfootguarda os arquivos do jogo usados em runtime. 🕹️./data/registerguarda o estado de registro/licença (usado comouser.homedo Java). 🔐
Na primeira execução, se /data/brasfoot/bf22-23.exe ainda não existir, o container copia todo o conteúdo de /opt/brasfoot para /data/brasfoot e passa a executar a partir de lá. 📂➡️📂
Este repositório não distribui a licença do Brasfoot. O registro pode ser adquirido gratuitamente no site oficial:
Se você pretende manter seu uso entre reinicializações, preserve o volume/pasta ligado em ./data. 📦
O container já define alguns defaults no build, como:
TITLE=BrasfootNO_FULL=trueNO_DECOR=truePIXELFLUX_WAYLAND=true
No uso normal, as variáveis mais comuns continuam sendo:
PUIDPGIDTZ
Você também pode sobrescrever as variáveis já definidas pela imagem e usar outras variáveis suportadas pela base LinuxServer Selkies.
Base utilizada:
Isso é importante porque boa parte da camada de Wayland, streaming via navegador e comportamento do ambiente gráfico vem dessa imagem base. Se você já conhece o ecossistema Selkies, pode aproveitar as mesmas opções de customização aqui. 🧩🌐
Este projeto reutiliza como base a imagem ghcr.io/linuxserver/baseimage-selkies:debiantrixie.
Créditos ao trabalho da equipe LinuxServer e do projeto Selkies, que abstraem parte importante do acesso remoto via navegador e da camada gráfica usada por este container. 🙌
Se você quer entender a estrutura interna do runtime, o fluxo é este:
- O
Dockerfilebaixa o instalador oficial do Brasfoot durante o build. 📥 - O instalador é extraído para
/opt/brasfoot. 📂 - No runtime, o script
/usr/bin/brasfootverifica/data/brasfoot/bf22-23.exe. 🧐 - Se ainda não existir, copia todo o conteúdo de
/opt/brasfootpara/data/brasfoot. 🔁 - A execução acontece sempre a partir de
/data/brasfoot.▶️ - Save e registro/licença persistem sob
/data(incluindo/data/register). 💾
Arquivos importantes do projeto:
Dockerfile: imagem final baseada em Selkies. 🐳scripts/generate_app_image.sh: gera AppImage para release Linux. 🐧root/usr/bin/brasfoot: wrapper de execução e bootstrap do runtime em/data. ⚙️root/defaults/autostart: startup padrão para X11. 🖥️root/defaults/autostart_wayland: startup para Wayland. 🌐.github/workflows/release.yml: pipeline de release e publish no GHCR. 🔄
Esta parte é mais útil para manutenção, debug e contribuições. 🛠️
- Docker
- Acesso à internet para baixar o instalador oficial e imagens auxiliares
Não é necessário ter Java instalado no host para executar o container final. 🚫📦
bash scripts/generate_app_image.shArtefato esperado ao final:
root/root/bin/brasfoot.AppImage
docker build -t docker-brasfoot .Ou, se preferir, usando o Makefile:
make build
make runResumo dos alvos atuais:
make build: executadocker build -t docker-brasfoot .make run: sobe o container local com os mesmos mounts de persistência usados na documentação principal
Workflow principal:
.github/workflows/release.yml
Esse pipeline:
- Gera uma versão UTC. 🕰️
- Gera AppImage por arquitetura para anexar no release. 📦
- Publica os artefatos de release. 📤
- Gera e publica imagens Docker por arquitetura. 🐳
- Publica o manifest multi‑arch final no GHCR. 🧩
Cheque primeiro:
- Se a porta
3000foi publicada. 🚪 - Se você abriu
http://localhost:3000. 🌐 - Se o container está em execução.
▶️
Para ver logs:
docker logs brasfootSe você estiver em macOS, Colima ou ambiente parecido, um volume nomeado pode ser mais seguro para /data do que um bind mount direto.
Exemplo:
docker run --rm \
--name=brasfoot \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=America/Sao_Paulo \
-p 3000:3000 \
-v brasfoot-data:/data \
--shm-size="2gb" \
ghcr.io/mfbasso/docker-brasfoot:latestCausa comum: artefatos sendo copiados para o caminho errado no contexto de build, como root/bin no repositório, o que pode sobrescrever /bin da imagem base.
Estado correto deste projeto:
- No repo: os arquivos de customização ficam sob
root/. - No container: eles são copiados para
/viaCOPY /root /.
Cheque:
- Se a imagem certa foi puxada do GHCR. 🐳
- Se o container está rodando com
--shm-size="2gb". 🖥️ - Se o
DISPLAYfoi inicializado corretamente na sessão Selkies. 🖼️ - Se
/datapermite escrita para os arquivos de runtime e registro. 🔐
Para inspecionar manualmente dentro do container:
docker run --rm -it --entrypoint sh docker-brasfootE testar o launcher:
/usr/bin/brasfootdocker run --rm -it --entrypoint sh docker-brasfoot -lc 'ls -lah /opt/brasfoot /data /usr/bin/brasfoot'Contribuições são bem‑vindas! 🙌
Você pode ajudar com:
- Melhorias na documentação
- Ajustes de compatibilidade
- Automação de build e release
- Troubleshooting em diferentes ambientes
- Revisões no fluxo de runtime e persistência
Se encontrar um problema, abra uma issue com o máximo de contexto possível. Se quiser propor uma melhoria, abra um PR com uma descrição objetiva do que mudou e como validar.
Para alterações maiores, vale alinhar a ideia antes para evitar retrabalho. 🤝
Este repositório apenas empacota e orquestra a execução do Brasfoot em container; ele não substitui o software original. 🧩
O binário do Brasfoot é baixado da fonte oficial durante o build da imagem Docker e na geração opcional do AppImage para release. Respeite sempre os termos de uso e distribuição do software original. ✅