# What is Debark?

A CLI and desktop app for getting Debian and Ubuntu packages onto machines without internet access.

Source: https://debark.dev/docs/introduction/what-is-debark

---
Debark prepares software for an offline Debian or Ubuntu machine. It downloads the packages
you ask for, plus the dependencies that machine needs, into a folder you can copy over.

## The basic workflow

1. Choose a baseline OS, or capture a snapshot of the offline machine’s installed packages and apt settings.
2. Use that target on an online computer to download your packages and their missing dependencies.
3. Copy the resulting bundle to the offline machine and install it with the CLI.

A [baseline OS](/docs/get-started/no-target-machine) lets you start without a snapshot by choosing
a stock Debian or Ubuntu installation. Use a snapshot when you need the machine’s actual state.
Either way, dependency planning uses the selected target’s package set.

## CLI and desktop app

The **CLI** handles the whole workflow: snapshots, downloads, verification, and installation.
Its executable is currently named `debark`.

Run `debark build --interactive` for [guided questions](/docs/get-started/interactive), or
pass the target and packages directly as command-line options.

The **desktop app** runs on the online Linux computer. It adds a searchable package catalogue
and guides you through building and exporting a bundle.

Both are free and open source under Apache-2.0. There’s no account to create.

## What’s in a bundle?

A bundle contains .deb packages, an apt repository index, a list of exact package versions,
and checksums. You can sign it with your own key so the offline machine can verify its source
and contents before installing.

The folder also includes a `README.txt` summary. See the
[bundle format reference](/docs/reference/bundle-format) for the full file list.

## Requirements and limits

The offline machine must use Debian or Ubuntu apt packages. Downloads happen on the online
computer, using matching apt tools or a Docker / Podman container.

Snap and Flatpak apps aren’t included. Some .deb packages need network access during
installation; [check the bundle](/docs/guides/policy-and-doctor) before transferring it.

The project is pre-1.0, with [CLI and desktop downloads](/download) and source builds
available from the public repository. Check [known limitations](/docs/get-started/status)
for validation coverage. [Feature requests, questions, and bug reports](/docs/project/support)
are welcome.

<NextSteps
  items={[
    {
      title: 'Install the CLI',
      href: '/docs/get-started/installation',
      description: 'Build the executable and copy it to your machines.',
    },
    {
      title: 'Quickstart',
      href: '/docs/get-started/quickstart',
      description: 'Download and install one package offline.',
    },
    {
      title: 'Desktop app',
      href: '/docs/get-started/desktop',
      description: 'Browse packages and prepare a bundle with the GUI.',
    },
  ]}
/>
