From b532e2d2a4fd9dfddc80668b91bfd7e0c63380d0 Mon Sep 17 00:00:00 2001 From: Simon Date: Thu, 10 Sep 2026 16:03:19 +0200 Subject: [PATCH] Release 0.3.0 --- .env.example | 13 ++++++--- README.md | 69 +++++++++++++++++++++++++++++++++------------- docker-compose.yml | 2 +- 3 files changed, 60 insertions(+), 24 deletions(-) diff --git a/.env.example b/.env.example index d758233..251f6ac 100644 --- a/.env.example +++ b/.env.example @@ -21,8 +21,13 @@ EVE_SSO_REDIRECT_URI=http://:8000/callback # -------------------------------------------------------------------------- # Who is running this instance # -------------------------------------------------------------------------- -# Sent as the contact address in the User-Agent on every call this app makes to -# ESI and to mokaam.dk. Both operators expect a real address, and CCP's -# published guidance is that it identifies whoever is running the software. -# Leave it unset and someone else answers for your traffic. +# Optional HERE: this only SEEDS the "Contact address" setting, so a deployment +# can supply it without anyone opening the page. You can equally set it under +# General on the Configuration page, and that wins over this value. +# +# But one of the two MUST be set. It is sent in the User-Agent on every call this +# app makes to ESI and to mokaam.dk; both operators expect a real address, and +# CCP's guidance is that it identifies whoever is RUNNING the software. The Data +# page refuses to fetch anything at all until it has one, because unset it would +# be somebody else answering for your traffic. EVE_ASSISTANT_CONTACT_EMAIL= diff --git a/README.md b/README.md index 19af392..53055f2 100644 --- a/README.md +++ b/README.md @@ -8,13 +8,12 @@ API and does the arithmetic locally. Single user, several characters. It is not a service and there is no hosted version — you run it on your own machine and your data stays there. -> **Read this before you deploy.** The app currently assumes the author's corner -> of space: production in **Fountain**, hauling based at **C-N4OD**, and a -> specific set of jump-drive skills and courier rates. If you live elsewhere the -> pages will render and the numbers will be **wrong rather than blank** — the -> cost model has no way to tell you it is quoting freight from a system you have -> never docked in. Making those configurable is the next milestone. Until then, -> treat this as usable only if you are in Fountain. +> **Read this before you deploy.** This is a tool one person built for their own +> corner of space and then made configurable. It should now work anywhere, but +> every figure it quotes rests on settings **you** have to supply — your +> reprocessing yield, your jump skills, your hulls, your courier's rate. The +> defaults are somebody else's. Work through Configuration before trusting a +> number. ## What you need @@ -88,22 +87,54 @@ docker compose up -d ### 6. Load the game data -A fresh install has an empty reference database, so blueprint search and every -planner return nothing until this runs once. It downloads CCP's Static Data -Export and takes a few minutes: +Open the app and go to **Data → Download game data**. This pulls CCP's Static +Data Export — blueprints, recipes, systems, market groups. It is a few hundred +megabytes and takes a few minutes. -``` -docker compose exec app python -m app.sde.sync -``` +Nothing works before this: the database schema exists but is empty, so every +planner renders blank. Re-run it after a game patch; nothing does it on a +schedule. -Re-run it after a game patch — nothing does it on a schedule. +### 7. Configure, in this order -### 7. Log in +Go to **Configuration**. The order matters — later steps depend on earlier ones. -Open the address from your callback URL (without `/callback`) and add your -characters. Then use the **Data** page to pull assets, blueprints, jobs and -prices; nothing is fetched in the background, so that button is what makes the -rest of the app show anything. +1. **Production system.** Search for the system you build in. This is the one + setting that decides your production *region*, which is where the app prices + what you make and which market Procurement compares against. Nothing that + involves selling works until it is set. +2. **Contact address**, under General. Sent to ESI and mokaam.dk in the + User-Agent to identify you as the operator. **Data refuses to fetch anything + until this is set** — it is not optional. +3. **Staging systems**, if you stage separately from where you build. +4. **The panels that apply to you** — Routing (your haulers, hulls, jump skills + and courier rate), Industry (taxes, fees, assumed ME), Reactions, Planetary + industry, Procurement, LP. Every field explains what it means and what it + affects. **The defaults are the author's, not yours.** +5. **Structures**, on each planner's own config page — `/industry/config`, + `/reactions/config`, `/pi/config`. These are lists rather than settings, so + they live with the view that uses them. + +### 8. Add your characters and pull your data + +**Characters → Add a character**, then **Data → Refresh** to pull assets, +blueprints, industry jobs and prices. Nothing is fetched in the background, so +that button is what makes the rest of the app show anything. + +## Your settings are a file you can keep + +Every save also writes `data/config.toml`, a plain text file with a comment +above each value explaining what it does. It holds **no credentials** and is +safe to commit. + +Two things that buys you: + +- **Back it up.** Copy it somewhere you control and a rebuilt install is one + file away from being configured again. +- **Edit it by hand.** Change a value, restart the container, and it applies. + +The database is what the app reads at runtime; the file is rewritten from it on +every save and read back at startup. ## Upgrading diff --git a/docker-compose.yml b/docker-compose.yml index 9cdc78d..0a40f88 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,7 +10,7 @@ services: # a release can carry a one-way database migration, so upgrading is # something you do deliberately (`git pull`), not something a restart does # to you. - image: forge.narog.fr/eve-assistant/app:0.2.0 + image: forge.narog.fr/eve-assistant/app:0.3.0 restart: unless-stopped ports: - "8000:8000"