Spring til indhold

Snart

Hver fil, agentklar ved ankomst.

pks-agent-ftp

En FTP/SFTP-server hvor hver uploadet fil lander med metadata ved siden af — færdig og klar til at en agent kan handle på den, i samme øjeblik overførslen er færdig.

Illustration af pks-agent-ftp

Filerne ankommer. Og så sker der ingenting.

Et kamera i felten, en scanner på netværket, en enhed der kun kan skubbe filer over FTP — de taler alle en protokol fra en anden tid, og så stopper de. Filen ligger i en mappe. Nogen skal opdage den, kopiere den, navngive den og fodre den ind i det næste skridt. Mellem uploadet og arbejdet står der altid et menneske, et script limet sammen ved midnatstid, eller en SaaS-mellemmand der holder på dine data. Det er i overleveringen, det går galt.

  • Enheder taler FTP, ikke din stak. Kameraer og feltudstyr skubber filer og regner med, at nogen sidder i den anden ende — det gør der sjældent.

  • En rå fil er ikke en udløser. Der findes intet rent, pålideligt signal, der siger "dette upload er færdigt, og her er alt, hvad vi ved om det."

  • Limlaget er en andens. Den sædvanlige løsning er en tredjeparts-indlæsningstjeneste, du ikke kontrollerer, parkeret mellem din enhed og dine data.

Sådan virker det

  1. Kør serveren

    Én lille Go-binær, et brugernavn, en adgangskode, en mappe. Det er hele installationen.

  2. Peg din enhed mod den

    På et Sony A7: Netværk → FTP-overførsel, indtast vært, bruger og adgangskode. Tag billedet.

  3. Hver fil lander med sin metadata

    Når et upload er færdigt, gemmes filen, og en `.meta.md`-fil skrives ved siden af den — hvem sendte den, hvornår, hvorfra, dens størrelse og SHA-256.

  4. Din agent holder øje med én mappe

    Filen ved siden af dukker først op, når filen er fuldt skrevet, så dens ankomst er det ene pålidelige "klar"-signal. Hold øje med den, og handl.

  • Bygget til kameraer

    Testet mod Sony α7-seriens indbyggede FTP-overførsel, inklusive de passiv-tilstands-finurligheder, rigtige kameraer afhænger af.

  • En følgefil til hver fil

    Hvert upload får en Markdown + YAML `.meta.md`, der noterer bruger, tidsstempel, kilde-IP, oprindelig sti, størrelse og SHA-256.

  • En udløser du kan stole på

    Følgefilen skrives først, når uploadet lukkes, så en agent, der holder øje med `*.meta.md`, aldrig handler på en halvskrevet fil.

  • Strukturen bevares

    Uploads bevarer enhedens egen mappestruktur under `uploads/<user>/`, så `DCIM/100MSDCF/` ankommer præcis som kameraet lagde det.

  • Én container, ét volumen

    Leveres som ét Docker-image med et vedvarende volumen — sæt det på en Hetzner-vært eller ind i Coolify, og det bevarer dine uploads på tværs af genstarter.

  • Ærlig om sine grænser

    v0 er almindelig FTP til et betroet netværk eller VPN — ingen skjulte overraskelser, med FTPS som det dokumenterede, bevidste næste skridt.

  • Vi skrev serveren, vi samlede den ikke. En lille Go FTP-server bygget fra fundamentet og op, ikke en fork af en andens indlæsningsplatform. Hver adfærd — passiv-port-intervallet, følgefil-kontrakten, rækkefølgen skriv-så-signalér — er en beslutning, vi tog med vilje.

  • Dine data forlader aldrig din disk. Filerne lander i en mappe, du ejer, på en vært, du selv kører. Der er ingen tredjeparts-indlæsningstjeneste mellem dit kamera og dit lager — intet at bryde ind i, intet at stole på ud over dig selv.

  • Den kører overalt, hvor en container kører. Ét image, et navngivet volumen, et port-interval. Direkte Docker på Hetzner eller styret gennem Coolify — samme binær, din infrastruktur, ingen platform-låsning.

  • Følgefilen er en kontrakt, ikke et tilfælde. En almindelig Markdown + YAML-fil, ethvert værktøj kan læse, designet så det næste lag i suiten kan bygge ovenpå den uden nogensinde at skulle forstå FTP. Fundamentet holder; alt ovenover det komponerer.

Dit kamera uploader. Din agent går i gang.

En lille FTP-server du selv ejer fra ende til ende. Peg et Sony A7 — eller en hvilken som helst enhed der taler FTP — mod den, og hver fil lander på disken med en maskinlæsbar fil ved siden af. I samme sekund uploadet er færdigt, har en agent alt, hvad den skal bruge for at gå i gang.

Udforsk hele suiten