Upload files to "/"

This commit is contained in:
2026-05-01 08:48:17 +02:00
commit 2145989988
5 changed files with 168 additions and 0 deletions

17
ADMIN.md Normal file
View File

@@ -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ść.

1
DESCRIPTION.md Normal file
View File

@@ -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.

90
README.md Normal file
View File

@@ -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.

8
backup Normal file
View File

@@ -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"

52
manifest.toml Normal file
View File

@@ -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"