From 2145989988b8c549a2adca71c51a2373858f3a4c Mon Sep 17 00:00:00 2001 From: Admin Sopel Date: Fri, 1 May 2026 08:48:17 +0200 Subject: [PATCH] Upload files to "/" --- ADMIN.md | 17 ++++++++++ DESCRIPTION.md | 1 + README.md | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++ backup | 8 +++++ manifest.toml | 52 +++++++++++++++++++++++++++++ 5 files changed, 168 insertions(+) create mode 100644 ADMIN.md create mode 100644 DESCRIPTION.md create mode 100644 README.md create mode 100644 backup create mode 100644 manifest.toml diff --git a/ADMIN.md b/ADMIN.md new file mode 100644 index 0000000..b2349b6 --- /dev/null +++ b/ADMIN.md @@ -0,0 +1,17 @@ +# Albumik - administracja + +Po instalacji zaloguj się kontem administratora podanym w instalatorze. + +## Role + +- Admin: pełny dostęp. +- Użytkownik: może mieć prawo tworzenia katalogów, wysyłania zdjęć i tagowania. +- Gość: może mieć podgląd oraz opcjonalnie wysyłanie zdjęć do akceptacji. + +## Katalogi + +Katalogi mogą mieć dowolne podkatalogi. Dostępy dziedziczą się z katalogu nadrzędnego, jeśli nie wyłączysz dziedziczenia. + +## Zdjęcia od gości + +Zdjęcia wysłane przez gościa mają status `pending` i trafiają do widoku „Do akceptacji”. Admin lub użytkownik z uprawnieniem zarządzania katalogiem może je zaakceptować, odrzucić, otagować albo przenieść. diff --git a/DESCRIPTION.md b/DESCRIPTION.md new file mode 100644 index 0000000..d98d95a --- /dev/null +++ b/DESCRIPTION.md @@ -0,0 +1 @@ +Albumik to lekka prywatna galeria zdjęć i filmów dla YunoHost. Obsługuje użytkowników, gości, katalogi z podkatalogami, uprawnienia, tagowanie, wyszukiwanie i akceptację zdjęć wysłanych przez gości. diff --git a/README.md b/README.md new file mode 100644 index 0000000..ad51597 --- /dev/null +++ b/README.md @@ -0,0 +1,90 @@ +# Albumik + +Lekka prywatna galeria zdjęć i filmów na YunoHost. + +## Co jest w tej wersji v0.1 + +- panel WWW w stylu zaakceptowanego mockupu, +- logowanie administratora, +- role: admin, użytkownik, gość, +- katalogi i podkatalogi wielopoziomowe, +- uprawnienia do katalogów, +- upload zdjęć i filmów przez WWW, +- gość może wysyłać zdjęcia do akceptacji, +- kolejka „Do akceptacji”, +- akceptacja / odrzucenie zdjęć, +- przenoszenie zdjęć pomiędzy katalogami, +- szybkie tagowanie, +- wyszukiwarka po nazwie, katalogu, tagach i dacie, +- dziennik zdarzeń, +- SQLite jako baza, +- brak AI, brak transkodowania, brak agresywnego generowania miniatur. + +## Instalacja na YunoHost + +Najprościej po wrzuceniu katalogu na serwer: + +```bash +sudo yunohost app install ./albumik_ynh +``` + +Podczas instalacji podajesz: + +- domenę, np. `albumik.serwer.be`, +- ścieżkę, najlepiej `/`, +- login administratora, +- hasło administratora. + +## Dane aplikacji + +Domyślne ścieżki po instalacji: + +```text +/var/www/albumik # kod aplikacji +/home/yunohost.app/albumik # baza, zdjęcia, logi +/etc/albumik/config.json # konfiguracja +``` + +Zdjęcia są trzymane zwykłymi plikami: + +```text +/home/yunohost.app/albumik/media/originals +/home/yunohost.app/albumik/media/pending +/home/yunohost.app/albumik/media/thumbs +/home/yunohost.app/albumik/media/previews +``` + +## Uruchomienie testowe poza YunoHost + +```bash +cd albumik_ynh +mkdir -p /tmp/albumik-data +cp conf/config.json /tmp/albumik-config.json +sed -i 's#__PORT__#8097#g' /tmp/albumik-config.json +sed -i 's#__PATH__##g' /tmp/albumik-config.json +sed -i 's#__DATA_DIR__#/tmp/albumik-data#g' /tmp/albumik-config.json +sed -i "s#__INSTALL_DIR__#$(pwd)#g" /tmp/albumik-config.json +sed -i 's#__ADMIN_USER__#admin#g' /tmp/albumik-config.json +sed -i 's#__ADMIN_PASSWORD__#admin123#g' /tmp/albumik-config.json +ALBUMIK_CONFIG=/tmp/albumik-config.json python3 backend/app.py +``` + +Wejście: + +```text +http://127.0.0.1:8097 +login: admin +hasło: admin123 +``` + +## Ważne założenie wydajnościowe + +Albumik nie działa jak Immich. Serwer nie ma mielić zdjęć w tle. + +W docelowej aplikacji Android telefon będzie wysyłał: + +1. oryginał, +2. lekką miniaturę, +3. opcjonalny podgląd. + +Serwer ma przede wszystkim zapisywać i udostępniać pliki. diff --git a/backup b/backup new file mode 100644 index 0000000..7427db1 --- /dev/null +++ b/backup @@ -0,0 +1,8 @@ +#!/bin/bash +set -euo pipefail +source ./scripts/_common.sh + +mkdir -p "$YNH_BACKUP_DIR" +tar -C / -czf "$YNH_BACKUP_DIR/albumik-data.tar.gz" "${data_dir#/}" "${config_dir#/}" "${install_dir#/}" 2>/dev/null || true +if [ -f "$service_file" ]; then cp "$service_file" "$YNH_BACKUP_DIR/$app.service"; fi +echo "Albumik backup declared" diff --git a/manifest.toml b/manifest.toml new file mode 100644 index 0000000..51f5b35 --- /dev/null +++ b/manifest.toml @@ -0,0 +1,52 @@ +packaging_format = 2 +id = "albumik" +name = "Albumik" +description.en = "Lightweight private photo album with folder permissions and guest uploads" +description.pl = "Lekki prywatny album zdjęć z katalogami, gośćmi i akceptacją zdjęć" +version = "0.1.0~ynh1" +maintainers = ["Filip"] + +[upstream] +license = "AGPL-3.0-or-later" +website = "https://albumik.serwer.be" + +[integration] +yunohost = ">= 12.0" +architectures = "all" +multi_instance = true +ldap = false +sso = false +disk = "50M" +ram.build = "50M" +ram.runtime = "80M" + +[install] + [install.domain] + type = "domain" + + [install.path] + type = "path" + default = "/" + + [install.admin_user] + ask.en = "Initial admin login" + ask.pl = "Login pierwszego administratora" + type = "string" + default = "admin" + + [install.admin_password] + ask.en = "Initial admin password" + ask.pl = "Hasło pierwszego administratora" + type = "password" + +[resources] + [resources.sources] + [resources.system_user] + [resources.install_dir] + [resources.data_dir] + [resources.permissions] + main.url = "/" + [resources.ports] + main.default = 8097 + [resources.apt] + packages = "python3"