deb.tmiland.com

Update apt repo

A personal APT repository for Debian and Ubuntu (amd64) that tracks a curated set of applications and packages the latest upstream releases — either native .deb release assets or AppImages repackaged as .deb. The repository is regenerated, signed and published hourly by GitHub Actions, and served via GitHub Pages.

Usage

Add the repository and its signing key:

sudo curl -SsL -o /etc/apt/sources.list.d/tmiland.list https://deb.tmiland.com/debian/tmiland.list
curl -SsL https://deb.tmiland.com/debian/KEY.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/tmiland-archive-keyring.gpg >/dev/null
sudo apt update

Install any package from the list below, e.g.:

sudo apt install screencloud

Updates arrive through the normal apt upgrade; remove a package with sudo apt remove <package-name>.

Verify the signing key Key fingerprint: `7C44CFE8E3B971486A2E0A280A2998CB2E6D61E0`

Supported Software

The software below can be installed, updated and removed using this repository:

Source Package Name Description
AppFlowy An Open Source Alternative to Notion
balena-etcher Flash OS images to SD cards and USB drives, safely and easily.
bat cat(1) clone with wings.
bitwarden A secure and free password manager for all of your devices.
bruno Opensource API Client for Exploring and Testing APIs
discord Chat for Communities and Friends
dpkg Debian package management system
dpkg-repack Debian package archiving tool
draw.io draw.io desktop
duf Disk Usage/Free Utility
fzf Command-line fuzzy finder
github-desktop GitHub Desktop fork with advanced functionality and improvements.
goose Goose App
hugo A fast and flexible Static Site Generator written in Go.
hyper A terminal built on web technologies
ImHex ImHex Hex Editor
joplin Joplin for Desktop
libterm-spinner-color-perl A terminal spinner/progress bar with Unicode, color, and no non-core dependencies.
logitune Logitech device configurator for Linux
marktext A simple and elegant open-source markdown editor that focused on speed and usability.
nextcloud-desktop Nextcloud desktop synchronization client (repackaged from upstream nextcloud/desktop AppImage)
opencode The open source coding agent.
pandoc general markup converter
protonmail-bridge Proton Mail Bridge is a desktop application that runs in the background, encrypting and decrypting messages as they enter and leave your computer.
rustdesk A remote control software.
screencloud Easy to use screenshot sharing tool (repackaged from upstream olav-st/screencloud AppImage)
shield-optimizer Debloat and tune Android TV devices via ADB.
siyuan From thought to insight, with agents
snapweb Web client for Snapcast
spotube Open source extensible music streaming platform and app, based on BYOMM (Bring your own music metadata) concept
sshpilot modern, lightweight SSH connection manager
stirling-pdf Stirling-PDF Desktop Application
tabby-terminal A terminal for a modern age
teamspeak3-client VoIP chat for online gaming

Legend

Packages whose payload exceeds 25 MB are published as small install-stubs: apt install fetches a tiny control-only package whose postinst downloads and installs the real .deb from the release at install time. This keeps the Git repository within GitHub Pages size limits.

Managing packages

Each tracked package is a declarative config in packages/<name>.pkg (a TOML subset):

repo = 'owner/name'        # GitHub repo that publishes releases
asset = 'pkg_.*_all\.deb'  # regex matching the .deb release asset
name = 'apt-name'          # optional: apt package name (defaults to the file name)
package = 'apt-name'       # optional: override apt package name (stub repacks)
keep_versions = 2          # optional: keep only the newest N debs
summary = '...'            # optional: description injected into stubs with an empty upstream control
hide = 'app.desktop'       # optional: desktop file(s) to hide after install (keep a single launcher)
source = 'url'             # optional: track a direct-download URL instead of GitHub releases

To add an app: drop a new .pkg in packages/ and commit — the update workflow picks it up on the next run (hourly, or manually via Actions → Update apt repo → Run workflow).

The workflow checks every package, downloads new versions, regenerates and signs the repo metadata, smoke-tests it with apt, and pushes to master (served via GitHub Pages). Use --force <name> or --force all to rebuild a package (or every package) even when it is already up to date, e.g. after a change to the stub postinst.

One package is special:

Credits

Full write-up on the blog: https://tmiland.com/deb-tmiland-com/

Donations

Coindrop.to me</img>

License

MIT License Image

MIT License