#+OPTIONS: toc:nil * INIT SYSTEM ** ROOT SERVICES (Currently none!) =.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 HAS PASSWORD Add the following to a new file in =/etc/doas.d/=: #+begin_src shell permit nopass as permit nopass root as #+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, for which we also need to install =libcap=: #+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 # setcap cap_setgid=ep /usr/sbin/crond #+end_src After this, remember to add =root= and =$USER= to the =cron= group! 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.