Skip to content

Repository files navigation

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

  • managed from GitHub releases
  • Debian packages
  • other source

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:

  • icecat — currently unavailable: the package was an installer-stub that downloads binaries from icecatbrowser.org at install time, and that site is down (and GNU's own releases stopped in 2019). The icecat debs are therefore removed from the repo until a working upstream source exists. update-icecat.sh remains in place to re-publish it when that happens.

    As a free, actively maintained alternative in the same spirit (libre, privacy- hardened, no telemetry), use LibreWolf's official signed apt repository instead:

    sudo apt update && sudo apt install extrepo -y
    sudo extrepo enable librewolf
    sudo apt update && sudo apt install librewolf -y

Credits

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

Donations

Coindrop.to me

License

MIT License Image

MIT License

Releases

Sponsor this project

Packages

Contributors

Languages