mirror of
https://github.com/marcoallegretti/karapace.git
synced 2026-03-26 13:33:09 +00:00
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:
parent
38be2c584d
commit
155efdf7c9
7 changed files with 127 additions and 0 deletions
4
data/dbus/org.karapace.Manager1.service
Normal file
4
data/dbus/org.karapace.Manager1.service
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
[D-BUS Service]
|
||||
Name=org.karapace.Manager1
|
||||
Exec=/usr/bin/karapace-dbus
|
||||
SystemdService=karapace-dbus.service
|
||||
22
data/systemd/karapace-dbus.service
Normal file
22
data/systemd/karapace-dbus.service
Normal 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
20
examples/dev.toml
Normal 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
28
examples/gui-dev.toml
Normal 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
14
examples/minimal.toml
Normal 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
20
examples/rust-dev.toml
Normal 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
19
examples/ubuntu-dev.toml
Normal 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"
|
||||
Loading…
Reference in a new issue