arkdep/README.md

58 lines
2.4 KiB
Markdown
Raw Normal View History

2023-08-09 12:59:28 +02:00
# Arkanium
A toolkit for building, deploying and maintaining a btrfs-based multi-root system.
2023-08-14 07:27:35 +02:00
## Packaging
### Custom configurations
#### Arch Linux-based
```text
arkanium-build.d
2023-08-14 07:29:46 +02:00
├── customlinux # Directory carrying a custom name
2023-08-14 08:38:13 +02:00
| ├── overlay # (Optional) Root filesystem overlay directory, contents are copied to root
2023-08-14 07:29:46 +02:00
| ├── base.list # Plain text file containing list of packages installed by pacstrap
| ├── package.list # (Optional) Plain text file containing list of packages installed by pacman
| ├── systemd.services # (Optional) Plain text file containing list of systemd services to enable
| ├── type # Plain text file, for configs of the Arch type should contain `archlinux`
2023-08-14 07:27:35 +02:00
```
### Building an image
Use the arkanium-build script to build your customlinux images.
```shell
2023-08-14 08:24:46 +02:00
sudo arkanium-build customlinux
2023-08-14 08:24:10 +02:00
2023-08-14 08:24:46 +02:00
# Or alternatively using a custom image name
2023-08-14 08:25:33 +02:00
sudo ARKANIUM_OVERWRITE_RANDOM='customlinux_v1.0' arkanium-build customlinux
2023-08-14 07:27:35 +02:00
```
Once done you can find compressed and uncompressed copies of your new image in the `target` directory.
2023-08-14 07:29:46 +02:00
Arkanium will by default generate a psuedo-random hex string and use this as the name of your image. This behaviour can be overwritten by assigning a custom name to the `ARKANIUM_OVERWRITE_RANDOM` environment variable.
2023-08-15 10:31:34 +02:00
## Repository
2023-08-15 10:34:15 +02:00
### Example repository layout
2023-08-15 10:31:34 +02:00
This would be a suitable layout if `repo_url` in `/arkanium/config` is set to `https://repo.example.com/arkanium`.
```text
repo.example.com
├── arkanium
2023-08-15 10:32:55 +02:00
| ├── list # Plain text file containing names of all available image types
2023-08-15 10:31:34 +02:00
| ├── customlinux
2023-08-15 10:32:55 +02:00
| | ├── database # Plain text file containing : delimited lists of all available images `image_name:compression_method:sha1sum`
2023-08-15 10:32:23 +02:00
| | ├── customlinux_v1.0.tar.zst # Compressed disk images
2023-08-15 10:36:30 +02:00
| | ├── customlinux_v2.0.tar.zst # Compressed disk images
2023-08-15 10:31:34 +02:00
```
### Example repository configuration
2023-08-15 10:36:30 +02:00
The list file in part optional, is it not utilized during the deployment process, but the user may use it in combination with the `arkanium-deploy list` command to all available images.
2023-08-15 10:31:34 +02:00
```text
customlinux
customlinux-gnome
customlinux-kde
```
The `database` file contains a `:` delimited list of all available images.
```text
customlinux_v1.0:zst:80ba4c7f3ff7a0ebce8e67d5b73f87c56af1b9f3
customlinux_v2.0:zst:d5f45b2dac77399b37231c6ec4e864d184d35cf1
2023-08-15 10:32:23 +02:00
```