pihanepi/orchestrating/README.org
2026-06-04 13:37:38 +02:00

42 lines
1.3 KiB
Org Mode

#+OPTIONS: toc:nil
* INIT SYSTEM
** ROOT SERVICES (Currently none!)
=<service>.sh= to be symlinked to =/etc/init.d/podman-containers=
** USER SERVICES AND RUNLEVELS
=.config= folder to be symlinked to =~=
** * XDG VARIABLES AND RUNNING USER SERVICES ON LOGIN
=.profile= to be symlinked to =/home/$USER/.profile=
** RUN USERS SERVICES ON BOOT
Symlink =/etc/init.d/user= to =/etc/init.d/user.$usernames=. After add, add the latter service with =rc-update= as root.
** IF <USER> HAS PASSWORD
Add the following to a new file in =/etc/doas.d/=:
#+begin_src shell
permit nopass <user> as <user>
permit nopass root as <user>
#+end_src
* Timed cron jobs
First, swap built-in =crond= for =dcron=. We need to swap cron binaries since we would have to give setgid capabilites to the whole Busybox binary to use the included cron binary. We also need to install =libcap= to set capabilities:
#+begin_src shell
# apk add dcron libcap
** if crond is set up, remember to stop and delete it before continuing!
# rc-service dcron start
# rc-update add dcron
#+end_src
We now set up =$USER='s crontab as such:
#+begin_src shell
#crontab -u $USER -e
@weekly ID=git-back.weekly /home/$user/pihanepi/orchestrating/cronjobs/forgejo-clone/forgejo-clone.sh
#+end_src
Finally, check =/var/log/messages= to confirm everything ran successfully.