Compare commits
No commits in common. "master" and "v0.2.0" have entirely different histories.
3 changed files with 26 additions and 82 deletions
17
.env.example
17
.env.example
|
|
@ -18,20 +18,11 @@ EVE_SSO_CLIENT_SECRET=
|
||||||
# itself. A mismatch fails at login with an SSO error, not at startup.
|
# itself. A mismatch fails at login with an SSO error, not at startup.
|
||||||
EVE_SSO_REDIRECT_URI=http://<docker-host-lan-ip>:8000/callback
|
EVE_SSO_REDIRECT_URI=http://<docker-host-lan-ip>:8000/callback
|
||||||
|
|
||||||
# Host port to serve on. Change it if something already uses 8000; the port you
|
|
||||||
# pick must match the one in EVE_SSO_REDIRECT_URI above.
|
|
||||||
EVE_ASSISTANT_PORT=8000
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# Who is running this instance
|
# Who is running this instance
|
||||||
# --------------------------------------------------------------------------
|
# --------------------------------------------------------------------------
|
||||||
# Optional HERE: this only SEEDS the "Contact address" setting, so a deployment
|
# Sent as the contact address in the User-Agent on every call this app makes to
|
||||||
# can supply it without anyone opening the page. You can equally set it under
|
# ESI and to mokaam.dk. Both operators expect a real address, and CCP's
|
||||||
# General on the Configuration page, and that wins over this value.
|
# published guidance is that it identifies whoever is running the software.
|
||||||
#
|
# Leave it unset and someone else answers for your traffic.
|
||||||
# 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=
|
EVE_ASSISTANT_CONTACT_EMAIL=
|
||||||
|
|
|
||||||
83
README.md
83
README.md
|
|
@ -8,12 +8,13 @@ API and does the arithmetic locally.
|
||||||
Single user, several characters. It is not a service and there is no hosted
|
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.
|
version — you run it on your own machine and your data stays there.
|
||||||
|
|
||||||
> **Read this before you deploy.** This is a tool one person built for their own
|
> **Read this before you deploy.** The app currently assumes the author's corner
|
||||||
> corner of space and then made configurable. It should now work anywhere, but
|
> of space: production in **Fountain**, hauling based at **C-N4OD**, and a
|
||||||
> every figure it quotes rests on settings **you** have to supply — your
|
> specific set of jump-drive skills and courier rates. If you live elsewhere the
|
||||||
> reprocessing yield, your jump skills, your hulls, your courier's rate. The
|
> pages will render and the numbers will be **wrong rather than blank** — the
|
||||||
> defaults are somebody else's. Work through Configuration before trusting a
|
> cost model has no way to tell you it is quoting freight from a system you have
|
||||||
> number.
|
> never docked in. Making those configurable is the next milestone. Until then,
|
||||||
|
> treat this as usable only if you are in Fountain.
|
||||||
|
|
||||||
## What you need
|
## What you need
|
||||||
|
|
||||||
|
|
@ -75,8 +76,6 @@ writable by that uid on the host:
|
||||||
mkdir -p data && chown 1000:1000 data
|
mkdir -p data && chown 1000:1000 data
|
||||||
```
|
```
|
||||||
|
|
||||||
Prefix the `chown` with `sudo` unless your own account happens to be uid 1000.
|
|
||||||
|
|
||||||
Skipping this is the most common first failure: the container starts and then
|
Skipping this is the most common first failure: the container starts and then
|
||||||
cannot write its database.
|
cannot write its database.
|
||||||
|
|
||||||
|
|
@ -87,66 +86,24 @@ docker login forge.narog.fr # only while access is invite-only
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
### 6. Log in — and claim the instance
|
### 6. Load the game data
|
||||||
|
|
||||||
Open the address from your callback URL (without `/callback`) and click **Log in
|
A fresh install has an empty reference database, so blueprint search and every
|
||||||
with EVE Online**. Everything below is behind this: the Data and Configuration
|
planner return nothing until this runs once. It downloads CCP's Static Data
|
||||||
pages both redirect to the login until you have done it.
|
Export and takes a few minutes:
|
||||||
|
|
||||||
**The first character to log in claims the instance.** After that an unknown
|
```
|
||||||
character is refused unless you are already logged in and adding it yourself. So
|
docker compose exec app python -m app.sde.sync
|
||||||
log in once before the port is reachable by anyone else.
|
```
|
||||||
|
|
||||||
### 7. Load the game data
|
Re-run it after a game patch — nothing does it on a schedule.
|
||||||
|
|
||||||
**Data → Download game data.** This pulls CCP's Static Data Export — blueprints,
|
### 7. Log in
|
||||||
recipes, systems, market groups. It is a few hundred megabytes and takes a few
|
|
||||||
minutes.
|
|
||||||
|
|
||||||
Nothing works before this: the database schema exists but is empty, so every
|
Open the address from your callback URL (without `/callback`) and add your
|
||||||
planner renders blank. Re-run it after a game patch; nothing does it on a
|
characters. Then use the **Data** page to pull assets, blueprints, jobs and
|
||||||
schedule.
|
prices; nothing is fetched in the background, so that button is what makes the
|
||||||
|
rest of the app show anything.
|
||||||
### 8. Configure, in this order
|
|
||||||
|
|
||||||
Go to **Configuration**. The order matters — later steps depend on earlier ones.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
### 9. Add your other characters and pull your data
|
|
||||||
|
|
||||||
**Characters → Add a character** for each alt, 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
|
## Upgrading
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,14 +10,10 @@ services:
|
||||||
# a release can carry a one-way database migration, so upgrading is
|
# a release can carry a one-way database migration, so upgrading is
|
||||||
# something you do deliberately (`git pull`), not something a restart does
|
# something you do deliberately (`git pull`), not something a restart does
|
||||||
# to you.
|
# to you.
|
||||||
image: forge.narog.fr/eve-assistant/app:0.4.0
|
image: forge.narog.fr/eve-assistant/app:0.2.0
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
# Host port from .env, so a port clash does not force you to edit this
|
- "8000:8000"
|
||||||
# file -- which is generated and would be reverted by the next `git pull`,
|
|
||||||
# silently moving the app back to 8000 and breaking the callback URL you
|
|
||||||
# registered with CCP. The container side stays 8000.
|
|
||||||
- "${EVE_ASSISTANT_PORT:-8000}:8000"
|
|
||||||
volumes:
|
volumes:
|
||||||
# Holds sde.db (game reference data) and app.db (your tokens, settings,
|
# Holds sde.db (game reference data) and app.db (your tokens, settings,
|
||||||
# and the latest snapshot of your assets). Both are latest-snapshot-only
|
# and the latest snapshot of your assets). Both are latest-snapshot-only
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue