servnest-mkosi/README.md

36 lines
1.9 KiB
Markdown

# ServNest system images generator
This is the sources to build system images of ServNest using mkosi 20. 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 Testing, 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:
```shell
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:
1. Load configuration from `mkosi.default` and `mkosi.default.d/<sysid>/mkosi.default`
2. Install packages according to configuration
3. Copy this repository to the container root
4. Run `mkosi.postinst`, which runs specific scripts inside `install`, 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>.