Gå til indhold

Installation

Ny her

Kør HolyArrs i Docker og åbn det i din browser. Det tager et par minutter.

  • En computer med Docker og Docker Compose.
  • Dine mediemapper, eller et sted at oprette dem. Læs først Mapper, hvis du vil have øjeblikkelige flytninger i stedet for kopier.
  • På en NAS, Unraid eller Synology, se NAS, Synology og Unraid. Uden Docker, se Portable arkiver.
  1. Opret en mappe til konfigurationen på en lokal disk, for eksempel /srv/holyarrs/config. Ikke en netværksdeling. På Docker Desktop skal du bruge et navngivet volume i stedet. Se Docker Desktop.

  2. Find den bruger og gruppe, der ejer dine mediemapper:

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

    Brug uid som PUID og gid som PGID.

  3. Gem dette som docker-compose.yml og ret stierne:

    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. Start det:

    Terminal window
    docker compose up -d
    docker compose ps

    Containeren vises som healthy, når HolyArrs svarer.

  5. Åbn http://your-server:6262 og opret ejerkontoen med det samme. Der er ingen standardadgangskode. Indtil du opretter kontoen, bliver den, der åbner HolyArrs først, ejer.

  6. Følg den opsætning, der åbner derefter. Se Første start.

Hvis du foretrækker 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 Hvad du får
latest Den nyeste version
1.0.0 (en hvilken som helst version) Præcis den version. Den ændrer sig aldrig

Indstillinger forklaret

Link til Indstillinger forklaret
Indstilling Hvad den gør
-p 6262:6262 Webappen.
-v /config Databaser, indstillinger, hovednøglen, backups og logs. Kun lokal disk.
-v /movies Valgfri. En biblioteksmappe til film.
-v /tv Valgfri. En biblioteksmappe til serier.
-v /music Valgfri. En biblioteksmappe til musik.
-v /downloads Valgfri. Downloaderens downloadmappe. Se Mediemapper.
--read-only=true Valgfri. Se Skrivebeskyttet rodfilsystem.
--user=1000:1000 Valgfri. Se Start som fast bruger.
Variabel Hvad den gør
PUID, PGID Den bruger og gruppe, HolyArrs kører som. 1000 og 1000, hvis du udelader dem.
TZ Tidszone, for eksempel Europe/Amsterdam.
UMASK Valgfri. Hvilke rettighedsbits nye filer ikke får, for eksempel 022 eller 002.
HOLYARRS_SAVE_PATH Valgfri. Downloaderens gemmemappe, som downloaderen ser den.
HOLYARRS_ALLOWED_HOSTS Valgfri. Ekstra værtsnavne, folk bruger til at nå HolyArrs, adskilt af komma.
HOLYARRS_TRUSTED_PROXIES Valgfri. Adressen eller netværket for din reverse proxy.
HOLYARRS_URL_BASE Valgfri. Kør HolyArrs under en sti. Se URL base og reverse proxies.
HOLYARRS_MASTER_KEY_FILE Valgfri. Læs hovednøglen fra en egen fil.

Enhver variabel kan komme fra en fil. Sæt FILE__ foran navnet og angiv filens sti som værdi:

environment:
- FILE__HOLYARRS_ALLOWED_HOSTS=/run/secrets/holyarrs_hosts

Ét linjeskift i slutningen af filen bliver fjernet. Det virker også for PUID, PGID, UMASK og TZ. Hvis filen mangler, stopper HolyArrs og nævner variablen i loggen. Værdien bliver aldrig skrevet ud.

Imaget indeholder HolyArrs og stort set intet andet. Det har ingen shell, så du kan ikke bruge docker exec til at kigge rundt i det. Læs loggen i stedet med docker logs holyarrs, eller åbn logs/holyarrs.log i konfigurationsmappen.

HolyArrs’ egne kommandoer virker stadig via docker exec:

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

Imagene bliver bygget til amd64, 64-bit ARM og 32-bit ARM. På en computer med omkring 2,5 GiB hukommelse eller mindre slår HolyArrs tilstand til lav hukommelse til af sig selv. Den første linje i loggen fortæller det.

Containeren starter kun som root for at sætte sig selv op. Den giver konfigurationsmappen til PUID:PGID, når det er nødvendigt, og skifter derefter for altid til den bruger. Den første linje i loggen viser bruger, gruppe og umask.

HolyArrs ændrer aldrig ejeren af dine medie- eller downloadmapper. Giv PUID-brugeren skriveadgang til dem selv. Læseadgang er ikke nok, fordi HolyArrs opretter mapper og flytter filer.

Nogle typer lager kan ikke skifte ejer, for eksempel NFS med root squash, SMB eller et skrivebeskyttet mount. HolyArrs skriver så en advarsel og fortsætter. Gør konfigurationsmappen skrivbar for PUID:PGID manuelt.

Brugerskiftet kræver rettighederne CHOWN, DAC_OVERRIDE, SETUID og SETGID. Docker giver dem som standard. Hvis du fjerner dem, stopper HolyArrs med en besked. Det falder ikke tilbage til root. Hvis du virkelig vil køre som root, så sæt PUID=0 og PGID=0.

Ekstra grupper fra group_add: bliver bevaret, når HolyArrs skifter bruger.

UMASK påvirker kun nye filer. Udelad den for at beholde 022, hvor du skriver og andre læser. Brug 002, når en gruppe også skal kunne skrive.

Monter kun de mapper, du bruger: /movies, /tv og /music som biblioteksmapper og /downloads som downloadmappe.

Tip om hardlinks (hårde koblinger): hver mappe, du monterer for sig, er et særskilt mount i containeren, og en fil kan ikke hardlinkes på tværs af mounts, så imports bliver fulde kopier. Hvis du vil have hardlinks, kan du i stedet montere én fælles overordnet mappe (med downloads og biblioteksmapper indeni) i stedet for de fire valgfrie mounts og give downloaderen det samme mount på samme sti. Den overordnede mappe skal også være ét filsystem. Separate NAS- delinger eller datasets under den bliver stadig kopieret. Settings > Library folders (Indstillinger > Biblioteksmapper) advarer dig, når HolyArrs er nødt til at kopiere.

HOLYARRS_SAVE_PATH bliver sendt til downloaderen med hver download, så den ændrer også, hvor downloaderen gemmer. Udelad den for at beholde downloaderens egen indstilling. Hvis du udelader den, så tilføj downloadmappen under Settings > Library folders > Extra import folders, så du kan importere manuelt fra den.

HolyArrs krypterer gemte adgangskoder, nøgler og tokens med en hovednøgle. Den første start opretter /config/holyarrs.key.

Backups indeholder aldrig denne nøgle. Gem en kopi et andet sted. Den nemme måde: som ejer skal du åbne Settings > Backups og vælge Download key kit (download nøglepakken). For at lægge den tilbage skal du omdøbe filen til holyarrs.key og lægge den i konfigurationsmappen, mens HolyArrs er stoppet. En gendannelse med en anden nøgle bliver afvist. Med et navngivet volume er der ingen mappe at åbne: kopier den ind med docker cp holyarrs.key hx:/config/ som i Docker Desktop. Skal du flytte til en ny computer? Læg nøglen tilbage først, og gendan derefter backuppen. Se Backups.

Du kan også gemme nøglen i en egen skrivebeskyttet fil:

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

Filen skal findes og indeholde 32 rå bytes, 64 hex-cifre eller base64 for 32 bytes. PUID-brugeren skal kunne læse den.

Genstart og gendannelse

Link til Genstart og gendannelse

Behold en genstartspolitik. En gendannelse bliver tjekket og klargjort, derefter afslutter HolyArrs med status 75, så Docker starter det igen og anvender den. unless-stopped klarer det.

For at opdatere en lokal build skal du bygge og genskabe uden at røre mounts:

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

Fjern aldrig /config under en opdatering. Se Opdateringer og Backups.

Værtsnavne og reverse proxies

Link til Værtsnavne og reverse proxies

IP-adresser og localhost virker fra start. Et hjemmenavn som tower.local, som du bruger under den første opsætning, bliver gemt for dig. Tilføj andre navne under Allowed host names (tilladte værtsnavne) i Settings > Sign-in and security (Indstillinger > Login og sikkerhed), eller i HOLYARRS_ALLOWED_HOSTS.

Når en reverse proxy tilføjer X-Forwarded-For, skal du kun skrive proxyens adresse eller netværk i HOLYARRS_TRUSTED_PROXIES. Uden den virker single sign-on, rigtige klientadresser og Secure-cookien ikke, og alle bag proxyen deler én loginbegrænsning. Loggen nævner den proxyadresse, du skal tilføje. Hvis en anden proxy står foran, for eksempel Cloudflare, så tilføj også dens områder.

Med nginx skal du sende begge headers:

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

Hvis de to er uenige, behandler HolyArrs den besøgende som uden for dit netværk.

Grundlæggende sikkerhed

Link til Grundlæggende sikkerhed
  • Videresend ikke port 6262 på din router. Brug et VPN som Tailscale, eller en reverse proxy med HTTPS.
  • Opret ejerkontoen lige efter den første start.
  • Gem en kopi af hovednøglen væk fra konfigurationsmappen.
  • Hold imaget opdateret.

Særlige opsætninger

Link til Særlige opsætninger

Docker Desktop (Windows og Mac)

Link til Docker Desktop (Windows og Mac)

Docker Desktop deler værtsmapper gennem et lag, hvor databaselåse ikke er sikre. HolyArrs afviser en /config der og viser løsningen på port 6262. Brug et navngivet volume til /config. Mediemapper kan forblive værtsmapper.

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:

For at flytte en gammel konfigurationsmappe ind i volumet skal du stoppe HolyArrs og køre:

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

For at kopiere backups ud: docker cp holyarrs:/config/backups .

På en Mac kan du, hvis du har tjekket, at fillåse virker i din mappe, sætte HOLYARRS_ALLOW_DESKTOP_FOLDER=1 for at starte alligevel. HolyArrs advarer ved hver start. Det ophæver aldrig afvisningen for netværksdelinger.

Skrivebeskyttet rodfilsystem

Link til Skrivebeskyttet rodfilsystem

Kun /config og /tmp skal være skrivbare:

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

PUID, PGID og UMASK virker stadig.

Start som fast bruger

Link til Start som fast bruger
services:
holyarrs:
user: "1000:1000"

HolyArrs ændrer så ingen ejere, så konfigurationsmappen skal allerede være skrivbar for den bruger. PUID og PGID bliver ignoreret, og loggen siger det. Det dækker også Kubernetes runAsUser.

Rootless Docker og Podman

Link til Rootless Docker og Podman

I rootless-tilstand er root inde i containeren din egen bruger, og andre id’er bliver koblet til høje numre på værten. Med PUID=1000 ender konfigurationsmappen med at være ejet af en fremmed på værten.

Du kører docker info eller podman info viser Brug
Normal Docker ingen rootless PUID og PGID som sædvanligt
Rootless Docker rootless under Security Options Valg 1
Rootless Podman rootless: true Valg 1 eller 2

Valg 1. Sæt PUID=0 og PGID=0. Det er kun sikkert i rootless-tilstand. Gør det aldrig med normal Docker eller på en NAS.

Valg 2. Podman med keep-id, som en Quadlet i ~/.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

Eller som én kommando:

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 er til SELinux-systemer. Brug :z på mapper, som downloaderen deler. Brug ingen af dem på en netværksdeling (NFS eller SMB): den kan ikke få nyt label, og containeren ville ikke starte.
  • Angiv tilstandstjekket som en liste. Imaget har ingen shell.
  • Behold genstartspolitikken always. Podmans tjeneste til start efter genstart starter kun always-containere.
  • For at starte efter en genstart uden at logge ind skal du køre loginctl enable-linger $USER én gang. Brug derefter Quadlet-filen, eller for podman run kør systemctl --user enable podman-restart.service.

Hvis mappen allerede tilhører et højt id, skal du stoppe containeren først og derefter:

  • Rootless Podman: podman unshare chown -R 0:0 ~/holyarrs/config (Valg 1) eller podman unshare chown -R 1000:1000 ~/holyarrs/config.
  • Rootless Docker: rootlesskit chown -R 0:0 ~/holyarrs/config, kørt via nsenter ind i den rootless daemon (nsenter -U --preserve-credentials -n -m -t $(cat $XDG_RUNTIME_DIR/docker.pid)).

Byg dit eget image

Link til Byg dit eget image

Fra HolyArrs-checkouten:

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

Brug derefter holyarrs:local som image.

Kør doctor først. Den tjekker konfigurationen, mapper, netværk og ur, og fortæller dig, hvordan du løser hvert problem.

  • Container kører: docker exec holyarrs /holyarrs doctor
  • Container bliver ved med at genstarte: docker compose run --rm holyarrs doctor

Se Fejlfinding for loggen og supportpakken.

Du ser Gør dette
Config folder is on a shared or network folder Brug en lokal disk, eller et navngivet volume på Docker Desktop. På Unraid skal du bruge /mnt/<pool>/appdata/holyarrs.
Config folder is in memory Læg /config på en disk. På Unraid: tjek, at stien til poolen findes. På en testcomputer tillader HOLYARRS_CONFIG_IN_MEMORY=yes det.
Config folder cannot be written Fjern :ro og tjek, at PUID:PGID ejer mappen.
Disk is full Frigør plads på den disk, der holder /config, og genstart derefter.
/config is not mapped Se nedenfor.
Cannot switch user Læg de fire rettigheder tilbage, eller brug user: "<uid>:<gid>".
PUID/PGID does not exist inside this container Id’erne ligger uden for det koblede område. Se Rootless Docker og Podman.
A FILE__ variable cannot be read Tjek stien, og at filen er monteret.
Permission denied Tjek PUID, PGID og skriveadgang på alle mapper.
Unknown host name Åbn HolyArrs via IP og tilføj navnet under Allowed host names.
Imports are copied Mount én fælles mappe. Se Mediemapper.
Master key does not match Læg den nøgle tilbage, der hører til de databaser.
Restore staged but the app stays down Tilføj en genstartspolitik og start containeren.

Glemte du at koble /config på?

Link til Glemte du at koble /config på?

HolyArrs starter stadig, men advarer overalt. Alt går tabt, når containeren bliver fjernet. Gem det først:

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

Kobl derefter ./holyarrs-config:/config på (eller et navngivet volume) og genskab containeren. På Docker Desktop (Windows og Mac) skal du bruge et navngivet volume, ikke en værtsmappe, og kopiere data ind som vist i Docker Desktop. En ældre opsætning kan stadig ligge i et unavngivet volume. List dem med docker volume ls.

HolyArrs er gratis. Hvis det sparede dig tid, kan du give det en stjerne på GitHub, sponsorere det eller give mig en kop kaffe.