70a64e3709
Freeze the running offline FUT backend into version control as fifa17-recon/docker/fifa17-python/ - declarative and rebuildable from a fresh checkout: * OPENFUT_BIND / OPENFUT_ADVERTISE client/server split in the responders (lsx, blaze, roster, utas, pow) + entrypoint.sh; OPENFUT_ADVERTISE is required for remote mode (compose and entrypoint fail without it) * docker-compose.yml reproducing the frozen baseline container exactly (env, ports incl. the 8085->8080 POW-content remap, /state bind, restart) * .env.example / .env for site config - the LAN IP is never hardcoded in source * tools/ + data/ staged from openfut-fut-backend:python-baseline-2026-08-10, verified byte-identical to the running container at freeze time * client_arm.sh (the 105 client-side arming counterpart) * Dockerfile bakes /app/SHA256SUMS.txt so any image is self-identifying * docs/BASELINE-python-2026-08-10.md: frozen image/container/hash record, restore instructions and rebuild-equivalence procedure Secrets (redir key/cert, .env) and runtime state (docker/state) stay gitignored. The live container is untouched pending the .105 launcher audit.
1 line
8.2 KiB
JSON
1 line
8.2 KiB
JSON
{"table":"fcc_discardcoins","source":"FIFA17.exe resident database (tools/db_dump.py)","rowcount":141,"rowsize_bytes":8,"rows_emitted":141,"rowblock":"0x428145e8","rowblock_bytes":1153,"descriptor":"0x7b101c8","schema":[{"name":"level","bit":0,"width":7,"kind":"int","min":0,"max":100,"storage":"int"},{"name":"id","bit":7,"width":10,"kind":"int","min":0,"max":1000,"storage":"int"},{"name":"cardtype","bit":17,"width":7,"kind":"int","min":0,"max":100,"storage":"int"},{"name":"price","bit":24,"width":20,"kind":"int","min":0,"max":1000000,"storage":"int"},{"name":"rare","bit":44,"width":7,"kind":"int","min":0,"max":100,"storage":"int"}],"rows":[{"level":1,"id":1,"cardtype":1,"price":30,"rare":0},{"level":2,"id":2,"cardtype":1,"price":150,"rare":0},{"level":3,"id":3,"cardtype":1,"price":400,"rare":0},{"level":1,"id":4,"cardtype":1,"price":75,"rare":1},{"level":2,"id":5,"cardtype":1,"price":350,"rare":1},{"level":3,"id":6,"cardtype":1,"price":800,"rare":1},{"level":1,"id":7,"cardtype":1,"price":2000,"rare":2},{"level":2,"id":8,"cardtype":1,"price":7000,"rare":2},{"level":3,"id":9,"cardtype":1,"price":12200,"rare":2},{"level":1,"id":10,"cardtype":1,"price":2000,"rare":3},{"level":2,"id":11,"cardtype":1,"price":7000,"rare":3},{"level":3,"id":12,"cardtype":1,"price":12200,"rare":3},{"level":1,"id":13,"cardtype":1,"price":6000,"rare":4},{"level":2,"id":14,"cardtype":1,"price":10000,"rare":4},{"level":3,"id":15,"cardtype":1,"price":18000,"rare":4},{"level":1,"id":16,"cardtype":1,"price":20000,"rare":5},{"level":2,"id":17,"cardtype":1,"price":40000,"rare":5},{"level":3,"id":18,"cardtype":1,"price":80000,"rare":5},{"level":1,"id":19,"cardtype":1,"price":20000,"rare":6},{"level":2,"id":20,"cardtype":1,"price":40000,"rare":6},{"level":3,"id":21,"cardtype":1,"price":80000,"rare":6},{"level":1,"id":22,"cardtype":1,"price":1500,"rare":7},{"level":2,"id":23,"cardtype":1,"price":5000,"rare":7},{"level":3,"id":24,"cardtype":1,"price":9000,"rare":7},{"level":1,"id":25,"cardtype":1,"price":6000,"rare":8},{"level":2,"id":26,"cardtype":1,"price":10000,"rare":8},{"level":3,"id":27,"cardtype":1,"price":18000,"rare":8},{"level":1,"id":28,"cardtype":1,"price":6000,"rare":9},{"level":2,"id":29,"cardtype":1,"price":10000,"rare":9},{"level":3,"id":30,"cardtype":1,"price":18000,"rare":9},{"level":1,"id":31,"cardtype":1,"price":2000,"rare":10},{"level":2,"id":32,"cardtype":1,"price":7000,"rare":10},{"level":3,"id":33,"cardtype":1,"price":12200,"rare":10},{"level":1,"id":34,"cardtype":1,"price":10000,"rare":11},{"level":2,"id":35,"cardtype":1,"price":15000,"rare":11},{"level":3,"id":36,"cardtype":1,"price":24000,"rare":11},{"level":1,"id":37,"cardtype":1,"price":120000,"rare":12},{"level":2,"id":38,"cardtype":1,"price":120000,"rare":12},{"level":3,"id":39,"cardtype":1,"price":120000,"rare":12},{"level":1,"id":40,"cardtype":1,"price":2000,"rare":13},{"level":2,"id":41,"cardtype":1,"price":7000,"rare":13},{"level":3,"id":42,"cardtype":1,"price":12200,"rare":13},{"level":1,"id":43,"cardtype":2,"price":20,"rare":0},{"level":2,"id":44,"cardtype":2,"price":70,"rare":0},{"level":3,"id":45,"cardtype":2,"price":110,"rare":0},{"level":1,"id":46,"cardtype":2,"price":25,"rare":1},{"level":2,"id":47,"cardtype":2,"price":120,"rare":1},{"level":3,"id":48,"cardtype":2,"price":320,"rare":1},{"level":1,"id":49,"cardtype":3,"price":10,"rare":0},{"level":2,"id":50,"cardtype":3,"price":55,"rare":0},{"level":3,"id":51,"cardtype":3,"price":110,"rare":0},{"level":1,"id":52,"cardtype":3,"price":50,"rare":1},{"level":2,"id":53,"cardtype":3,"price":100,"rare":1},{"level":3,"id":54,"cardtype":3,"price":300,"rare":1},{"level":1,"id":55,"cardtype":4,"price":10,"rare":0},{"level":2,"id":56,"cardtype":4,"price":55,"rare":0},{"level":3,"id":57,"cardtype":4,"price":110,"rare":0},{"level":1,"id":58,"cardtype":4,"price":50,"rare":1},{"level":2,"id":59,"cardtype":4,"price":100,"rare":1},{"level":3,"id":60,"cardtype":4,"price":300,"rare":1},{"level":1,"id":61,"cardtype":5,"price":10,"rare":0},{"level":2,"id":62,"cardtype":5,"price":55,"rare":0},{"level":3,"id":63,"cardtype":5,"price":110,"rare":0},{"level":1,"id":64,"cardtype":5,"price":50,"rare":1},{"level":2,"id":65,"cardtype":5,"price":100,"rare":1},{"level":3,"id":66,"cardtype":5,"price":300,"rare":1},{"level":1,"id":67,"cardtype":6,"price":5,"rare":0},{"level":2,"id":68,"cardtype":6,"price":20,"rare":0},{"level":3,"id":69,"cardtype":6,"price":40,"rare":0},{"level":1,"id":70,"cardtype":6,"price":20,"rare":1},{"level":2,"id":71,"cardtype":6,"price":50,"rare":1},{"level":3,"id":72,"cardtype":6,"price":70,"rare":1},{"level":1,"id":73,"cardtype":7,"price":5,"rare":0},{"level":2,"id":74,"cardtype":7,"price":20,"rare":0},{"level":3,"id":75,"cardtype":7,"price":40,"rare":0},{"level":1,"id":76,"cardtype":7,"price":20,"rare":1},{"level":2,"id":77,"cardtype":7,"price":50,"rare":1},{"level":3,"id":78,"cardtype":7,"price":70,"rare":1},{"level":1,"id":79,"cardtype":8,"price":5,"rare":0},{"level":2,"id":80,"cardtype":8,"price":20,"rare":0},{"level":3,"id":81,"cardtype":8,"price":40,"rare":0},{"level":1,"id":82,"cardtype":8,"price":20,"rare":1},{"level":2,"id":83,"cardtype":8,"price":50,"rare":1},{"level":3,"id":84,"cardtype":8,"price":70,"rare":1},{"level":1,"id":85,"cardtype":9,"price":5,"rare":0},{"level":2,"id":86,"cardtype":9,"price":20,"rare":0},{"level":3,"id":87,"cardtype":9,"price":40,"rare":0},{"level":1,"id":88,"cardtype":9,"price":20,"rare":1},{"level":2,"id":89,"cardtype":9,"price":50,"rare":1},{"level":3,"id":90,"cardtype":9,"price":70,"rare":1},{"level":1,"id":91,"cardtype":10,"price":10,"rare":0},{"level":2,"id":92,"cardtype":10,"price":55,"rare":0},{"level":3,"id":93,"cardtype":10,"price":110,"rare":0},{"level":1,"id":94,"cardtype":10,"price":50,"rare":1},{"level":2,"id":95,"cardtype":10,"price":100,"rare":1},{"level":3,"id":96,"cardtype":10,"price":300,"rare":1},{"level":1,"id":97,"cardtype":1,"price":2000,"rare":17},{"level":2,"id":98,"cardtype":1,"price":7000,"rare":17},{"level":3,"id":99,"cardtype":1,"price":12200,"rare":17},{"level":1,"id":100,"cardtype":1,"price":2000,"rare":18},{"level":2,"id":101,"cardtype":1,"price":7000,"rare":18},{"level":3,"id":102,"cardtype":1,"price":12200,"rare":18},{"level":1,"id":103,"cardtype":1,"price":2000,"rare":19},{"level":2,"id":104,"cardtype":1,"price":7000,"rare":19},{"level":3,"id":105,"cardtype":1,"price":12200,"rare":19},{"level":1,"id":106,"cardtype":1,"price":2000,"rare":20},{"level":2,"id":107,"cardtype":1,"price":7000,"rare":20},{"level":3,"id":108,"cardtype":1,"price":12200,"rare":20},{"level":1,"id":109,"cardtype":1,"price":2000,"rare":21},{"level":2,"id":110,"cardtype":1,"price":7000,"rare":21},{"level":3,"id":111,"cardtype":1,"price":12200,"rare":21},{"level":1,"id":112,"cardtype":1,"price":2000,"rare":22},{"level":2,"id":113,"cardtype":1,"price":7000,"rare":22},{"level":3,"id":114,"cardtype":1,"price":12200,"rare":22},{"level":1,"id":115,"cardtype":1,"price":2000,"rare":23},{"level":2,"id":116,"cardtype":1,"price":7000,"rare":23},{"level":3,"id":117,"cardtype":1,"price":12200,"rare":23},{"level":1,"id":118,"cardtype":1,"price":2000,"rare":24},{"level":2,"id":119,"cardtype":1,"price":7000,"rare":24},{"level":3,"id":120,"cardtype":1,"price":12200,"rare":24},{"level":1,"id":121,"cardtype":1,"price":2000,"rare":25},{"level":2,"id":122,"cardtype":1,"price":7000,"rare":25},{"level":3,"id":123,"cardtype":1,"price":12200,"rare":25},{"level":1,"id":124,"cardtype":1,"price":2000,"rare":26},{"level":2,"id":125,"cardtype":1,"price":7000,"rare":26},{"level":3,"id":126,"cardtype":1,"price":12200,"rare":26},{"level":1,"id":127,"cardtype":1,"price":2000,"rare":27},{"level":2,"id":128,"cardtype":1,"price":7000,"rare":27},{"level":3,"id":129,"cardtype":1,"price":12200,"rare":27},{"level":1,"id":130,"cardtype":1,"price":2000,"rare":28},{"level":2,"id":131,"cardtype":1,"price":7000,"rare":28},{"level":3,"id":132,"cardtype":1,"price":12200,"rare":28},{"level":1,"id":133,"cardtype":1,"price":2000,"rare":29},{"level":2,"id":134,"cardtype":1,"price":7000,"rare":29},{"level":3,"id":135,"cardtype":1,"price":12200,"rare":29},{"level":1,"id":136,"cardtype":1,"price":2000,"rare":30},{"level":2,"id":137,"cardtype":1,"price":7000,"rare":30},{"level":3,"id":138,"cardtype":1,"price":12200,"rare":30},{"level":1,"id":139,"cardtype":1,"price":2000,"rare":31},{"level":2,"id":140,"cardtype":1,"price":7000,"rare":31},{"level":3,"id":141,"cardtype":1,"price":12200,"rare":31}]} |