Guides
Debian APT repository support
ToDesktop now supports Linux APT repositories, making it easier to distribute your application to Debian-based Linux distributions (including Ubuntu, Linux Mint, Pop!_OS, and others). This feature allows your Linux users to:
- Install your application using their familiar package manager
- Receive automatic updates through their system's standard update mechanism
- Verify package authenticity using cryptographic signatures
With the APT repository feature, your Linux users can install and update your application just like any other system package, providing a seamless and native experience.
Prerequisites
Before using the APT repository feature, you must enable the Linux Debian artifact in your build settings:
- Navigate to your app's Build and Deploy settings in the ToDesktop dashboard
- Ensure "Linux Debian" is enabled as an artifact
If you have previously built your application without the Linux Debian artifact enabled, you'll need to create a new build with this option selected for the APT repository to work.
Setting Up the APT Repository
Users of your application can add your ToDesktop APT repository to their system using the following methods:
Quick Repository Setup
The easiest way for users to add your repository is with this one-line command:
This will download the repository configuration file directly to the proper location in their system.
If you're using a custom domain:
Installing Your Application
After adding the repository, users can install your application with:
That's it! The package manager will handle downloading and installing your application, and will automatically check for updates when the user runs system updates.
Automatic Updates
One of the main advantages of distributing your application through an APT repository is seamless automatic updates. Once users have installed your application using APT, they'll receive updates whenever you publish new versions to your ToDesktop repository.
Keeping Your App Up-to-Date
Users can update your application along with their other system packages using standard APT commands:
This command:
- Checks for updates to all installed packages (including your application)
- Downloads and installs any available updates
Many Linux distributions also provide automated update mechanisms or graphical update managers that will notify users when updates to your application are available.
For users who want to update only your application, they can run:
Custom PGP Key for Repository Signing
By default, ToDesktop signs your APT repository packages with our standard PGP key. However, you can now use your own PGP key for signing, which provides an additional layer of verification that the packages come from you.
Creating a PGP Key
If you don't already have a PGP key, you can create one using GPG:
- Quick key generation (recommended for most users):
- Export your private key:
For more advanced key generation options, you can use:
Uploading Your PGP Key to ToDesktop
Your PGP key is stored securely using Azure KeyVault.

To use your custom PGP key for signing Linux packages:
- Go to your app settings in the ToDesktop dashboard
- Navigate to the "Certificates" section
- Find the "Linux PGP Key (beta)" card
- Click "Add PGP Key"
- Select your private key file (the .asc file you exported)
- If your key is password-protected, enter the password
- Click "Save"
Once uploaded, ToDesktop will automatically use your PGP key to sign all packages in your APT repository. Users who previously added your repository will need to update their GPG key:
Benefits of Using Your Own PGP Key
- Brand consistency: The PGP key will show your organization's name in the signature
- Portability: If in the future you decided to move away from ToDesktop then you would have the possibility of migrating seamlessly because you don't have to change the key.
- Security: Our PGP key is shared with all ToDesktop customers, so using your own key provides an additional layer of security.
Note that if you don't provide a custom PGP key, ToDesktop will continue to sign your repository with our default key, so this step is optional.