Installazione
Scegli il modo che preferisci. Tutti e tre danno la stessa app.
Windows
- Scarica
magic-db.exedall'ultima versione e mettilo in una cartella tutta sua, per esempioC:\magic-db. - Fai doppio clic. Windows può mostrare un riquadro blu «PC protetto da Windows», perché il programma non è firmato: scegli Ulteriori informazioni, poi Esegui comunque.
- Il browser si apre su
http://127.0.0.1:8080. Il primo avvio scarica il catalogo delle carte (circa 80 MB) e lo prepara: qualche minuto, con l'avanzamento mostrato nella pagina.
Tutto quello che AMTG scrive finisce in una cartella data accanto al programma. Per fermarlo, chiudi la sua finestra.
Aggiornare: apri Amministrazione. Quando esce una versione più recente lo dice, e un solo pulsante la scarica, la controlla, la sostituisce e riavvia. La cartella data resta com'è.
Usarla dal telefono: avviala in ascolto sulla rete di casa, per esempio da un file start.bat:
set MAGICDB_HOST=0.0.0.0
magic-db.exe
Poi apri http://<indirizzo del PC>:8080 sul telefono.
Docker
curl -O https://raw.githubusercontent.com/ac-me-git/magic-db/main/compose.yaml
docker compose up -d
Apri http://localhost:8080. I dati stanno nel volume magic-db-data. Imposta TZ in compose.yaml sul tuo fuso orario, così i lavori notturni girano quando da te è notte.
Aggiornare: docker compose pull, poi docker compose up -d.
Provare ciò che non è ancora stato rilasciato: in compose.yaml scrivi magic-db:edge al posto di magic-db:latest, poi pull e up come sopra. edge viene ricostruita a ogni modifica del programma: più nuova e meno collaudata di una versione rilasciata; la pagina Amministrazione indica che è la versione di sviluppo. Prima fai un backup (Amministrazione). Per tornare indietro riscrivi latest, poi pull e up.
Dal sorgente
Serve uv (oppure Python 3.12+ con pip).
git clone https://github.com/ac-me-git/magic-db.git
cd magic-db
uv sync
uv run magicdb
Configurazione
È tutto facoltativo e si imposta con variabili d'ambiente.
| Variabile | Predefinito | Significato |
|---|---|---|
MAGICDB_DATA_DIR | ./data (Docker: /data) | Dove stanno il catalogo, la collezione, le immagini in cache e i backup |
MAGICDB_BACKUP_DIR | <data>/backups | Dove vengono scritti i backup. Indica una cartella che sia a sua volta salvata o sincronizzata altrove |
MAGICDB_HOST | 127.0.0.1 (Docker: 0.0.0.0) | Indirizzo su cui ascoltare. 0.0.0.0 la rende raggiungibile dagli altri dispositivi |
MAGICDB_PORT | 8080 | Porta su cui ascoltare |
MAGICDB_PASSWORD | nessuno | Se impostata, ogni pagina la chiede (HTTP Basic: un nome utente qualsiasi, questa password) |
MAGICDB_UPDATE_HOUR | 3 | Ora dell'aggiornamento notturno del catalogo, 0–23, ora locale |
MAGICDB_BACKUP_HOUR | 4 | Ora del backup notturno, 0–23, ora locale |
MAGICDB_LANG | en | Lingua predefinita dell'interfaccia (en oppure it) |
MAGICDB_CURRENCY | eur | eur oppure usd, per prezzi e valori |
MAGICDB_SCHEDULER | on | off ferma l'aggiornamento e il backup automatici notturni |
MAGICDB_UPDATE_CHECK | on | off impedisce alla pagina Amministrazione di chiedere a GitHub se c'è una versione più recente |
Raggiungerla da fuori casa
AMTG è pensata per una sola famiglia. Non metterla su internet così com'è. Mettile davanti qualcosa che decida chi entra: una VPN come Tailscale o WireGuard, oppure un gateway di accesso come Cloudflare Access. Come minimo, imposta MAGICDB_PASSWORD e servila in HTTPS attraverso un reverse proxy.
Dietro un reverse proxy, passa all'app il nome host pubblico (Host oppure X-Forwarded-Host): AMTG rifiuta le modifiche che non arrivano dalle sue pagine, e riconosce le sue pagine da quel nome. Il blocco di sicurezza non è un controllo degli accessi: ferma gli incidenti, non le persone.
Limiti
- Nomi, testi e immagini delle carte sono in inglese. Una copia in un'altra lingua viene registrata sulla stampa inglese, con la lingua come attributo.
- I prezzi sono gli ultimi di Scryfall (Cardmarket per l'euro, TCGplayer per il dollaro); non c'è uno storico dei prezzi.
- Una collezione per installazione; nessun account utente.
- Una scatola porta-mazzo fisica è una posizione; un mazzo è una lista. Mettere una carta nella lista di un mazzo non la sposta.