This project is a self-contained Debian APT repository written in C# using ASP.NET Core MVC. It allows uploading .deb files, dynamically generating the Packages and Release files, and serving them with GPG signing—all in memory.
- Upload
.debfiles via API - Parses and indexes
.debmetadata - Dynamically generates
PackagesandReleasefiles - GPG signs the
Releasefile using system GPG - Fully functional APT repository (no static files)
POST /repo/upload- Upload a.debfileGET /repo/dists/stable/Release- Signed release metadataGET /repo/dists/stable/main/binary-amd64/Packages- Package indexGET /repo/pool/main/{filename}- Download.debfile
docker build -t debianrepo .
docker run -p 5048:5048 -e GPG_PASSPHRASE="YOUR_GPG_PASSPHRASE" -e JWT_SECRET="YOUR_JWT_SECRET" -e DEB_STORAGE_PATH="/storage/" -v /path/to/private.asc:/private.asc -v /path/to/deb/file/storage:/storage debianrepocurl -fsSL http://localhost:5048/debian/pubkey.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/debrepo.gpg > /dev/null
echo "deb [signed-by=/etc/apt/trusted.gpg.d/debrepo.gpg] http://localhost:5048/repo stable main" | sudo tee /etc/apt/sources.list.d/debrepo.list
sudo apt update
sudo apt install your-package-name- You must have a RSA 4096 private-key in
.ascformat with a passphrase - HTTPS is not configured in Docker (you can handle that via reverse proxy).