feat: example manifests and service files

- examples/minimal.toml — bare openSUSE system
- examples/dev.toml — developer tools (git, vim, tmux, gcc, clang)
- examples/gui-dev.toml — GUI development with GPU + audio passthrough
- examples/ubuntu-dev.toml — Ubuntu-based with Node.js, Python, build-essential
- examples/rust-dev.toml — Rust development environment
- data/dbus/org.karapace.Manager1.service — D-Bus service activation file
- data/systemd/karapace-dbus.service — hardened systemd user unit
This commit is contained in:
Marco Allegretti 2026-02-22 18:38:24 +01:00
parent 38be2c584d
commit 155efdf7c9
7 changed files with 127 additions and 0 deletions

View file

@ -0,0 +1,4 @@
[D-BUS Service]
Name=org.karapace.Manager1
Exec=/usr/bin/karapace-dbus
SystemdService=karapace-dbus.service

View file

@ -0,0 +1,22 @@
[Unit]
Description=Karapace Environment Manager D-Bus Service
Documentation=https://github.com/karapace/karapace
[Service]
Type=dbus
BusName=org.karapace.Manager1
ExecStart=/usr/bin/karapace-dbus
# The service implements a 30s idle timeout internally;
# systemd will restart it on the next D-Bus activation.
TimeoutStopSec=5
Restart=on-failure
RestartSec=2
# Security hardening
ProtectSystem=strict
ProtectHome=read-only
ReadWritePaths=%h/.local/share/karapace
PrivateTmp=true
NoNewPrivileges=true
[Install]
WantedBy=default.target

20
examples/dev.toml Normal file
View file

@ -0,0 +1,20 @@
# Developer environment — common CLI tools for software development.
# Includes Git, build tools, and editors. No GUI.
#
# Usage:
# karapace build examples/dev.toml
# karapace enter <env_id>
manifest_version = 1
[base]
image = "rolling" # openSUSE Tumbleweed
[system]
packages = ["git", "curl", "vim", "neovim", "tmux", "htop", "make", "cmake", "gcc", "clang"]
[mounts]
workspace = "~/projects:/workspace"
[runtime]
backend = "namespace"

28
examples/gui-dev.toml Normal file
View file

@ -0,0 +1,28 @@
# GUI development environment — desktop app development with full host integration.
# Includes GPU, audio, Wayland/X11 passthrough, and common GUI libraries.
#
# Usage:
# karapace build examples/gui-dev.toml
# karapace enter <env_id>
# karapace export-app <env_id> my-app /usr/bin/my-app
manifest_version = 1
[base]
image = "rolling" # openSUSE Tumbleweed
[system]
packages = ["git", "curl", "cmake", "gcc", "clang", "gdb", "mesa-dri-devel"]
[gui]
apps = ["firefox"]
[hardware]
gpu = true
audio = true
[mounts]
workspace = "~/projects:/workspace"
[runtime]
backend = "namespace"

14
examples/minimal.toml Normal file
View file

@ -0,0 +1,14 @@
# Minimal Karapace environment — just a base system, no extras.
# Good for testing or as a starting point.
#
# Usage:
# karapace build examples/minimal.toml
# karapace enter <env_id>
manifest_version = 1
[base]
image = "rolling" # openSUSE Tumbleweed
[runtime]
backend = "namespace"

20
examples/rust-dev.toml Normal file
View file

@ -0,0 +1,20 @@
# Rust development environment — ready for Rust/Cargo development.
#
# Usage:
# karapace build examples/rust-dev.toml
# karapace enter <env_id>
# # Then inside: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
manifest_version = 1
[base]
image = "rolling" # openSUSE Tumbleweed
[system]
packages = ["git", "curl", "gcc", "make", "cmake", "pkg-config", "openssl-devel", "gdb"]
[mounts]
workspace = "~/projects:/workspace"
[runtime]
backend = "namespace"

19
examples/ubuntu-dev.toml Normal file
View file

@ -0,0 +1,19 @@
# Ubuntu-based developer environment — for teams requiring Ubuntu toolchains.
#
# Usage:
# karapace build examples/ubuntu-dev.toml
# karapace enter <env_id>
manifest_version = 1
[base]
image = "ubuntu/24.04" # Ubuntu Noble Numbat
[system]
packages = ["git", "curl", "build-essential", "cmake", "python3", "python3-pip", "nodejs", "npm"]
[mounts]
workspace = "~/projects:/workspace"
[runtime]
backend = "namespace"