GithubHelp home page GithubHelp logo

marcus-arcadius / bubblejail Goto Github PK

View Code? Open in Web Editor NEW

This project forked from igo95862/bubblejail

0.0 1.0 0.0 357 KB

Bubblewrap based sandboxing for desktop applications

License: GNU General Public License v3.0

Python 96.68% Meson 2.92% Shell 0.41%

bubblejail's Introduction

Bubblejail

Language grade: Python Total alerts Python (mypy, flake8)

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

Manual Installation

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

Requirements

  • Python 3 (>= 3.9) - python interpreter
  • Python XDG - XDG standards for python
  • Python Tomli - TOML file support for python, tomli version
  • Python Tomli-W - writter part of tomli
  • Bubblewrap (>= 0.5.0) - sandboxing command line utility
  • XDG D-Bus Proxy - filtering dbus proxy
  • Desktop File Utils - to manipulate default applications
  • Python Qt5 - for GUI
  • Meson - build system
  • m4 - macro generator used during build
  • libseccomp - helper library for seccomp rules

Optional:

  • bash-completion - auto-completions for bash shell
  • fish - auto-completions for fish shell

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 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.

Command-line utility documentation

See man page:

man 1 bubblejail

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

  • common: settings that are not categorized
  • x11: X windowing system. Also includes Xwayland.
  • wayland: Pure wayland windowing system.
  • network: Access to network.
  • pulse_audio: Pulse Audio audio system.
  • home_share: Shared folder relative to home.
    • home_paths: List of path strings to share with sandbox. Required.
  • direct_rendering: Access to GPU.
    • enable_aco: Boolean to enable high performance Vulkan compiler for AMD GPUs.
  • systray: Access to the desktop tray bar.
  • joystick: Access to joysticks and gamepads.
  • root_share: Share access relative to /.
    • paths: List of path strings to share with sandbox. Required.
  • openjdk: Access to Java libraries.
  • notify: Access to desktop notifications.
  • ibus: Multilingual input.

Available profiles

  • firefox
  • firefox_wayland: Firefox on wayland
  • code_oss: open source build of vscode
  • steam
  • lutris
  • chromium
  • transmission-gtk
  • generic: most common services, useful for sandboxing applications without profiles

bubblejail's People

Contributors

igo95862 avatar djpohly avatar h0cheung avatar chocolateboy avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.