2025-06-27 21:52:32 +02:00
2025-06-27 15:59:53 -03:00
2025-06-27 15:59:53 -03:00
2025-06-27 15:59:53 -03:00
2025-06-27 21:52:32 +02:00
2025-06-27 21:52:11 +02:00
2025-06-27 15:59:53 -03:00

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 and shepherd
  • 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
No description provided
Readme 74 KiB
Languages
Scheme 53.5%
C 26.8%
Shell 19.7%