Compare commits
12
Commits
ee11e4d695
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e5bd093d1 | ||
|
|
e9a20baf93 | ||
|
|
6215de1d35 | ||
|
|
c90170345d | ||
|
|
a66743df15 | ||
|
|
900194964b | ||
|
|
3a8125425b | ||
|
|
2ab5f34e54 | ||
|
|
6f8105c33a | ||
|
|
bd24dba778 | ||
|
|
702bb25eef | ||
|
|
7780e5eb5e |
No files matched your search
@@ -0,0 +1,95 @@
|
||||
name: Publish site
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
QUARTO_VERSION: "1.10.18"
|
||||
GITEA_HOST: gitea.spacilovi.eu
|
||||
# Pozor: nesmí být pod skrytým adresářem. Workspace runneru je
|
||||
# /root/.cache/act/... a quarto v cestě se skrytou složkou nenajde
|
||||
# žádné vstupní soubory – vyrobí prázdný _site a skončí s kódem 0.
|
||||
BUILD_DIR: /tmp/quarto-build-${{ github.run_id }}
|
||||
|
||||
jobs:
|
||||
build-deploy:
|
||||
# runner běží v host módu bez Node.js, proto žádné JS akce (actions/checkout apod.)
|
||||
runs-on: homelab
|
||||
steps:
|
||||
- name: Checkout
|
||||
env:
|
||||
TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
run: |
|
||||
set -e
|
||||
rm -rf "$BUILD_DIR"
|
||||
mkdir -p "$BUILD_DIR"
|
||||
cd "$BUILD_DIR"
|
||||
git init -q .
|
||||
git fetch --depth 1 \
|
||||
"https://x-access-token:${TOKEN}@${GITEA_HOST}/${GITHUB_REPOSITORY}.git" \
|
||||
"$GITHUB_REF_NAME"
|
||||
git checkout -q FETCH_HEAD
|
||||
|
||||
- name: Install Quarto
|
||||
run: |
|
||||
set -e
|
||||
if [ ! -x "$HOME/opt/quarto-${QUARTO_VERSION}/bin/quarto" ]; then
|
||||
curl -sSL -o /tmp/quarto.tar.gz \
|
||||
"https://github.com/quarto-dev/quarto-cli/releases/download/v${QUARTO_VERSION}/quarto-${QUARTO_VERSION}-linux-amd64.tar.gz"
|
||||
mkdir -p "$HOME/opt"
|
||||
tar -xzf /tmp/quarto.tar.gz -C "$HOME/opt"
|
||||
rm -f /tmp/quarto.tar.gz
|
||||
fi
|
||||
|
||||
- name: Render
|
||||
run: |
|
||||
set -e
|
||||
cd "$BUILD_DIR"
|
||||
"$HOME/opt/quarto-${QUARTO_VERSION}/bin/quarto" render
|
||||
# pojistka: prázdný build nesmí přepsat publikovaný web
|
||||
test -f _site/index.html
|
||||
|
||||
- name: Deploy to gh-pages
|
||||
env:
|
||||
TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
run: |
|
||||
set -e
|
||||
cd "$BUILD_DIR"
|
||||
test -f _site/index.html
|
||||
REMOTE="https://x-access-token:${TOKEN}@${GITEA_HOST}/${GITHUB_REPOSITORY}.git"
|
||||
WT="/tmp/gh-pages-${GITHUB_RUN_ID}"
|
||||
trap 'rm -rf "$WT"' EXIT
|
||||
|
||||
git config user.name "gitea-actions"
|
||||
git config user.email "gitea-actions@spacilovi.eu"
|
||||
|
||||
# pracovní kopie gh-pages (zachová dosavadní historii větve)
|
||||
if git ls-remote --exit-code "$REMOTE" gh-pages >/dev/null 2>&1; then
|
||||
git fetch "$REMOTE" gh-pages
|
||||
git worktree add "$WT" FETCH_HEAD
|
||||
cd "$WT"
|
||||
git checkout -B gh-pages
|
||||
else
|
||||
mkdir -p "$WT"
|
||||
cd "$WT"
|
||||
git init -q -b gh-pages
|
||||
fi
|
||||
|
||||
# zahodit staré soubory (kromě .git) a nakopírovat nový build
|
||||
find . -mindepth 1 -maxdepth 1 ! -name .git -exec rm -rf {} +
|
||||
cp -a "${BUILD_DIR}/_site/." .
|
||||
touch .nojekyll
|
||||
|
||||
git add -A
|
||||
if git diff --cached --quiet; then
|
||||
echo "Beze změn, nic se nepublikuje."
|
||||
exit 0
|
||||
fi
|
||||
git commit -q -m "Built site for gh-pages (${GITHUB_SHA::7})"
|
||||
git push "$REMOTE" HEAD:gh-pages
|
||||
|
||||
- name: Cleanup
|
||||
if: always()
|
||||
run: rm -rf "$BUILD_DIR"
|
||||
@@ -19,6 +19,7 @@ website:
|
||||
- section: "Návody"
|
||||
contents:
|
||||
- navody/immich.qmd
|
||||
- navody/ledrich.qmd
|
||||
|
||||
format:
|
||||
html:
|
||||
@@ -27,6 +28,7 @@ format:
|
||||
- brand
|
||||
link-external-icon: true
|
||||
link-external-newwindow: true
|
||||
link-external-filter: ^(?:http:|https:)\/\/pages\.spacilovi\.eu\/david-spacil\/help
|
||||
css: styles.css
|
||||
toc: true
|
||||
|
||||
|
||||
+6
-1
@@ -96,4 +96,9 @@ Postup:
|
||||
1. Vybereme klepnutím všechny uživatele, kterým chceme album sdílet, a klepneme na `Přidat`.
|
||||
1. Následně lze u uživatelů v roletce měnit roli.
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
## Odkazy
|
||||
|
||||
- Kompletní nápověda (primárně pro administrátory): [docs.immich.app](docs.immich.app)
|
||||
@@ -0,0 +1,161 @@
|
||||
---
|
||||
title: "Návod na používání Ledriche"
|
||||
author: "David Spáčil"
|
||||
date: "2026-08-11"
|
||||
---
|
||||
|
||||
Ledrich je aplikace na evidenci společných výdajů a dělení nákladů – tedy na situace, kdy se skládá víc lidí a nikomu se nechce vést papírové poznámky o tom, kdo co zaplatil a komu kolik dluží.
|
||||
Funguje podobně jako známé appky typu Splitwise nebo Tricount, ale běží na našem vlastním serveru, takže data o tom, za co utrácíme, nikam ven neodcházejí.
|
||||
Používá se hlavně z mobilu – aplikace je udělaná tak, aby se výdaj dal zadat jednou rukou cestou z obchodu.
|
||||
|
||||
Vede se v ní **kniha**: seznam účastníků, kteří se o výdaje dělí, a všechny jejich platby.
|
||||
|
||||
## Přihlášení
|
||||
|
||||
Registrace není možná, účty zakládá správce knihy.
|
||||
Když se má někdo přidat, správce ho přidá v `Nastavení` a předá mu heslo.
|
||||
|
||||
Na přihlašovací obrazovce se vybere jméno ze seznamu a zadá heslo.
|
||||
Po přihlášení zůstáváte přihlášení dlouhodobě, takže se na mobilu heslo zadává jen výjimečně.
|
||||
|
||||
::: {.callout-tip}
|
||||
Aplikaci si na mobilu můžete přidat na plochu (v prohlížeči *Přidat na plochu* / *Add to Home Screen*).
|
||||
Pak se otevírá jako běžná appka, na celou obrazovku a bez adresního řádku.
|
||||
:::
|
||||
|
||||
Pokud po zadání hesla obrazovka „probliknutím“ spadne zpátky na přihlášení, aplikace vám sama napíše proč – nejčastěji je to tím, že se k ní jde přes nezabezpečené spojení.
|
||||
|
||||
## Orientace v prostředí
|
||||
|
||||
Dole jsou tři záložky a nad nimi oranžové kolečko s plusem.
|
||||
|
||||
- `Platby` – seznam všech výdajů, od nejnovějšího. Klepnutím na výdaj se otevře k úpravě.
|
||||
- `Dluh` – kdo komu kolik dluží a tlačítko na vyrovnání.
|
||||
- `Statistiky` – souhrnná čísla, graf v čase a rozpady.
|
||||
- **Oranžové tlačítko `+`** – přidání výdaje. Je záměrně mimo záložky a nad nimi, protože je to jediná činnost, kvůli které se aplikace otevírá venku, a musí být na dosah palce.
|
||||
|
||||
Oranžová barva patří v celé aplikaci jen tomuhle tlačítku, takže je vždycky jasné, kam sáhnout.
|
||||
|
||||
Nahoře je název knihy a vedle něj `Nastavení` a `Odhlásit`.
|
||||
|
||||
::: {.callout-note}
|
||||
Když v hlavičce občas problikne informace o čekajících změnách, znamená to, že byl výpadek spojení se serverem.
|
||||
**Nic se neztratilo** – zadané výdaje jsou uložené a odešlou se samy, jakmile se spojení vrátí.
|
||||
:::
|
||||
|
||||
## Přidání výdaje
|
||||
|
||||
Klepnutím na oranžové `+` se otevře formulář. Vyplňuje se:
|
||||
|
||||
- **Částka** – hlavní pole, samo se zaostří. Zadává se v korunách, haléře se dají zapsat za desetinnou čárkou.
|
||||
- **Za co** – krátký popis, např. *nákup Lidl*.
|
||||
- **Kdo platil** – ten, kdo peníze skutečně vytáhl z kapsy. Není to totéž jako to, koho výdaj stál (viz dělení níž).
|
||||
- **Datum** – předvyplněné na dnešek.
|
||||
- **Jak se to dělí** – viz další sekce.
|
||||
- **Štítky** – nepovinné, slouží k roztřídění výdajů. Nabízejí se dřív použité, nový se prostě napíše.
|
||||
- **Poznámka** – nepovinná, na cokoli, co se nevejde do popisu.
|
||||
|
||||
Uloží se tlačítkem `Přidat výdaj`.
|
||||
|
||||
### Jak se výdaj dělí
|
||||
|
||||
Tohle je jádro celé aplikace. Pod formulářem je **dělicí pruh** – vodorovný proužek, ve kterém má každý účastník svůj úsek.
|
||||
Poměr se mění **tažením předělu mezi úseky**; pod pruhem je hned vidět, kolik z částky komu připadá.
|
||||
|
||||
Vedle jsou **předvolby** (`50 : 50`, `60 : 40`, `100 : 0` a podobně), což jsou jen zkratky k témuž – klepnutím se předěl přesune tam, kam patří.
|
||||
|
||||
Nejčastější případy:
|
||||
|
||||
- **Rovným dílem** – výchozí stav, nic se nenastavuje.
|
||||
- **Někdo platí všechno** – předvolba `100 : 0`. Hodí se, když jeden nakoupí něco, co je jen jeho, ale platí to ze společných.
|
||||
- **Nerovný poměr** – tažením předělu nebo předvolbou.
|
||||
- **Přesné částky** – když se jeden nákup rozpadá na položky, které patří různým lidem.
|
||||
|
||||
::: {.callout-note}
|
||||
Procenta se zadávají v celých číslech.
|
||||
Když je potřeba jemnější poměr, použije se dělení v **podílech** – např. `335 : 665` znamená totéž jako 33,5 % ku 66,5 %.
|
||||
:::
|
||||
|
||||
Aplikace hlídá, aby součet **vždycky seděl do haléře**.
|
||||
Když se 100 Kč dělí na tři, vyjde 34 + 33 + 33 – nikdy ne tři třiatřicítky, u kterých by koruna zmizela.
|
||||
|
||||
### Zopakování výdaje
|
||||
|
||||
U už uloženého výdaje je tlačítko na **zopakování**.
|
||||
Otevře nový formulář předvyplněný stejnými údaji, takže opakovaný nákup je otázka dvou klepnutí.
|
||||
|
||||
### Oprava a smazání
|
||||
|
||||
Klepnutím na výdaj v `Platbách` se otevře k úpravě, kde jde i smazat.
|
||||
Smazání není nevratné – záznam zůstává v historii a správce ho dokáže obnovit.
|
||||
|
||||
## Dluh a vyrovnání
|
||||
|
||||
Záložka `Dluh` říká jedinou věc: **kdo komu kolik dluží**, po započtení všech výdajů a všech dosavadních vyrovnání.
|
||||
|
||||
Když si dluh mezi sebou skutečně srovnáte (převodem, hotově), zapíše se to tlačítkem `Vyrovnat`.
|
||||
Předvyplní se celá dlužná částka, ale dá se přepsat – **částečné vyrovnání je v pořádku**, zbytek dluhu zůstane viset dál.
|
||||
|
||||
Vyrovnání je samostatný záznam, ne výdaj: nezapočítá se do statistik útraty, jen posune dluh.
|
||||
Dá se později upravit nebo smazat stejně jako výdaj.
|
||||
|
||||
## Statistiky
|
||||
|
||||
Záložka `Statistiky` je jenom na čtení – nic se v ní nezadává.
|
||||
|
||||
Nahoře jsou souhrnná čísla za celou knihu.
|
||||
Pod nimi **měsíční graf**: sloupce ukazují, kolik se který měsíc utratilo, rozdělené barvami podle toho, **koho ten měsíc co stálo** (tedy podle konečného podílu, ne podle toho, kdo platil).
|
||||
Přes sloupce vede **kumulativní čára** – celková útrata od začátku. Má vlastní měřítko, proto je vysvětlená v legendě pod grafem.
|
||||
|
||||
Níž jsou rozpady: kdo kolik zaplatil, kolik se utratilo za jednotlivé štítky a co bylo nejdražší.
|
||||
|
||||
::: {.callout-tip}
|
||||
Barva patří vždy konkrétnímu člověku, ne pořadí v žebříčku.
|
||||
Ve všech grafech tedy tentýž odstín znamená tutéž osobu.
|
||||
:::
|
||||
|
||||
Úplně dole je tlačítko **`Stáhnout CSV`**, které vyexportuje všechny výdaje do tabulky – k otevření v Excelu nebo v tabulkovém procesoru.
|
||||
|
||||
## Nastavení
|
||||
|
||||
Otevírá se odkazem `Nastavení` v hlavičce. Každý tu najde:
|
||||
|
||||
- **Změnu vlastního hesla.** Vyžaduje zadání toho stávajícího.
|
||||
|
||||
Správce knihy navíc:
|
||||
|
||||
- **Název knihy.** Objeví se v hlavičce, na přihlašovací obrazovce i v názvu aplikace na ploše.
|
||||
- **Správu účastníků.** Přidání nového, přejmenování, nastavení hesla, udělení a odebrání práv správce.
|
||||
|
||||
### Přidání účastníka
|
||||
|
||||
`Nastavení` → `Přidat účastníka`. Zadá se jméno a heslo, které novému účastníkovi předáte jinou cestou (ne v aplikaci).
|
||||
Restart ani nic dalšího potřeba není, přihlásit se může hned.
|
||||
|
||||
### Odebrání účastníka: archivace
|
||||
|
||||
Účastníka, který už má v knize nějaké záznamy, **nejde smazat** – smazáním by přestalo dávat smysl vyčíslení dluhu u starých výdajů.
|
||||
Místo toho se **archivuje**:
|
||||
|
||||
- nepřihlásí se,
|
||||
- nenabízí se u nových výdajů,
|
||||
- ale v historii i ve vyčíslení dluhu zůstává přesně tak, jak byl.
|
||||
|
||||
Účastník, který ještě nemá žádný záznam, se smazat dá.
|
||||
|
||||
::: {.callout-important}
|
||||
Kniha musí mít vždycky **aspoň jednoho správce**.
|
||||
Poslední správce si proto nemůže odebrat práva ani se archivovat.
|
||||
:::
|
||||
|
||||
## Co s daty
|
||||
|
||||
Data nejsou v žádné databázi, ale v obyčejných souborech verzovaných gitem.
|
||||
V praxi to pro vás znamená tři věci:
|
||||
|
||||
- **Nic se neztrácí.** Každá změna je zapsaná i s tím, kdo ji udělal a kdy. Smazaný výdaj jde dohledat a vrátit.
|
||||
- **Zálohou je kopie repozitáře.** Když by server odešel, kniha se obnoví.
|
||||
- **Aplikace není podmínkou.** I kdyby Ledrich zítra přestal existovat, data zůstávají čitelná běžnými nástroji.
|
||||
|
||||
Jediné, co se takhle nezálohuje, jsou **hesla** – ta jsou schválně uložená jinde.
|
||||
Po obnově ze zálohy se prostě nastaví znovu.
|
||||
Reference in new issue
Block a user