No description
  • PHP 70.3%
  • TypeScript 25%
  • JavaScript 3%
  • Blade 0.9%
  • CSS 0.5%
  • Other 0.2%
Find a file
Stanektech Gallery e934919242 fix: nahrávání z telefonu; celé album z Androidu jako album v galerii
* Části velkých souborů se skládaly v systémovém temp (mimo
  open_basedir FPM) → poslední část každého souboru nad 8 MB 500.
  Teď na disku local vedle částí; nezapisovatelné úložiště 507 s důvodem.
* Klient: vše po částech, limity ze serveru (GET media/limity), při 413
  menší části, opakování s odstupem, HTML stránky chyb nejsou úspěch,
  chybějící části se dopošlou, české hlášky místo tichého selhání.
* Telefon: výběr více souborů i celé složky, „Uložit jako album" s názvem,
  průběh n z N, pauza, na pozadí, seznam chyb se „Zkusit znovu";
  hotové soubory jdou do alba hned (ZarazeniDoAlba).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 22:32:20 +02:00
.claude Galerie: náhledy vznikají, prohlížeč ukazuje fotku ostře, úpravy a alba se ukládají 2026-09-13 13:22:14 +02:00
.github/workflows ci: úloha MySQL je povinná 2026-09-27 01:57:04 +02:00
android-twa Revolut add 2026-07-16 02:29:11 +02:00
app fix: nahrávání z telefonu; celé album z Androidu jako album v galerii 2026-09-27 22:32:20 +02:00
bootstrap feat: trezor mimo cloud, hledání v celé knihovně, jedno rozhraní, přebití vlastníkem 2026-09-27 06:46:22 +02:00
config fix: stránky Inertia v resources/js/Pages i na Linuxu 2026-09-27 00:46:50 +02:00
database feat: k tisku, černý detail fotky a videa, připomínky cyklu 2026-09-27 19:12:26 +02:00
docs docs: kontrolní seznam nasazení, trezor mimo cloud, hledání — čtyřicáté sedmé kolo 2026-09-27 06:50:52 +02:00
lang fix: hlášky validace a přihlášení česky 2026-09-25 04:39:57 +02:00
public fix: nahrávání z telefonu; celé album z Androidu jako album v galerii 2026-09-27 22:32:20 +02:00
release-assets/android Fix type-check regressions, PHP parse error and restore Android APK 2026-08-04 00:24:29 +02:00
resources fix: nahrávání z telefonu; celé album z Androidu jako album v galerii 2026-09-27 22:32:20 +02:00
routes fix: nahrávání z telefonu; celé album z Androidu jako album v galerii 2026-09-27 22:32:20 +02:00
scripts Šedesát tlačítek, která hlásila úspěch a nic nedělala 2026-09-07 04:28:35 +02:00
storage/framework Initial commit: Stanektech Gallery v1.0 2026-07-03 23:21:35 +02:00
tests fix: nahrávání z telefonu; celé album z Androidu jako album v galerii 2026-09-27 22:32:20 +02:00
.editorconfig Initial commit: Stanektech Gallery v1.0 2026-07-03 23:21:35 +02:00
.env.example fix: videa — ověřený hardwarový kodér, fronta heavy, bez opakovaných převodů 2026-09-26 23:30:00 +02:00
.gitattributes Initial commit: Stanektech Gallery v1.0 2026-07-03 23:21:35 +02:00
.gitignore Publish signed Android APK in repository 2026-07-16 03:06:29 +02:00
.npmrc Initial commit: Stanektech Gallery v1.0 2026-07-03 23:21:35 +02:00
ARCHITECTURE.md fix(security): WebDAV do vnitřní sítě, disková úloha s cizím tokenem, pozvánky 2026-09-25 12:01:10 +02:00
artisan Zbylé dvě hlášky, srozumitelná chyba u špatného PHP a fronta, která umí stát 2026-08-25 11:20:32 +02:00
AUDIT_2026_07_11.md feat: expand shared travel and gallery workspace 2026-07-11 23:26:22 +02:00
BACKUP_AND_RESTORE.md feat: databáze se konečně zálohuje — a ze zálohy jde obnovit 2026-09-24 23:21:09 +02:00
composer.json Galerie: přihlášení tokenem a závislosti pro otisk 2026-09-05 23:31:48 +02:00
composer.lock Bezpečnost: přístup do galerie, klíče, mapa a soubory z knihovny 2026-09-13 11:48:13 +02:00
deploy.sh fix: deploy.sh — verze pro návrat, config:clear, PHP-FPM podle verze 2026-09-27 06:48:42 +02:00
DEPLOYMENT_ISPCONFIG.md docs: CSP pro statické stránky, MySQL povinná — čtyřicáté šesté kolo 2026-09-27 02:00:09 +02:00
GOOGLE_OAUTH_SETUP.md Initial commit: Stanektech Gallery v1.0 2026-07-03 23:21:35 +02:00
INOVACE_35.md feat: expand gallery trips memories and privacy 2026-07-08 00:13:59 +02:00
INTEGRACE_POSKYTOVATELE.md feat: expand shared travel and gallery workspace 2026-07-11 23:26:22 +02:00
NAVRH_20_FUNKCI_2026_07_11.md feat: expand shared travel and gallery workspace 2026-07-11 23:26:22 +02:00
NAVRH_60_FUNKCI_2026_07_11.md feat: expand shared travel and gallery workspace 2026-07-11 23:26:22 +02:00
NAVRH_120_DALSICH_FUNKCI.md feat: expand shared travel and gallery workspace 2026-07-11 23:26:22 +02:00
OMEZENI_EXTERNI_INTEGRACE.md feat: expand shared travel and gallery workspace 2026-07-11 23:26:22 +02:00
package-lock.json Revolut add 2026-07-16 02:17:53 +02:00
package.json Revolut add 2026-07-16 02:17:53 +02:00
phpunit.xml fix: hlášky validace a přihlášení česky 2026-09-25 04:39:57 +02:00
PLAN_TODO_FILMY_KINO_2026_07_15.md Refactor gallery app and update core UI flows 2026-07-15 11:10:26 +02:00
PREDANI_AGENTOVI.md Add a handoff document for whoever picks the project up next 2026-08-05 16:41:08 +02:00
README.md fix: nasazení v režimu údržby, kontrola cronu a pravdivé brány 2026-09-26 18:59:51 +02:00
REVOLUT_SPOLECNY_UCET_2026_07_15.md Refactor gallery app and update core UI flows 2026-07-15 11:10:26 +02:00
ROADMAP_10_FAZI.md feat: expand gallery trips memories and privacy 2026-07-08 00:13:59 +02:00
ROADMAP_DOKONCENI_SYSTEMU_2026_07_12.md Revolut add 2026-07-16 02:17:53 +02:00
SECURITY.md Initial commit: Stanektech Gallery v1.0 2026-07-03 23:21:35 +02:00
tsconfig.json Fix type-check regressions, PHP parse error and restore Android APK 2026-08-04 00:24:29 +02:00
vite.config.ts Revolut add 2026-07-16 02:17:53 +02:00

Stanektech Gallery

Soukroma foto/video galerie pro Adriana a Makinku na gallery.stanektech.cz. Plnohodnotna ne-AI alternativa k Immich/Google Photos.

Rychly start

composer install
npm install
cp .env.example .env
php artisan key:generate
# Nastavte DB credentials v .env
php artisan migrate --seed
npm run build
php artisan serve

Klic vlastnosti

  • Neomezene vnorena alba (closure table + materialized path)
  • Google Drive jako dlouhodobe uloziste originalu (OAuth 2.0)
  • Lokalni nahled — galerie se nacita bez Drive API requestu
  • Resumable upload (chunked upload do Laravelu + na Drive)
  • PWA s offline podporou a IndexedDB upload frontou
  • Timeline s virtualnim scrollingem a memories
  • Mapa (GPS + Leaflet)
  • Klasicke vyhledavani (MySQL FULLTEXT) — zadne AI
  • Hierarchicke tagy, rucni osoby, mista
  • Stacks, duplicity (SHA-256 + perceptual hash), XMP sidecary
  • Sdilena alba, verejne linky, guest upload
  • Kos, archiv, vzpominky, nedestruktivni editace
  • Admin dashboard, health endpointy, audit log
  • gallery:doctor — komplexni diagnosticky prikaz

Bez AI

Zadne AI, ML, embeddings, vektorove databaze, rozpoznavani obliceju.

Stack

Backend: Laravel (PHP 8.4.1+), MySQL/MariaDB, database queue Frontend: React 19, TypeScript, Inertia.js, Tailwind CSS, Vite, PWA Drive: Google Drive API v3, OAuth 2.0 Authorization Code Flow Media: Intervention Image, FFmpeg, ExifTool Server: ISPConfig, Apache, PHP-FPM 8.4, systemd, cron

PHP 8.4.1 je skutečné minimum — vynucuje ho bootstrap/preflight.php a odpovídají mu balíčky zamčené v composer.lock. composer.json se schválně nemění na "php": "^8.4": deploy.sh při každé změně composer.json spouští composer install a tam, kde composer na serveru chybí, se nasazení zastaví (v režimu údržby). Cronová řádka i PHP-FPM pool proto musí mířit na absolutní binárku PHP 8.4, ne na systémové php — deploy.sh to samo najde a nasazení mezitím drží aplikaci v režimu údržby (artisan down před git pull, artisan up až po reloadu PHP-FPM).