Files
drk-blutspende-orte/docs/setup.md
T
Paddy 08232bda9b Add install.sh / run.sh / bundled icon; fully pin requirements
- install.sh: one-time Linux Mint setup (apt, .venv, requirements, .desktop
  entry with absolute paths). Re-runnable.
- run.sh: launches the app from .venv (called by the menu entry).
- icon.png: bundled 256px red-cross launcher/window icon; app prefers it over
  the runtime-drawn fallback (data/icon.png).
- requirements.txt: fully pinned incl. transitive deps, tested on Python 3.12;
  numpy held at 2.2.6 so it installs on Python 3.10 too.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 22:16:52 +02:00

2.8 KiB
Raw Blame History

Setup & running

Target machine: Linux Mint laptop, single non-technical user. Day-to-day use is a double-click from the menu; the terminal is needed once, for install.

Quick install (Linux Mint)

mkdir -p ~/Apps && cd ~/Apps
git clone https://git.plutodev.de/Paddy/drk-blutspende-orte DRK_Blutspende_Orte
cd DRK_Blutspende_Orte
./install.sh

install.sh does everything:

  1. sudo apt install python3-tk python3-venv python3-pip git (asks for the password),
  2. creates .venv and installs the pinned requirements.txt,
  3. writes ~/.local/share/applications/drk-blutspende-orte.desktop with the correct absolute paths and the bundled icon.png.

After it finishes, "DRK Blutspende Arbeitsorte" is in the application menu (log out/in once if it doesn't show immediately). First manual test: ./run.sh.

Clone it — don't download a zip. The in-app updater and run.sh both rely on it being a real git checkout.

What the pieces are

File Purpose
install.sh one-time setup (above). Safe to re-run.
run.sh launches the app from .venv; the .desktop entry calls this.
icon.png bundled launcher/window icon (red cross). Replace with the real DRK logo if wanted.
requirements.txt fully pinned, tested on Python 3.12.

Running manually

cd ~/Apps/DRK_Blutspende_Orte
./run.sh                 # or: .venv/bin/python app.py

data/orte.csv is created automatically on first run if missing.

Python / Tk version

Python 3.103.12 (Mint's python3). ttkbootstrap needs Tk 8.6+, which Mint's python3-tk provides. The macOS CommandLineTools Python 3.9 ships Tk 8.5 and can't run the GUI — for dev on macOS use a Homebrew Python, see dev-notes.md.

Updating

From inside the app: menu Hilfe ▸ Nach Update suchen. It also checks quietly on start and offers the update if there is one. It fast-forwards to the server version, reinstalls dependencies if requirements.txt changed, and restarts itself. data/ is never touched. The updater only fast-forwards — if the local copy was hand-edited it refuses and says to get in touch.

Manually (equivalent):

cd ~/Apps/DRK_Blutspende_Orte
git pull --ff-only
.venv/bin/pip install -r requirements.txt

Publishing an update, from the dev machine: git push to https://git.plutodev.de/Paddy/drk-blutspende-orte (branch main).

Data location & backup

All state is in data/ next to app.py:

  • orte.csv — the data (git-ignored).
  • backups/ — automatic timestamped copies, newest 20 kept.
  • app.log, window.json, icon.png (runtime fallback) — git-ignored.

To back up: copy data/orte.csv (and data/backups/ for history). To move to a new laptop: clone the repo, run ./install.sh, copy data/orte.csv across.