2020-12-25 15:26:23 +01:00
|
|
|
# Dell Local Node Manager running on <http://172.19.138.20:4679/>
|
|
|
|
|
2020-11-12 19:40:41 +01:00
|
|
|
nodes['home.nas'] = {
|
2024-02-26 19:12:13 +01:00
|
|
|
'hostname': '172.19.138.20',
|
2020-11-12 19:40:41 +01:00
|
|
|
'bundles': {
|
2022-01-13 15:56:57 +01:00
|
|
|
'backup-client',
|
2024-02-25 14:47:55 +01:00
|
|
|
'dm-crypt',
|
2023-09-24 15:22:38 +02:00
|
|
|
'jellyfin',
|
2021-06-05 12:23:09 +02:00
|
|
|
'lm-sensors',
|
2022-12-07 04:24:38 +01:00
|
|
|
'mixcloud-downloader',
|
2021-04-03 09:36:47 +02:00
|
|
|
'mosquitto',
|
2020-11-12 19:59:02 +01:00
|
|
|
'nfs-server',
|
2023-08-28 17:21:48 +02:00
|
|
|
'rsyslogd',
|
2021-04-21 17:58:16 +02:00
|
|
|
'scansnap',
|
2020-11-29 12:07:27 +01:00
|
|
|
'smartd',
|
2020-11-13 16:29:42 +01:00
|
|
|
'vmhost',
|
2020-11-12 19:40:41 +01:00
|
|
|
'zfs',
|
|
|
|
},
|
2020-11-21 10:55:09 +01:00
|
|
|
'groups': {
|
|
|
|
'debian-bullseye',
|
2023-09-24 16:48:19 +02:00
|
|
|
'webserver',
|
2020-11-21 10:55:09 +01:00
|
|
|
},
|
2020-11-12 19:40:41 +01:00
|
|
|
'metadata': {
|
|
|
|
'interfaces': {
|
2023-03-27 13:52:23 +02:00
|
|
|
'br1138': {
|
2020-11-12 19:40:41 +01:00
|
|
|
'ips': {
|
|
|
|
'172.19.138.20/24',
|
|
|
|
},
|
|
|
|
'gateway4': '172.19.138.1',
|
2022-01-04 15:47:05 +01:00
|
|
|
'ipv6_accept_ra': True,
|
2020-11-12 19:40:41 +01:00
|
|
|
},
|
|
|
|
},
|
2020-11-14 12:25:52 +01:00
|
|
|
'apt': {
|
2022-01-23 05:47:42 +01:00
|
|
|
'unattended-upgrades': {
|
2020-11-14 12:25:52 +01:00
|
|
|
'day': 6,
|
2022-01-23 05:09:36 +01:00
|
|
|
# requires manual decryption of zfs after reboot
|
2022-01-23 05:47:42 +01:00
|
|
|
'reboot_enabled': False,
|
2020-11-14 12:25:52 +01:00
|
|
|
},
|
2021-05-01 15:18:21 +02:00
|
|
|
'packages': {
|
|
|
|
'mpv': {},
|
2021-09-16 15:22:31 +02:00
|
|
|
|
2023-10-30 20:14:15 +01:00
|
|
|
# for hardware transcoding of video
|
|
|
|
'firmware-amd-graphics': {},
|
|
|
|
'mesa-va-drivers': {},
|
|
|
|
|
2021-09-16 15:22:31 +02:00
|
|
|
# for compiling yate
|
|
|
|
'autoconf': {},
|
|
|
|
'subversion': {},
|
|
|
|
# svn checkout http://yate.null.ro/svn/yate/tags/RELEASE_6_4_0/ .
|
|
|
|
# ./autogen.sh
|
|
|
|
# ./configure --prefix=/opt/yate
|
|
|
|
# make -j8
|
|
|
|
# systemctl stop yate
|
|
|
|
# make install-noconf
|
|
|
|
# systemctl start yate
|
2021-05-01 15:18:21 +02:00
|
|
|
},
|
2020-11-14 12:25:52 +01:00
|
|
|
},
|
2020-11-13 12:58:23 +01:00
|
|
|
'backups': {
|
2022-01-13 15:56:57 +01:00
|
|
|
'paths': {
|
2022-02-05 15:39:33 +01:00
|
|
|
'/storage/nas/Audiobooks',
|
2022-01-13 15:56:57 +01:00
|
|
|
'/storage/nas/Bilder',
|
|
|
|
'/storage/nas/Bilder_Archiv',
|
2022-02-05 15:39:33 +01:00
|
|
|
'/storage/nas/Books',
|
2023-05-02 05:45:50 +02:00
|
|
|
'/storage/nas/Installer',
|
2022-01-13 15:56:57 +01:00
|
|
|
'/storage/nas/Musik',
|
2022-02-05 15:39:33 +01:00
|
|
|
'/storage/nas/Musikvideos',
|
|
|
|
'/storage/nas/normen',
|
2022-01-13 15:56:57 +01:00
|
|
|
},
|
2020-11-13 12:58:23 +01:00
|
|
|
},
|
2024-02-25 14:47:55 +01:00
|
|
|
'dm-crypt': {
|
|
|
|
'encrypted-devices': {
|
|
|
|
'/dev/disk/by-id/ata-ST18000NM0092-3CX103_ZVV06JV7-part1': {
|
|
|
|
'dm-name': 'sg-ZVV06JV7-1',
|
|
|
|
'passphrase': bwpass.password('bw/home.nas/dmcrypt/sg-ZVV06JV7-1'),
|
|
|
|
},
|
|
|
|
'/dev/disk/by-id/ata-ST18000NM0092-3CX103_ZVV06JV7-part2': {
|
|
|
|
'dm-name': 'sg-ZVV06JV7-2',
|
|
|
|
'passphrase': bwpass.password('bw/home.nas/dmcrypt/sg-ZVV06JV7-2'),
|
|
|
|
},
|
|
|
|
'/dev/disk/by-id/ata-ST18000NM0092-3CX103_ZVV06SLR-part1': {
|
|
|
|
'dm-name': 'sg-ZVV06SLR-1',
|
|
|
|
'passphrase': bwpass.password('bw/home.nas/dmcrypt/sg-ZVV06SLR-1'),
|
|
|
|
},
|
|
|
|
'/dev/disk/by-id/ata-ST18000NM0092-3CX103_ZVV06SLR-part2': {
|
|
|
|
'dm-name': 'sg-ZVV06SLR-2',
|
|
|
|
'passphrase': bwpass.password('bw/home.nas/dmcrypt/sg-ZVV06SLR-2'),
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2020-11-15 10:38:06 +01:00
|
|
|
'groups': {
|
|
|
|
'nas': {},
|
|
|
|
},
|
2021-06-03 13:59:15 +02:00
|
|
|
'firewall': {
|
2021-03-26 18:55:20 +01:00
|
|
|
'port_rules': {
|
2023-09-24 20:59:58 +02:00
|
|
|
'4679/tcp': { # Dell ULNM
|
2021-04-03 09:36:47 +02:00
|
|
|
'172.19.136.0/25',
|
2021-03-26 18:55:20 +01:00
|
|
|
'172.19.138.0/24',
|
|
|
|
},
|
2023-09-24 20:59:58 +02:00
|
|
|
'5060/tcp': { # yate SIP
|
2021-03-26 18:55:20 +01:00
|
|
|
'home.snom-wohnzimmer',
|
2023-03-29 18:16:05 +02:00
|
|
|
'home.mitel-rfp35',
|
2021-03-26 18:55:20 +01:00
|
|
|
},
|
2023-09-24 20:59:58 +02:00
|
|
|
'5061/tcp': { # yate SIPS
|
2021-03-26 18:55:20 +01:00
|
|
|
'home.snom-wohnzimmer',
|
2023-03-29 18:16:05 +02:00
|
|
|
'home.mitel-rfp35',
|
2021-03-26 18:55:20 +01:00
|
|
|
},
|
|
|
|
# yate RTP uses some random UDP port. We cannot firewall
|
|
|
|
# it, because for incoming calls the other side decides
|
|
|
|
# which port to use. That's why we simply allow all UDP
|
|
|
|
# traffic from our SIP clients. It's fine to do so, because
|
|
|
|
# all sip clients are known to bundlewrap, so we won't have
|
|
|
|
# to deal with randomly changing IPs here.
|
|
|
|
'*/udp': {
|
|
|
|
'home.snom-wohnzimmer',
|
2023-03-29 18:16:05 +02:00
|
|
|
'home.mitel-rfp35',
|
2021-03-26 18:55:20 +01:00
|
|
|
},
|
|
|
|
},
|
2021-03-21 12:01:56 +01:00
|
|
|
},
|
2024-01-15 21:52:48 +01:00
|
|
|
'jellyfin': {
|
|
|
|
'restrict-to': {
|
|
|
|
'home.lgtv-wohnzimmer',
|
|
|
|
},
|
|
|
|
},
|
2021-04-03 09:36:47 +02:00
|
|
|
'mosquitto': {
|
|
|
|
'bridges': {
|
|
|
|
'c3voc': {
|
|
|
|
'peer': 'mqtt.c3voc.de',
|
|
|
|
'client_id': 'kunsi-home',
|
|
|
|
'auth': {
|
|
|
|
'username': vault.decrypt('encrypt$gAAAAABgaBa5UZyZlsMM9TV5pa-VyOieFWYzAslxWVnXjOeXHvF4kMHHSHSMOrv-U9k7Ec3mMCDuJFO3ybpOsZSeFQDL7GgEfw=='),
|
|
|
|
'password': vault.decrypt('encrypt$gAAAAABgaBbfm65cYBuod0UehWNmY0NfeUH9xsrP2kENYNF_LWP2iV5a8db_cqMoITwyjjBsHpvjaeDq07Z5K5nQ_BLZG6zPqapL-Qvp20wyck49Dy2R4V4='),
|
|
|
|
},
|
|
|
|
'topics': [
|
|
|
|
{
|
|
|
|
'pattern': '#',
|
|
|
|
'remote_prefix': '/voc/',
|
2021-12-25 20:11:09 +01:00
|
|
|
'local_prefix': 'voc'
|
2021-04-03 09:36:47 +02:00
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
},
|
|
|
|
'listeners': {
|
|
|
|
'8083': {
|
|
|
|
'protocol': 'websockets',
|
|
|
|
},
|
|
|
|
},
|
2021-05-15 08:52:37 +02:00
|
|
|
'tasmota-telegraf-topic': '/switch/#',
|
2021-04-03 09:36:47 +02:00
|
|
|
'restrict-to': {
|
|
|
|
'172.19.136.0/25',
|
2021-04-04 11:30:50 +02:00
|
|
|
'172.19.138.0/24',
|
2021-04-04 10:30:45 +02:00
|
|
|
},
|
|
|
|
},
|
2020-11-12 19:59:02 +01:00
|
|
|
'nfs-server': {
|
|
|
|
'shares': {
|
2021-04-21 17:58:16 +02:00
|
|
|
'/storage/download': {
|
2021-06-03 07:45:56 +02:00
|
|
|
'home.downloadhelper': 'rw,all_squash,anonuid=65534,anongid=1012,no_subtree_check',
|
2021-04-21 17:58:16 +02:00
|
|
|
},
|
2020-11-12 19:59:02 +01:00
|
|
|
'/storage/nas': {
|
2021-06-03 07:45:56 +02:00
|
|
|
'172.19.138.0/24': 'ro,all_squash,anonuid=65534,anongid=65534,no_subtree_check',
|
2020-11-12 19:59:02 +01:00
|
|
|
},
|
2021-05-23 17:41:19 +02:00
|
|
|
'/srv/paperless': {
|
2021-06-03 07:45:56 +02:00
|
|
|
'home.paperless': 'rw,all_squash,anonuid=65534,anongid=65534,no_subtree_check',
|
2021-05-23 17:41:19 +02:00
|
|
|
},
|
2021-04-21 17:58:16 +02:00
|
|
|
'/srv/scansnap': {
|
2021-06-03 07:45:56 +02:00
|
|
|
'172.19.138.0/24': 'rw,all_squash,anonuid=65534,anongid=65534,no_subtree_check',
|
2021-01-07 22:15:14 +01:00
|
|
|
},
|
2020-11-12 19:59:02 +01:00
|
|
|
},
|
|
|
|
},
|
2023-09-24 16:48:19 +02:00
|
|
|
'nginx': {
|
|
|
|
'vhosts': {
|
|
|
|
'jellyfin': {
|
|
|
|
'domain': 'jellyfin.home.kunbox.net',
|
|
|
|
'ssl': '_.home.kunbox.net',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2023-08-28 17:21:48 +02:00
|
|
|
'rsyslogd': {
|
|
|
|
'restrict-to': {
|
|
|
|
'home',
|
|
|
|
},
|
|
|
|
},
|
2020-11-29 12:07:27 +01:00
|
|
|
'smartd': {
|
|
|
|
'disks': {
|
|
|
|
'/dev/nvme0',
|
2020-12-18 18:00:32 +01:00
|
|
|
|
2024-02-25 14:47:55 +01:00
|
|
|
# encrypted disks
|
|
|
|
'/dev/disk/by-id/ata-ST18000NM0092-3CX103_ZVV06JV7',
|
|
|
|
'/dev/disk/by-id/ata-ST18000NM0092-3CX103_ZVV06SLR',
|
|
|
|
|
2020-12-18 18:00:32 +01:00
|
|
|
# ZFS cache disks
|
2024-02-25 14:47:55 +01:00
|
|
|
#'/dev/disk/by-id/ata-TS64GSSD370_B807810503',
|
|
|
|
#'/dev/disk/by-id/ata-TS64GSSD370_B807810527',
|
2020-11-29 12:07:27 +01:00
|
|
|
},
|
|
|
|
},
|
2020-11-12 19:40:41 +01:00
|
|
|
'systemd-networkd': {
|
|
|
|
'bridges': {
|
|
|
|
'br0': {
|
|
|
|
'match': {
|
2023-03-29 18:16:05 +02:00
|
|
|
'eno1',
|
2020-11-12 19:40:41 +01:00
|
|
|
},
|
|
|
|
},
|
2023-03-27 13:52:23 +02:00
|
|
|
'br1138': {
|
2021-08-22 07:13:32 +02:00
|
|
|
'match': {
|
2023-03-27 13:52:23 +02:00
|
|
|
'br0.1138',
|
2021-08-22 07:13:32 +02:00
|
|
|
},
|
|
|
|
},
|
2020-11-12 19:40:41 +01:00
|
|
|
},
|
|
|
|
},
|
2022-02-06 13:40:54 +01:00
|
|
|
'systemd-timers': {
|
|
|
|
'timers': {
|
|
|
|
# Ensure every user is able to read and write to the NAS dataset.
|
|
|
|
'nas_permissions': {
|
2022-02-07 07:01:50 +01:00
|
|
|
'command': [
|
|
|
|
'chown -R :nas /storage/nas/',
|
|
|
|
'find /storage/nas/ -type d -exec chmod 0775 {} \;',
|
2022-02-06 13:40:54 +01:00
|
|
|
'find /storage/nas/ -type f -exec chmod 0664 {} \;',
|
2022-02-07 07:01:50 +01:00
|
|
|
],
|
2022-02-06 13:40:54 +01:00
|
|
|
'when': '*-*-* 02:00:00',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2020-11-27 03:10:11 +01:00
|
|
|
'openssh': {
|
2021-05-01 15:18:21 +02:00
|
|
|
'enable_x_forwarding_for_admins': True,
|
2020-11-27 03:10:11 +01:00
|
|
|
},
|
2020-11-13 16:29:42 +01:00
|
|
|
'users': {
|
2020-11-15 10:36:40 +01:00
|
|
|
'f2k1de': {
|
2024-02-03 19:12:53 +01:00
|
|
|
'delete': True,
|
2020-11-15 10:36:40 +01:00
|
|
|
},
|
2022-03-06 11:09:57 +01:00
|
|
|
'inbox': {
|
|
|
|
'ssh_pubkey': {
|
|
|
|
#'command="/usr/share/rsync/scripts/rrsync -wo /storage/inbox/",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ',
|
|
|
|
},
|
|
|
|
},
|
2020-11-13 16:29:42 +01:00
|
|
|
'kunsi': {
|
|
|
|
'groups': {
|
2020-11-15 10:38:06 +01:00
|
|
|
'nas',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
'sophie': {
|
|
|
|
'groups': {
|
|
|
|
'nas',
|
2020-11-13 16:29:42 +01:00
|
|
|
},
|
|
|
|
},
|
2021-07-24 12:10:54 +02:00
|
|
|
'qcn': {
|
2024-02-03 19:12:53 +01:00
|
|
|
'delete': True,
|
2021-07-24 12:10:54 +02:00
|
|
|
},
|
2020-11-13 16:29:42 +01:00
|
|
|
},
|
2020-11-13 12:58:23 +01:00
|
|
|
'zfs': {
|
2021-06-25 18:39:06 +02:00
|
|
|
'module_options': {
|
|
|
|
'zfs_arc_max_gb': 8,
|
|
|
|
},
|
2020-11-13 12:58:23 +01:00
|
|
|
'pools': {
|
2021-08-17 18:09:51 +02:00
|
|
|
'storage': {
|
|
|
|
'when_creating': {
|
|
|
|
'config': [
|
|
|
|
{
|
|
|
|
'type': 'raidz2',
|
|
|
|
'devices': {
|
|
|
|
'/dev/disk/by-id/ata-WDC_WD6003FFBX-68MU3N0_V8GE15GR',
|
|
|
|
'/dev/disk/by-id/ata-WDC_WD6003FFBX-68MU3N0_V8HJ406R',
|
|
|
|
'/dev/disk/by-id/ata-WDC_WD6003FFBX-68MU3N0_V8HJBTLR',
|
|
|
|
'/dev/disk/by-id/ata-WDC_WD6003FFBX-68MU3N0_V8HJGN6R',
|
2023-05-16 13:01:04 +02:00
|
|
|
'/dev/disk/by-id/ata-WDC_WD6003FFBX-68MU3N0_V9JS5UYL',
|
2021-08-17 18:09:51 +02:00
|
|
|
'/dev/disk/by-id/ata-WDC_WD6003FFBX-68MU3N0_V8J8ZKRR',
|
|
|
|
},
|
|
|
|
},
|
2024-02-25 14:47:55 +01:00
|
|
|
# {
|
|
|
|
# 'type': 'log',
|
|
|
|
# 'devices': {
|
|
|
|
# '/dev/disk/by-id/ata-TS64GSSD370_B807810503-part1',
|
|
|
|
# '/dev/disk/by-id/ata-TS64GSSD370_B807810527-part1',
|
|
|
|
# },
|
|
|
|
# },
|
|
|
|
# {
|
|
|
|
# 'type': 'cache',
|
|
|
|
# 'devices': {
|
|
|
|
# '/dev/disk/by-id/ata-TS64GSSD370_B807810503-part2',
|
|
|
|
# '/dev/disk/by-id/ata-TS64GSSD370_B807810527-part2',
|
|
|
|
# },
|
|
|
|
# },
|
|
|
|
],
|
|
|
|
'ashift': 12,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
'encrypted': {
|
|
|
|
'when_creating': {
|
|
|
|
'config': [
|
|
|
|
# These are new and fancy "dual actuator"
|
|
|
|
# drives, partitioned into two partitions
|
|
|
|
# taking 50% of the disk each.
|
2021-08-17 18:09:51 +02:00
|
|
|
{
|
2024-02-25 14:47:55 +01:00
|
|
|
'type': 'mirror',
|
2021-08-17 18:09:51 +02:00
|
|
|
'devices': {
|
2024-02-25 14:47:55 +01:00
|
|
|
'/dev/mapper/sg-ZVV06JV7-1',
|
|
|
|
'/dev/mapper/sg-ZVV06SLR-1',
|
2021-08-17 18:09:51 +02:00
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
2024-02-25 14:47:55 +01:00
|
|
|
'type': 'mirror',
|
2021-08-17 18:09:51 +02:00
|
|
|
'devices': {
|
2024-02-25 14:47:55 +01:00
|
|
|
'/dev/mapper/sg-ZVV06JV7-2',
|
|
|
|
'/dev/mapper/sg-ZVV06SLR-2',
|
2021-08-17 18:09:51 +02:00
|
|
|
},
|
|
|
|
},
|
|
|
|
],
|
2024-02-25 14:47:55 +01:00
|
|
|
'ashift': 12
|
2021-07-17 18:09:35 +02:00
|
|
|
},
|
2024-02-25 14:47:55 +01:00
|
|
|
'needs': {
|
|
|
|
'action:dm-crypt_open_sg-ZVV06JV7-1',
|
|
|
|
'action:dm-crypt_open_sg-ZVV06JV7-2',
|
|
|
|
'action:dm-crypt_open_sg-ZVV06SLR-1',
|
|
|
|
'action:dm-crypt_open_sg-ZVV06SLR-2',
|
|
|
|
},
|
|
|
|
# see comment in bundle:backup-server
|
|
|
|
'unless': 'zpool import encrypted',
|
2021-08-17 18:09:51 +02:00
|
|
|
},
|
2020-11-13 12:58:23 +01:00
|
|
|
},
|
|
|
|
'datasets': {
|
2024-02-25 14:47:55 +01:00
|
|
|
'encrypted': {
|
|
|
|
'primarycache': 'metadata',
|
|
|
|
},
|
|
|
|
'encrypted/nas': {
|
|
|
|
'acltype': 'off',
|
|
|
|
'atime': 'off',
|
|
|
|
'compression': 'off',
|
|
|
|
'mountpoint': '/media/nas',
|
|
|
|
},
|
2022-04-03 17:41:27 +02:00
|
|
|
'storage': {
|
|
|
|
'primarycache': 'metadata',
|
|
|
|
},
|
2020-11-16 15:28:16 +01:00
|
|
|
'storage/opt-yate': {
|
|
|
|
'mountpoint': '/opt/yate',
|
|
|
|
},
|
2020-11-13 12:58:23 +01:00
|
|
|
'storage/f2k1de': {
|
|
|
|
'mountpoint': '/storage/f2k1de',
|
|
|
|
},
|
2021-01-07 22:15:14 +01:00
|
|
|
'storage/download': {
|
|
|
|
'mountpoint': '/storage/download',
|
|
|
|
},
|
2022-03-06 11:09:57 +01:00
|
|
|
'storage/inbox': {
|
|
|
|
'quota': str(1024*1024*1024*1024), # 1TB
|
|
|
|
'mountpoint': '/storage/inbox',
|
|
|
|
},
|
2020-11-13 12:58:23 +01:00
|
|
|
'storage/nas': {
|
|
|
|
'mountpoint': '/storage/nas',
|
|
|
|
},
|
2021-05-23 17:41:19 +02:00
|
|
|
'storage/paperless': {
|
|
|
|
'mountpoint': '/srv/paperless',
|
|
|
|
},
|
2021-04-21 17:58:16 +02:00
|
|
|
'storage/scan': {
|
|
|
|
'mountpoint': '/srv/scansnap',
|
|
|
|
},
|
2020-11-13 12:58:23 +01:00
|
|
|
},
|
2021-01-10 10:02:25 +01:00
|
|
|
'snapshots': {
|
|
|
|
'retain_per_dataset': {
|
|
|
|
'storage/download': {
|
|
|
|
'hourly': 48,
|
|
|
|
'daily': 0,
|
|
|
|
'weekly': 0,
|
|
|
|
'monthly': 0,
|
|
|
|
},
|
2021-05-08 11:07:12 +02:00
|
|
|
'storage/nas': {
|
|
|
|
# juuuuuuuust to be sure.
|
|
|
|
'daily': 14,
|
|
|
|
'weekly': 6,
|
|
|
|
'monthly': 12,
|
|
|
|
},
|
2021-05-23 17:41:19 +02:00
|
|
|
'storage/paperless': {
|
|
|
|
'daily': 14,
|
|
|
|
'weekly': 6,
|
|
|
|
'monthly': 24,
|
|
|
|
},
|
2021-04-21 18:26:10 +02:00
|
|
|
'storage/scan': {
|
|
|
|
'hourly': 6,
|
|
|
|
'daily': 0,
|
|
|
|
'weekly': 0,
|
|
|
|
'monthly': 0,
|
|
|
|
},
|
2021-01-10 10:02:25 +01:00
|
|
|
},
|
|
|
|
},
|
2020-11-13 12:58:23 +01:00
|
|
|
},
|
2020-11-12 19:40:41 +01:00
|
|
|
'vm': {
|
|
|
|
'cpu': 8,
|
2021-06-26 06:18:01 +02:00
|
|
|
'ram': 32,
|
2020-11-12 19:40:41 +01:00
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|