Reviewed-on: #1
Proposed Layout:
/etc/shepherd/
├── boot.d/ # Stage 1 Boot Scripts
│ ├── 1.sh # Main boot script
│ ├── pseudofs.scm
│ └── ... # Additional scripts
├── services.d/ # Installed but inactive services
│ ├── udev.scm # Example service (Scheme)
│ ├── networking.scm
│ └── ...
├── enabled.d/ # Active (enabled) services
│ ├── udev.scm
│ ├── networking.scm
│ └── ...
├── init.d/ # OpenRC compatibility layer
└── shepherd.scm # Main configuration file
/usr/bin/
└── shepherd-init.sh # Early boot initialization script
user/
├── user.scm # Main Shepherd user config file
└── user.d/ # Individual service definitions
└── helpers/ # Shell scripts for managing non-cooperative
services (e.g., ssh-agent, gpg-agent)
Instructions:
- Copy files to respective directories
- Edit file
/etc/shepherd/boot.d/misc.scm
changing "user-id" to your user name - Build and install
guile-fibers
andshepherd
- Compile seedrng and move it to
/usr/bin/
- Edit file
/etc/default/grub
line:GRUB_CMDLINE_LINUX="init=/usr/bin/shepherd-init"
- Update grub:
sudo grub-mkconfig -o /boot/grub/grub.cfg
- Reboot
This repo was inspired by: https://github.com/wreedb/void-shepherd
Description
Languages
Scheme
53.5%
C
26.8%
Shell
19.7%