mkosi.extra | ||
mkosi.images | ||
.gitignore | ||
LICENSE.md | ||
mkosi.conf | ||
mkosi.finalize.chroot | ||
mkosi.nspawn | ||
mkosi.postinst.chroot | ||
README.md |
ServNest system images generator
This is the sources to build system images of ServNest using mkosi 22. You can then use them with systemd-nspawn.
This repository also contains configuration files and installation scripts inside install
that may also be useful for the manual installation process, without mkosi.
Usage
This generator allows to build images for both Arch Linux and Debian, you can replace <sysid>
by either sn-arch
or sn-debian
in the following examples. Note that mkosi may require tools that are not available on your distribution.
First:
- Put the ServNest source code inside
mkosi.extra/srv/servnest/core/
- Put a SFTPGo binary compiled as bundle in
mkosi.extra/usr/local/bin/sftpgo
(mkosi.extra/root/sftpgo.sh
is provided for this purpose) - Put your SSH public key in
mkosi.extra/root/.ssh/authorized_keys
You can generate a new image in /var/lib/machines/<sysid>
by running mkosi --force --image <sysid> build
from this repository (--force
erases an already existing image).
You need to copy mkosi.nspawn
into /etc/systemd/nspawn/<sysid>.nspawn
to allow the container to use network without restrictions.
You can then boot the container:
machinectl start <sysid>
machinectl shell <sysid>
The full explanation of the structure in this repository can be found on the mkosi manpage. Here is a summary of what mkosi will do in this repository:
- Load configuration from
mkosi.default
andmkosi.default.d/<sysid>/mkosi.default
- Install packages according to configuration
- Copy this repository to the container root
- Run
mkosi.postinst
, which runs specific scripts insideinstall
, which do configuration (depending on the distribution)
License
ServNest system images generator is ethical libre software: you can use, redistribute or modify it under the terms of the CNPL-NAv7+ as found in LICENSE.md or at https://git.pixie.town/thufie/npl-builder.