igo95862 / bubblejail

Bubblewrap based sandboxing for desktop applications
238 stars 16 forks source link

Bubblejail

Bubblejail is a bubblewrap-based alternative to Firejail.

Description

Bubblejail's design is based on observations of Firejail's faults.

One of the biggest issues with Firejail is that you can accidentally run unsandboxed applications and not notice.

Bubblejail, instead of trying to transparently overlay an existing home directory, creates a separate home directory.

Every Instance represents a separate home directory. Typically, every sandboxed application has its own home directory.

Each instance has a services.toml file which defines the configuration of the instance such as system resources that the sandbox should have access to.

Service represents some system resources that the sandbox can be given access to. For example, the Pulse Audio service gives access to the Pulse Audio socket so that the application can use sound.

Profile is a predefined set of services that a particular application uses. Using profiles is entirely optional.

Installation

Packages

Packaging status

AUR git

AUR stable

Fedora package .spec by @rusty-snake

Distro specific quirks

Void Linux

Alpine Linux

Manual Installation

If your distro does not have a package you can try to manually install with meson

Requirements

Build requirements
Runtime requirements
Runtime highly recommended dependencies
Optional

Using meson to install

  1. Run meson setup build to setup build directory
  2. Switch to build directory cd build
  3. Compile meson compile
  4. Install sudo meson install

If you want to uninstall run sudo ninja uninstall from build directory.

Screenshots

Configuration utility

bubblejailGUI

Quick start

  1. Install bubblejail from AUR git or AUR stable
  2. Install the application you want to sandbox (for example, firefox)
  3. Run GUI. (should be found under name Bubblejail Configuration)
  4. Press 'Create instance' button at the bottom.
  5. Select a profile. (for example, firefox)
  6. Optionally change name
  7. Press 'Create'
  8. The new instance is created along with new desktop entry.

Usage examples

Create new instance using firefox profile

bubblejail create --profile firefox FirefoxInstance

Run instance

bubblejail run FirefoxInstance

Create a generic instance without a desktop entry

bubblejail create --no-desktop-entry --profile generic Test

Available services

Available profiles

See following wiki guides on how to setup bubblejail if a particular application does not have a profile:

TODO