diff --git a/data/dbus/org.karapace.Manager1.service b/data/dbus/org.karapace.Manager1.service new file mode 100644 index 0000000..5d120b6 --- /dev/null +++ b/data/dbus/org.karapace.Manager1.service @@ -0,0 +1,4 @@ +[D-BUS Service] +Name=org.karapace.Manager1 +Exec=/usr/bin/karapace-dbus +SystemdService=karapace-dbus.service diff --git a/data/systemd/karapace-dbus.service b/data/systemd/karapace-dbus.service new file mode 100644 index 0000000..fa649fb --- /dev/null +++ b/data/systemd/karapace-dbus.service @@ -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 diff --git a/examples/dev.toml b/examples/dev.toml new file mode 100644 index 0000000..cef40ac --- /dev/null +++ b/examples/dev.toml @@ -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 + +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" diff --git a/examples/gui-dev.toml b/examples/gui-dev.toml new file mode 100644 index 0000000..1d96c73 --- /dev/null +++ b/examples/gui-dev.toml @@ -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 +# karapace export-app 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" diff --git a/examples/minimal.toml b/examples/minimal.toml new file mode 100644 index 0000000..7ed4d1b --- /dev/null +++ b/examples/minimal.toml @@ -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 + +manifest_version = 1 + +[base] +image = "rolling" # openSUSE Tumbleweed + +[runtime] +backend = "namespace" diff --git a/examples/rust-dev.toml b/examples/rust-dev.toml new file mode 100644 index 0000000..af838e6 --- /dev/null +++ b/examples/rust-dev.toml @@ -0,0 +1,20 @@ +# Rust development environment — ready for Rust/Cargo development. +# +# Usage: +# karapace build examples/rust-dev.toml +# karapace enter +# # 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" diff --git a/examples/ubuntu-dev.toml b/examples/ubuntu-dev.toml new file mode 100644 index 0000000..25c7290 --- /dev/null +++ b/examples/ubuntu-dev.toml @@ -0,0 +1,19 @@ +# Ubuntu-based developer environment — for teams requiring Ubuntu toolchains. +# +# Usage: +# karapace build examples/ubuntu-dev.toml +# karapace enter + +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"