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.

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
Kør serveren
Én lille Go-binær, et brugernavn, en adgangskode, en mappe. Det er hele installationen.
Peg din enhed mod den
På et Sony A7: Netværk → FTP-overførsel, indtast vært, bruger og adgangskode. Tag billedet.
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.
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.
Bygger sammen med
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.