Dumpen är ett privat bildarkiv för appikoner och temabilder. Du laddar upp PNG-bilder (512 × 512 eller 1254 × 1254), en och en eller många i taget som ZIP. Dumpen känner själv igen app, tema och upplösning och sorterar in bilderna. Varje bild får en fast publik länk, och hela teman kan laddas ner som ZIP.
Alla bilder är publika via sin länk, /bilder/.... Allt annat, alltså galleriet, uppladdning och radering, kräver inloggning.
docker.io (Debian/Ubuntu) eller motsvarande. Podman fungerar också.docker-compose.yml. Klistra in innehållet nedan.PUBLIC_URL (adressen du öppnar Dumpen på) och ett eget ADMIN_PASSWORD på minst 8 tecken.docker compose up -dservices:
dumpen:
image: docker.io/driftaegis/dumpen:1
restart: unless-stopped
ports:
- "8787:8787"
environment:
PUBLIC_URL: "http://localhost:8787"
AUTH_MODE: "password"
ADMIN_PASSWORD: "change-me-to-a-long-password"
CF_ACCESS_TEAM_DOMAIN: ""
CF_ACCESS_AUD: ""
CLOUDFLARE_API_TOKEN: ""
CLOUDFLARE_ACCOUNT_ID: ""
volumes:
- dumpen-data:/data
tunnel:
image: docker.io/cloudflare/cloudflared:latest
profiles: ["tunnel"]
restart: unless-stopped
command: tunnel --no-autoupdate run
environment:
TUNNEL_TOKEN: ""
depends_on:
- dumpen
volumes:
dumpen-data:
Välj med AUTH_MODE.
password (standard): en inloggningssida med lösenordet i ADMIN_PASSWORD. Sessionen gäller i 30 dagar. Om du byter lösenord loggas alla ut.
cloudflare-access: Cloudflare Access sköter inloggningen, med e-postkod, Google eller annan identitetsleverantör. Dumpen kontrollerar den signerade Access-token själv, så den som tar sig förbi Access släpps ändå inte in. Det kräver ett Cloudflare-konto med en domän:
http://dumpen:8787. Kopiera tunnelns token till TUNNEL_TOKEN.CF_ACCESS_AUD och teamdomänen (dittteam.cloudflareaccess.com) till CF_ACCESS_TEAM_DOMAIN. Sätt AUTH_MODE: "cloudflare-access" och PUBLIC_URL till det publika värdnamnet.<värdnamn>/bilder/* med policyn Bypass → Everyone. Har zonen Hotlink Protection påslaget behövs också en konfigurationsregel som stänger av det för /bilder/, annars visas bilderna inte på andra sidor, som App Launcher.docker compose --profile tunnel up -d| Variabel | Krävs | Standard | Betydelse |
|---|---|---|---|
PUBLIC_URL |
Ja | http://localhost:8787 |
Adressen Dumpen nås på. Bildlänkarna byggs från den, så ange den publika adressen om bilderna ska användas utanför ditt nätverk. |
AUTH_MODE |
Nej | password |
password eller cloudflare-access. |
ADMIN_PASSWORD |
Med password |
– | Minst 8 tecken, gärna betydligt längre. |
CF_ACCESS_TEAM_DOMAIN |
Med cloudflare-access |
– | T.ex. dittteam.cloudflareaccess.com. |
CF_ACCESS_AUD |
Med cloudflare-access |
– | Access-applikationens AUD-tagg. |
CLOUDFLARE_API_TOKEN |
Nej | – | Bara för funktionen “Använd i App Launcher”, som sätter ett temas ikoner på dina Cloudflare Access-appar. Behörighet: Access: Apps and Policies: Edit. |
CLOUDFLARE_ACCOUNT_ID |
Nej | – | Ditt Cloudflare-konto-id, för samma funktion. |
TUNNEL_TOKEN (tjänsten tunnel) |
Nej | – | Token för Cloudflare Tunnel. |
PORT |
Nej | 8787 |
Porten inne i containern. |
Vill du inte ha värden som lösenord i compose-filen lägger du dem som NAMN=värde-rader i filen import.env i datavolymen (den som monteras på /data) och startar om containern. Vid starten sparas värdena i /data/settings.env, som bara containern kan läsa, och import.env raderas. För att ändra ett värde senare lägger du en ny import.env med bara den raden. En rad med NAMN= och inget värde tar bort inställningen. Värden som är ifyllda i compose-filen gäller före sparade värden.
/data, som lokal R2-lagring under /data/v3/r2/. Metadata om app, tema och storlek följer med varje bild.docker compose stop, kopiera volymen och kör docker compose start. Du kan också ladda ner varje tema som ZIP i gränssnittet. Den ZIP-filen kan importeras igen precis som den är.docker compose pull && docker compose up -d.1 ger alla uppdateringar inom version 1, 1.2 bara rättningar och 1.2.0 exakt en version.Containern talar vanlig HTTP på port 8787. Med cloudflare-access sköter tunneln HTTPS. Med password och åtkomst utifrån behövs en omvänd proxy med certifikat, till exempel Caddy, Traefik eller nginx. Sessionscookien får flaggan Secure automatiskt när sidan nås via HTTPS.
workerd, samma runtime som Cloudflare använder, via wrangler dev --local (Miniflare). De två R2-bucketarna (gallery och legacy) blir lokal lagring under /data. Bucketen legacy är tom och finns bara för att importfunktionen ska fungera.HttpOnly, SameSite=Strict) med utgångstid och en HMAC-SHA256-signatur, där ADMIN_PASSWORD är nyckeln. Lösenord och signatur jämförs i konstant tid, och fel lösenord ger en fördröjning. Ingen sessionsdata sparas på servern.GET och HEAD, och bara för tillåtna sökvägar och filtyper.node:22-bookworm-slim, kör som användaren node och har en healthcheck. Den byggs i två steg, så att bara den neutraliserade källkoden hamnar i det färdiga lagret.wrangler dev är en utvecklingsserver som kör en process på en maskin. Det räcker för ett privat bildarkiv men ger inte Cloudflares skalning eller CDN. Bilderna cachas bara med vanliga Cache-Control-huvuden.docker compose logs -f.1.3.2
tools/render.mjs skriver varje ifylld fil i en loop tills alla byte är skrivna, så att en kort skrivning inte kan lämna en avkortad fil.1.3.1
tools/render.mjs läser och skriver varje fil genom samma filbeskrivare, så att filen inte kan bytas ut mellan kontroll och skrivning.1.3.0
/data/import.env i stället för i compose-filen. De sparas i /data/settings.env och importfilen raderas.docker build -t dumpen ..1.2.0
/data.AUTH_MODE: password eller cloudflare-access, med valfri Cloudflare Tunnel.Dumpen har ingen angiven licens. Den medföljande komponenten pako har MIT-licens.