Edasi sisu juurde

Paigaldamine

Uus siin

Käivita HolyArrs Dockeris ja ava see brauseris. See võtab paar minutit.

  • Arvuti, kus on Docker ja Docker Compose.
  • Sinu meediakaustad või koht, kuhu need teha. Loe enne läbi leht Kaustad, kui tahad koopiate asemel kohest liigutamist.
  • NAS-is, Unraidis või Synologys vaata lehte NAS, Synology ja Unraid. Ilma Dockerita vaata lehte Kaasaskantavad arhiivid.
  1. Tee seadete kaust kohalikul kettal, näiteks /srv/holyarrs/config. Mitte võrgujagamisse. Docker Desktopis kasuta selle asemel nimega volume’it. Vaata Docker Desktop.

  2. Leia kasutaja ja grupp, kellele sinu meediakaustad kuuluvad:

    Terminal window
    id youruser
    # uid=1000(youruser) gid=1000(youruser)

    Kasuta uid väärtust PUID-ina ja gid väärtust PGID-na.

  3. Salvesta see failina docker-compose.yml ja muuda teed:

    name: holyarrs
    services:
    holyarrs:
    image: holyarrs/holyarrs:latest
    container_name: holyarrs
    environment:
    - PUID=1000
    - PGID=1000
    - TZ=Etc/UTC
    volumes:
    - /srv/holyarrs/config:/config
    - /path/to/movies:/movies #optional
    - /path/to/tv:/tv #optional
    - /path/to/music:/music #optional
    - /path/to/downloads:/downloads #optional
    ports:
    - 6262:6262
    restart: unless-stopped
  4. Käivita see:

    Terminal window
    docker compose up -d
    docker compose ps

    Kui HolyArrs hakkab vastama, näitab konteiner olekut healthy.

  5. Ava http://your-server:6262 ja loo omaniku konto kohe. Vaikeparooli pole. Kuni sa kontot ei loo, saab omanikuks see, kes HolyArrsi esimesena avab.

  6. Järgi seadistust, mis järgmisena avaneb. Vaata Esimene käivitus.

Kui eelistad docker run:

Terminal window
docker run -d \
--name=holyarrs \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-p 6262:6262 \
-v /srv/holyarrs/config:/config \
-v /path/to/movies:/movies `#optional` -v /path/to/tv:/tv `#optional` -v /path/to/music:/music `#optional` -v /path/to/downloads:/downloads `#optional` \
--restart unless-stopped \
holyarrs/holyarrs:latest
Tag Mida sa saad
latest Uusim versioon
1.0.0 (mis tahes versioon) Täpselt see versioon, mis ei muutu kunagi
Säte Mida see teeb
-p 6262:6262 Veebirakendus.
-v /config Andmebaasid, seaded, peavõti, varukoopiad ja logid. Ainult kohalik ketas.
-v /movies Valikuline. Filmide meediakogu kaust.
-v /tv Valikuline. Sarjade meediakogu kaust.
-v /music Valikuline. Muusika meediakogu kaust.
-v /downloads Valikuline. Allalaadija allalaadimiskaust. Vaata Meediakaustad.
--read-only=true Valikuline. Vaata Kirjutuskaitstud juurfailisüsteem.
--user=1000:1000 Valikuline. Vaata Käivitamine kindla kasutajana.
Muutuja Mida see teeb
PUID, PGID Kasutaja ja grupp, kelle õigustes HolyArrs töötab. Kui jätad välja, on need 1000 ja 1000.
TZ Ajavöönd, näiteks Europe/Amsterdam.
UMASK Valikuline. Millised õigusebitid uutel failidel ära jäetakse, näiteks 022 või 002.
HOLYARRS_SAVE_PATH Valikuline. Allalaadija salvestuskaust sellisena, nagu allalaadija seda näeb.
HOLYARRS_ALLOWED_HOSTS Valikuline. Lisahostinimed, mille kaudu inimesed HolyArrsi avavad, komaga eraldatud.
HOLYARRS_TRUSTED_PROXIES Valikuline. Sinu reverse proxy aadress või võrk.
HOLYARRS_URL_BASE Valikuline. Teenindab HolyArrsi mingi tee all. Vaata URL base ja reverse proxyd.
HOLYARRS_MASTER_KEY_FILE Valikuline. Loeb peavõtme eraldi failist.

Iga muutuja võib tulla failist. Pane nime ette FILE__ ja anna väärtuseks faili tee:

environment:
- FILE__HOLYARRS_ALLOWED_HOSTS=/run/secrets/holyarrs_hosts

Faili lõpust jäetakse ära üks reavahetus. See töötab ka muutujate PUID, PGID, UMASK ja TZ puhul. Kui faili pole, HolyArrs peatub ja nimetab muutuja logis. Väärtust ta kunagi ei prindi.

Image sisaldab HolyArrsi ja peaaegu mitte midagi muud. Selles pole shelli, seega ringivaatamiseks ei saa docker exec abil sisse minna. Loe selle asemel logi käsuga docker logs holyarrs või ava seadete kaustas logs/holyarrs.log.

HolyArrsi enda käsud töötavad docker exec kaudu edasi:

Terminal window
docker exec holyarrs /holyarrs doctor
docker exec -i holyarrs /holyarrs reset-owner
docker exec holyarrs /holyarrs restore --pre-update

Image’id tehakse amd64, 64-bitise ARM-i ja 32-bitise ARM-i jaoks. Arvutis, kus on umbes 2.5 GiB mälu või vähem, lülitab HolyArrs vähese mälu režiimi ise sisse. Seda ütleb logi esimene rida.

Konteiner käivitub rootina ainult selleks, et ennast üles seada. Vajaduse korral annab see seadete kausta kasutajale PUID:PGID ja lülitub siis jäädavalt sellele kasutajale. Logi esimene rida näitab kasutajat, gruppi ja umaski.

HolyArrs ei muuda kunagi sinu meedia- ega allalaadimiskaustade omanikku. Anna PUID kasutajale nendele ise kirjutusõigus. Lugemisõigusest ei piisa, sest HolyArrs teeb kaustu ja liigutab faile.

Mõni ketas ei saa omanikke muuta, näiteks NFS root squashiga, SMB või kirjutuskaitstud haakepunkt. Siis HolyArrs logib hoiatuse ja jätkab. Tee seadete kaust käsitsi kirjutatavaks kasutajale PUID:PGID.

Kasutaja vahetamiseks on vaja õigusi CHOWN, DAC_OVERRIDE, SETUID ja SETGID. Docker annab need vaikimisi. Kui eemaldad need, HolyArrs peatub teatega. Ta ei lange tagasi rootile. Päriselt rootina käivitamiseks sea PUID=0 ja PGID=0.

Lisagrupid valikust group_add: jäävad alles, kui HolyArrs kasutajat vahetab.

UMASK mõjutab ainult uusi faile. Jäta see välja, et säiliks 022, kus sina kirjutad ja teised loevad. Kasuta 002, kui ka grupp peab kirjutama.

Haaka ainult need kaustad, mida kasutad: /movies, /tv ja /music meediakogu kaustadena ning /downloads allalaadimiskaustana.

Näpunäide hardlinkide (kõva link) jaoks: iga eraldi haagitud kaust on konteineris eraldi haakepunkt, ja faili ei saa haakepunktide vahel hardlinkida, seega importidest saavad täielikud koopiad. Kui tahad hardlinke, haaka nelja valikulise haakepunkti asemel hoopis üks ühine ülemkaust (selle sees on allalaadimis- ja meediakogu kaustad) ning anna allalaadijale sama haakepunkt samal teel. Ülemkaust peab olema ka üks failisüsteem. Selle all olevad eraldi NAS-i jagamised või datasetid kopeeritakse ikka. Settings > Library folders hoiatab sind, kui HolyArrs peab kopeerima.

HOLYARRS_SAVE_PATH saadetakse allalaadijale iga allalaadimisega, seega see muudab ka seda, kuhu allalaadija salvestab. Jäta see välja, et säiliks allalaadija enda säte. Kui jätad selle välja, lisa allalaadimiskaust kohta Settings > Library folders > Extra import folders, et saaksid sealt käsitsi importida.

HolyArrs krüpteerib salvestatud paroolid, võtmed ja tokenid peavõtmega. Esimesel käivitusel tehakse /config/holyarrs.key.

Varukoopiad ei sisalda seda võtit. Hoia koopiat mujal. Lihtne viis: omanikuna ava Settings > Backups ja vali Download key kit (laadi alla võtmepakett). Tagasi panemiseks nimeta fail holyarrs.key ja pane see seadete kausta, kui HolyArrs on peatatud. Taastamine teise võtmega lükatakse tagasi. Nimega volume’i puhul pole kausta, mida avada: kopeeri see sisse käsuga docker cp holyarrs.key hx:/config/, nagu lehel Docker Desktop. Kolid uude arvutisse? Pane enne võti tagasi, siis taasta varukoopia. Vaata Varukoopiad.

Võtit võid hoida ka eraldi kirjutuskaitstud failis:

environment:
- HOLYARRS_MASTER_KEY_FILE=/keys/holyarrs.key
volumes:
- /srv/holyarrs/keys:/keys:ro

Fail peab olema olemas ja sisaldama 32 toorbaiti, 64 kuueteistkümnendnumbrit või base64 kujul 32 baiti. PUID kasutaja peab seda saama lugeda.

Hoia taaskäivituse poliitika alles. Taastamine kontrollitakse ja valmistatakse ette, siis HolyArrs lõpetab olekukoodiga 75, et Docker selle uuesti käivitaks ja taastamise rakendaks. unless-stopped teeb selle ära.

Kohaliku build’i uuendamiseks ehita uuesti ja loo konteiner uuesti, haakepunkte puutumata:

Terminal window
docker build --file deploy/Dockerfile --tag holyarrs:local .
docker compose up -d --force-recreate

Ära eemalda uuenduse ajal kunagi /config. Vaata Uuendused ja Varukoopiad.

IP-aadressid ja localhost töötavad kohe. Koduse nime, näiteks tower.local, mida esimesel seadistamisel kasutad, salvestab HolyArrs sinu eest. Muud nimed lisa kohas Allowed host names (lubatud hostinimed) Settings > Sign-in and security alt või muutujas HOLYARRS_ALLOWED_HOSTS.

Kui reverse proxy lisab X-Forwarded-For, pane muutujasse HOLYARRS_TRUSTED_PROXIES ainult proxy aadress või võrk. Ilma selleta ei tööta single sign-on, päris kliendiaadressid ega Secure-küpsis ning kõik proxy taga olijad jagavad ühte sisselogimispiiri. Logi nimetab proxy aadressi, mida lisada. Kui ees on veel üks proxy, näiteks Cloudflare, lisa ka selle vahemikud.

Nginxiga saada mõlemad päised:

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Kui need kaks ei ühti, peab HolyArrs külastajat sinu võrgust väljaspool olevaks.

  • Ära suuna porti 6262 ruuteris edasi. Kasuta VPN-i, näiteks Tailscale’i, või reverse proxyt koos HTTPS-iga.
  • Loo omaniku konto kohe pärast esimest käivitust.
  • Hoia peavõtme koopiat seadete kaustast eraldi.
  • Hoia image ajakohasena.

Docker Desktop (Windows ja Mac)

Link jaotisele Docker Desktop (Windows ja Mac)

Docker Desktop jagab hosti kaustu kihi kaudu, kus andmebaasi failide lukud pole turvalised. HolyArrs keeldub seal /config kasutamast ja näitab lahendust pordil 6262. Kasuta /config jaoks nimega volume’it. Meediakaustad võivad jääda hosti kaustadeks.

name: holyarrs
services:
holyarrs:
image: holyarrs/holyarrs:latest
container_name: holyarrs
environment:
- TZ=Etc/UTC
volumes:
- holyarrs-config:/config
- C:/Media/movies:/movies
ports:
- 6262:6262
restart: unless-stopped
volumes:
holyarrs-config:

Vana seadete kausta viimiseks volume’i peata HolyArrs ja käivita:

Terminal window
docker create --name hx -v holyarrs-config:/config holyarrs/holyarrs:latest
docker cp C:\old\config\. hx:/config/
docker rm hx

Varukoopiate kopeerimiseks välja: docker cp holyarrs:/config/backups .

Macis sea HOLYARRS_ALLOW_DESKTOP_FOLDER=1, kui oled kontrollinud, et faililukud sinu kaustas töötavad, et HolyArrs ikka käivituks. HolyArrs hoiatab iga käivitusega. See ei tühista kunagi keeldumist võrgujagamiste puhul.

Kirjutuskaitstud juurfailisüsteem

Link jaotisele Kirjutuskaitstud juurfailisüsteem

Kirjutatavad peavad olema ainult /config ja /tmp:

services:
holyarrs:
read_only: true
tmpfs:
- /tmp

PUID, PGID ja UMASK töötavad edasi.

Käivitamine kindla kasutajana

Link jaotisele Käivitamine kindla kasutajana
services:
holyarrs:
user: "1000:1000"

Siis HolyArrs omanikke ei muuda, seega seadete kaust peab selle kasutaja jaoks juba kirjutatav olema. PUID ja PGID jäetakse arvestamata ja logi ütleb seda. See katab ka Kubernetese runAsUser.

Rootless-režiimis on root konteineri sees sinu enda kasutaja ja muud id-d vastenduvad hostis suurtele numbritele. Kui PUID=1000, jääb seadete kaust hostis võõrale kuuluma.

Sa kasutad docker info või podman info näitab Kasuta
Tavaline Docker pole rootless PUID ja PGID nagu tavaliselt
Rootless Docker rootless jaotises Security Options Valik 1
Rootless Podman rootless: true Valik 1 või 2

Valik 1. Sea PUID=0 ja PGID=0. See on turvaline ainult rootless-režiimis. Ära tee seda kunagi tavalise Dockeri puhul ega NAS-is.

Valik 2. Podman koos keep-id’ga, Quadletina failis ~/.config/containers/systemd/holyarrs.container:

[Container]
Image=holyarrs/holyarrs:latest
UserNS=keep-id
User=%U:%G
Volume=%h/holyarrs/config:/config:Z
PublishPort=6262:6262
HealthCmd=["/holyarrs","-healthcheck"]
HealthInterval=30s
[Service]
Restart=always
[Install]
WantedBy=default.target

Või ühe käsuna:

Terminal window
podman run -d --name holyarrs --userns=keep-id --user "$(id -u):$(id -g)" -v ~/holyarrs/config:/config:Z -p 6262:6262 --health-cmd '["/holyarrs","-healthcheck"]' --health-interval 30s --restart always holyarrs/holyarrs:latest
  • :Z on SELinuxi süsteemide jaoks. Kasuta :z kaustadel, mida allalaadija jagab. Võrgujagamisel (NFS või SMB) ära kasuta kumbagi: seda ei saa ümber märgistada ja konteiner ei käivituks.
  • Anna tervisekontroll loendina. Image’il pole shelli.
  • Hoia taaskäivituse poliitika always. Podmani taaskäivitusjärgne käivitusteenus käivitab ainult always konteinerid.
  • Et käivitada pärast taaskäivitust ilma sisse logimata, käivita üks kord loginctl enable-linger $USER. Siis kasuta Quadleti faili või podman run puhul käivita systemctl --user enable podman-restart.service.

Kui kaust kuulub juba suurele id-le, peata esmalt konteiner ja siis:

  • Rootless Podman: podman unshare chown -R 0:0 ~/holyarrs/config (Valik 1) või podman unshare chown -R 1000:1000 ~/holyarrs/config.
  • Rootless Docker: rootlesskit chown -R 0:0 ~/holyarrs/config, käivita nsenter kaudu rootless-deemonis (nsenter -U --preserve-credentials -n -m -t $(cat $XDG_RUNTIME_DIR/docker.pid)).

HolyArrsi checkoutist:

Terminal window
docker build --file deploy/Dockerfile --tag holyarrs:local .

Seejärel kasuta image’ina holyarrs:local.

Käivita esmalt doctor. See kontrollib seadeid, kaustu, võrku ja kella ning ütleb, kuidas iga probleemi lahendada.

  • Konteiner töötab: docker exec holyarrs /holyarrs doctor
  • Konteiner taaskäivitub pidevalt: docker compose run --rm holyarrs doctor

Logi ja tugipaketi kohta vaata Tõrkeotsing.

Näed Tee nii
Config folder is on a shared or network folder (seadete kaust on jagatud kaustas või võrgukaustas) Kasuta kohalikku ketast või Docker Desktopis nimega volume’it. Unraidis kasuta /mnt/<pool>/appdata/holyarrs.
Config folder is in memory (seadete kaust on mälus) Pane /config kettale. Unraidis kontrolli, et pooli tee on olemas. Testarvuti jaoks lubab selle HOLYARRS_CONFIG_IN_MEMORY=yes.
Config folder cannot be written (seadete kausta ei saa kirjutada) Eemalda :ro ja kontrolli, et PUID:PGID omavad kausta.
Disk is full (ketas on täis) Vabasta ruumi kettal, kus on /config, siis taaskäivita.
/config is not mapped (/config ei ole vastendatud) Vaata allpool.
Cannot switch user (kasutajat ei saa vahetada) Pane need neli õigust tagasi või kasuta user: "<uid>:<gid>".
PUID/PGID does not exist inside this container (PUID/PGID-d selles konteineris pole) Id-d on vastendatud vahemikust väljas. Vaata Rootless Docker ja Podman.
A FILE__ variable cannot be read (FILE__-muutujat ei saa lugeda) Kontrolli teed ja seda, et fail on haagitud.
Permission denied (ligipääs keelatud) Kontrolli PUID, PGID ja kirjutusõigust kõigil kaustadel.
Unknown host name (tundmatu hostinimi) Ava HolyArrs IP kaudu ja lisa nimi kohta Allowed host names.
Imports are copied (impordid kopeeritakse) Haaka üks ühine kaust. Vaata Meediakaustad.
Master key does not match (peavõti ei ühti) Pane tagasi võti, mis nendele andmebaasidele kuulub.
Restore staged but the app stays down (taastamine on ette valmistatud, aga rakendus jääb maha) Lisa taaskäivituse poliitika ja käivita konteiner.

Unustasid /config vastendamata?

Link jaotisele Unustasid /config vastendamata?

HolyArrs käivitub ikka, aga hoiatab igal pool. Kõik läheb kaotsi, kui konteiner eemaldatakse. Salvesta see enne:

Terminal window
docker stop holyarrs
docker cp holyarrs:/config ./holyarrs-config

Siis vastenda ./holyarrs-config:/config (või nimega volume) ja loo konteiner uuesti. Docker Desktopis (Windows ja Mac) kasuta nimega volume’it, mitte hosti kausta, ja kopeeri andmed sisse, nagu on näidatud lehel Docker Desktop. Vanem seadistus võib ikka asuda nimeta volume’is. Loetle need käsuga docker volume ls.

HolyArrs on tasuta. Kui see säästis sinu aega, anna talle GitHubis täht, toeta teda või osta mulle kohvi.