Hoppa till innehåll

Installera

Ny här

Kör HolyArrs i Docker och öppna det i webbläsaren. Det tar några minuter.

  • En dator med Docker och Docker Compose.
  • Dina mediemappar, eller en plats där du kan skapa dem. Läs Mappar först om du vill att filer flyttas direkt i stället för att kopieras.
  • På en NAS, Unraid eller Synology, se NAS, Synology och Unraid. Utan Docker, se Portabla arkiv.
  1. Skapa en mapp för konfigurationen på en lokal disk, till exempel /srv/holyarrs/config. Inte en nätverksresurs. I Docker Desktop använder du en namngiven volym i stället. Se Docker Desktop.

  2. Ta reda på vilken användare och grupp som äger dina mediemappar:

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

    Använd uid som PUID och gid som PGID.

  3. Spara det här som docker-compose.yml och ändra sökvägarna:

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

    Terminal window
    docker compose up -d
    docker compose ps

    Containern visas som healthy så fort HolyArrs svarar.

  5. Öppna http://your-server:6262 och skapa ägarkontot direkt. Det finns inget standardlösenord. Tills du har skapat det blir den som öppnar HolyArrs först ägare.

  6. Följ konfigurationen som öppnas härnäst. Se Första start.

Om du hellre vill använda 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 Vad du får
latest Den senaste versionen
1.0.0 (valfri version) Exakt den versionen, ändras aldrig

Inställningarna förklarade

Länk till Inställningarna förklarade
Inställning Vad den gör
-p 6262:6262 Webbappen.
-v /config Databaser, inställningar, huvudnyckeln, backuper och loggar. Endast lokal disk.
-v /movies Valfri. En biblioteksmapp för filmer.
-v /tv Valfri. En biblioteksmapp för serier.
-v /music Valfri. En biblioteksmapp för musik.
-v /downloads Valfri. Nedladdarens mapp för nedladdningar. Se Mediemappar.
--read-only=true Valfri. Se Skrivskyddat rootfilsystem.
--user=1000:1000 Valfri. Se Starta som fast användare.
Variabel Vad den gör
PUID, PGID Användaren och gruppen som HolyArrs körs som. 1000 och 1000 om de utelämnas.
TZ Tidszon, till exempel Europe/Amsterdam.
UMASK Valfri. Vilka behörighetsbitar nya filer inte får, till exempel 022 eller 002.
HOLYARRS_SAVE_PATH Valfri. Nedladdarens sparmapp, så som nedladdaren ser den.
HOLYARRS_ALLOWED_HOSTS Valfri. Extra värdnamn som folk använder för att nå HolyArrs, kommaseparerade.
HOLYARRS_TRUSTED_PROXIES Valfri. Adressen eller nätverket för din reverse proxy.
HOLYARRS_URL_BASE Valfri. Kör HolyArrs under en sökväg. Se URL base och reverse proxies.
HOLYARRS_MASTER_KEY_FILE Valfri. Läs huvudnyckeln från en egen fil.

Vilken variabel som helst kan komma från en fil. Sätt FILE__ framför namnet och ange filens sökväg som värde:

environment:
- FILE__HOLYARRS_ALLOWED_HOSTS=/run/secrets/holyarrs_hosts

En radbrytning i slutet av filen tas bort. Det gäller även PUID, PGID, UMASK och TZ. Om filen saknas stoppar HolyArrs och nämner variabeln i loggen. Värdet skrivs aldrig ut.

Imagen innehåller HolyArrs och i stort sett inget mer. Den har inget shell, så du kan inte köra docker exec in i den för att titta runt. Läs loggen i stället med docker logs holyarrs, eller öppna logs/holyarrs.log i konfigurationsmappen.

HolyArrs egna kommandon fungerar fortfarande via docker exec:

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

Imager byggs för amd64, 64-bitars ARM och 32-bitars ARM. På en dator med ungefär 2,5 GiB minne eller mindre slår HolyArrs på läget för lite minne av sig självt. Den första loggraden berättar det.

Containern startar som root bara för att konfigurera sig själv. Den ger konfigurationsmappen till PUID:PGID vid behov och byter sedan till den användaren för gott. Den första loggraden visar användare, grupp och umask.

HolyArrs ändrar aldrig ägare på dina media- eller nedladdningsmappar. Ge PUID-användaren skrivrättigheter till dem själv. Läsrättigheter räcker inte, eftersom HolyArrs skapar mappar och flyttar filer.

Viss lagring kan inte byta ägare, till exempel NFS med root squash, SMB eller en skrivskyddad montering. HolyArrs loggar då en varning och fortsätter. Gör konfigurationsmappen skrivbar för PUID:PGID för hand.

För att byta användare krävs behörigheterna CHOWN, DAC_OVERRIDE, SETUID och SETGID. Docker ger dem som standard. Om du tar bort dem stoppar HolyArrs med ett meddelande. Det faller inte tillbaka på root. Om du verkligen vill köra som root, sätt PUID=0 och PGID=0.

Extra grupper från group_add: behålls när HolyArrs byter användare.

UMASK påverkar bara nya filer. Utelämna den för att behålla 022, där du skriver och andra läser. Använd 002 när en grupp också ska kunna skriva.

Montera bara mapparna du använder: /movies, /tv och /music som biblioteksmappar och /downloads som nedladdningsmapp.

Tips för hardlinks (hård länk): varje mapp du monterar för sig är en egen montering inuti containern, och en fil kan inte hardlinkas mellan monteringar, så importer blir fullständiga kopior. Om du vill ha hardlinks kan du montera en gemensam överordnad mapp (med nedladdningar och biblioteksmappar inuti) i stället för de fyra valfria monteringarna, och ge nedladdaren samma montering på samma sökväg. Den överordnade mappen måste dessutom vara ett enda filsystem. Separata NAS-resurser eller datasets under den kopierar fortfarande. Settings > Library folders (inställningar > biblioteksmappar) varnar dig när HolyArrs måste kopiera.

HOLYARRS_SAVE_PATH skickas till nedladdaren med varje nedladdning, så den ändrar också var nedladdaren sparar. Utelämna den för att behålla nedladdarens egen inställning. Om du utelämnar den, lägg till nedladdningsmappen under Settings > Library folders > Extra import folders (extra importmappar) så att du kan importera för hand från den.

HolyArrs krypterar sparade lösenord, nycklar och token med en huvudnyckel. Den första starten skapar /config/holyarrs.key.

Backuper innehåller aldrig den här nyckeln. Spara en kopia någon annanstans. Det enkla sättet: som ägare öppnar du Settings > Backups (inställningar > backuper) och väljer Download key kit (ladda ner nyckelpaketet). För att lägga tillbaka den döper du filen till holyarrs.key och lägger den i konfigurationsmappen medan HolyArrs är stoppat. En återställning med en annan nyckel avvisas. Med en namngiven volym finns det ingen mapp att öppna: kopiera in den med docker cp holyarrs.key hx:/config/ som i Docker Desktop. Flyttar du till en ny dator? Lägg tillbaka nyckeln först och återställ sedan backupen. Se Backuper.

Du kan också behålla nyckeln i en egen skrivskyddad fil:

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

Filen måste finnas och innehålla 32 råa bytes, 64 hexsiffror eller base64 för 32 bytes. PUID-användaren måste kunna läsa den.

Omstart och återställning

Länk till Omstart och återställning

Behåll en omstartspolicy. En återställning kontrolleras och förbereds, sedan avslutas HolyArrs med status 75 så att Docker startar det igen och tillämpar den. unless-stopped klarar det.

För att uppdatera ett lokalt bygge bygger du om och skapar om containern utan att röra monteringarna:

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

Ta aldrig bort /config under en uppdatering. Se Uppdateringar och Backuper.

Värdnamn och reverse proxies

Länk till Värdnamn och reverse proxies

IP-adresser och localhost fungerar direkt. Ett hemmanamn som tower.local som du använder vid första konfigurationen sparas åt dig. Lägg till andra namn under Allowed host names (tillåtna värdnamn) i Settings > Sign-in and security (inställningar > inloggning och säkerhet), eller i HOLYARRS_ALLOWED_HOSTS.

När en reverse proxy lägger till X-Forwarded-For anger du bara proxyns adress eller nätverk i HOLYARRS_TRUSTED_PROXIES. Utan den fungerar inte single sign-on, riktiga klientadresser och Secure-cookien, och alla bakom proxyn delar på en inloggningsgräns. Loggen nämner proxyadressen du ska lägga till. Om en annan proxy står framför, till exempel Cloudflare, lägg till dess intervall också.

Med nginx skickar du båda headrarna:

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

Om de två inte stämmer överens ser HolyArrs besökaren som utanför ditt nätverk.

Grundläggande säkerhet

Länk till Grundläggande säkerhet
  • Vidarebefordra inte port 6262 på din router. Använd ett VPN som Tailscale, eller en reverse proxy med HTTPS.
  • Skapa ägarkontot direkt efter den första starten.
  • Spara en kopia av huvudnyckeln på en annan plats än konfigurationsmappen.
  • Håll imagen uppdaterad.

Docker Desktop (Windows och Mac)

Länk till Docker Desktop (Windows och Mac)

Docker Desktop delar värdmappar genom ett lager där fillås för databaser inte är säkra. HolyArrs avvisar en /config där och visar lösningen på port 6262. Använd en namngiven volym för /config. Mediemappar kan förbli värdmappar.

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:

För att flytta en gammal konfigurationsmapp in i volymen stoppar du HolyArrs och kör:

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

För att kopiera ut backuper: docker cp holyarrs:/config/backups .

På en Mac, om du har kontrollerat att fillås fungerar i din mapp, sätt HOLYARRS_ALLOW_DESKTOP_FOLDER=1 för att starta ändå. HolyArrs varnar vid varje start. Det här häver aldrig avvisningen för nätverksresurser.

Skrivskyddat rootfilsystem

Länk till Skrivskyddat rootfilsystem

Bara /config och /tmp behöver vara skrivbara:

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

PUID, PGID och UMASK fungerar fortfarande.

Starta som fast användare

Länk till Starta som fast användare
services:
holyarrs:
user: "1000:1000"

HolyArrs ändrar då inga ägare, så konfigurationsmappen måste redan vara skrivbar för den användaren. PUID och PGID ignoreras och loggen säger det. Det här gäller även Kubernetes runAsUser.

Rootless Docker och Podman

Länk till Rootless Docker och Podman

I rootless-läge är root inuti containern din egen användare, och andra id:n mappas till höga nummer på värden. Med PUID=1000 hamnar konfigurationsmappen hos en främling på värden.

Du kör docker info eller podman info visar Använd
Vanlig Docker inget rootless PUID och PGID som vanligt
Rootless Docker rootless under Security Options Alternativ 1
Rootless Podman rootless: true Alternativ 1 eller 2

Alternativ 1. Sätt PUID=0 och PGID=0. Det här är säkert bara i rootless-läge. Gör det aldrig med vanlig Docker eller på en NAS.

Alternativ 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 ett enda 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 är för SELinux-system. Använd :z på mappar som nedladdaren delar. Använd ingetdera på en nätverksresurs (NFS eller SMB): den kan inte märkas om och containern skulle inte starta.
  • Ange hälsokontrollen som en lista. Imagen har inget shell.
  • Behåll omstartspolicyn always. Podmans tjänst för start efter omstart startar bara always-containrar.
  • För att starta efter en omstart utan att logga in kör du loginctl enable-linger $USER en gång. Använd sedan Quadlet-filen, eller för podman run kör systemctl --user enable podman-restart.service.

Om mappen redan tillhör ett högt id stoppar du containern först och kör sedan:

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

Från din HolyArrs-utcheckning:

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

Använd sedan holyarrs:local som image.

Kör doctor först. Den kontrollerar konfigurationen, mapparna, nätverket och klockan och berättar hur du åtgärdar varje problem.

  • Containern körs: docker exec holyarrs /holyarrs doctor
  • Containern startar om hela tiden: docker compose run --rm holyarrs doctor

Se Felsökning för loggen och supportpaketet.

Du ser Gör så här
Config folder is on a shared or network folder Använd en lokal disk, eller en namngiven volym i Docker Desktop. På Unraid använd /mnt/<pool>/appdata/holyarrs.
Config folder is in memory Lägg /config på en disk. På Unraid, kontrollera att poolens sökväg finns. För en testmaskin tillåter HOLYARRS_CONFIG_IN_MEMORY=yes det.
Config folder cannot be written Ta bort :ro och kontrollera att PUID:PGID äger mappen.
Disk is full Frigör utrymme på disken som innehåller /config och starta sedan om.
/config is not mapped Se nedan.
Cannot switch user Lägg tillbaka de fyra behörigheterna, eller använd user: "<uid>:<gid>".
PUID/PGID does not exist inside this container Id:na ligger utanför det mappade intervallet. Se Rootless Docker och Podman.
A FILE__ variable cannot be read Kontrollera sökvägen och att filen är monterad.
Permission denied Kontrollera PUID, PGID och skrivrättigheter på alla mappar.
Unknown host name Öppna HolyArrs via IP och lägg till namnet under Allowed host names.
Imports are copied Montera en gemensam mapp. Se Mediemappar.
Master key does not match Lägg tillbaka nyckeln som hör till de databaserna.
Restore staged but the app stays down Lägg till en omstartspolicy och starta containern.

Glömde du mappa /config?

Länk till Glömde du mappa /config?

HolyArrs startar ändå, men varnar överallt. Allt går förlorat när containern tas bort. Spara det först:

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

Mappa sedan ./holyarrs-config:/config (eller en namngiven volym) och skapa om containern. I Docker Desktop (Windows och Mac) använder du en namngiven volym, inte en värdmapp, och kopierar in datan som visas i Docker Desktop. Ett äldre upplägg kan fortfarande ligga i en onamngiven volym. Lista dem med docker volume ls.

HolyArrs är gratis. Om det sparade dig tid kan du ge det en stjärna på GitHub, sponsra det eller bjuda mig på en kaffe.