Upload files to "/"
This commit is contained in:
17
ADMIN.md
Normal file
17
ADMIN.md
Normal 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
1
DESCRIPTION.md
Normal 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
90
README.md
Normal 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
8
backup
Normal 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
52
manifest.toml
Normal 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"
|
||||||
Reference in New Issue
Block a user