Skip to content

Instantly share code, notes, and snippets.

@gandro
Created February 2, 2022 21:14
Show Gist options
  • Save gandro/0b9b9aa39e561c272279050db2898236 to your computer and use it in GitHub Desktop.
Save gandro/0b9b9aa39e561c272279050db2898236 to your computer and use it in GitHub Desktop.

Proteus Homeserver Setup

Hardware

Zotac ZBOX CI662 nano Fanless mini-PC

Image

Review: https://www.anandtech.com/show/16338/

Description Component
Processor Intel Core i7-10510U
Comet Lake-U, 4C/8T, 1.80 GHz (4.90 GHz), 14nm, 8MB L2+L3, 15W (10W-25W)
Memory Kingston Fury Impact, SO-DIMM, DDR4, 32GB 2666MHz
2x 16GBGB
Graphics Intel UHD Graphics
Disk Drive(s) Samsung 870 QVO - 2TB
2000 GB , 1x SATA 6Gb/s , 2.5 Zoll , 6.8 mm
Networking Intel Wireless-AC 9462
2x Realtek RTL8168/8111 Gigabit Ethernet Controller
Audio 3.5mm Headphone Jack
Capable of 5.1/7.1 digital output with HD audio bitstreaming (HDMI)
Miscellaneous I/O Ports 2x USB 3.2 Gen 2 Type-C (10Gbps)
1x USB 3.2 Gen 1 Type-A (5Gbps)
4x USB 3.2 Gen 2 Type-A (10Gbps)
1x SDXC

Software

Disk Provisioning

$ sudo lsblk -o name,label,size     
NAME          LABEL       SIZE
sda                       1.8T
|-sda1                      1M
|-sda2        EFI-SYSTEM  127M
|-sda3        boot        384M
|-sda4        root       63.5G
`-sda8                    1.8T
  `-cryptdata data        1.8T

systemd-cryptenroll

# cryptsetup -y -v luksFormat /dev/sda8
# systemd-cryptenroll /dev/sda8 --wipe-slot=tpm2 --tpm2-device=auto
# cryptsetup open /dev/sda8 root
# mkfs.ext4 /dev/mapper/root

Fedora CoreOS

https://docs.fedoraproject.org/en-US/fedora-coreos/

variant: fcos
version: 1.4.0
passwd:
  users:
    - name: core
      groups:
        - docker
      ssh_authorized_keys:
        - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyEqbjA7v2wPd+LDh/bUozzxNeJPTIfzN64/F/zYsbjKlU/UvuNghfkj4ymkUBec2AWF1Wnpub15R45keu+CtzAbzBlao7zdgh32PdTQzCCgjaPejbUCmZl3cB+aMhoMUhXF9/1FVedYpZxhEU+P7mnJBzri4Gs/giwcLMR16HzywAxLZg/vEOynEDUeGd6nhM9ZBn0y/+4NwAO5KN9zQDbwK/Itx72cblrEjRpzthEc2MUFT/UHFcKCeo42TPtES24LNlgk84GIfoRd5L1opjsyw/XtupUT4dnILZGQYW4PreZKymC0zJRmZLBfYfRuZurKT53cbQNsAGqVQxDVkVw== gandro@gmx.net
storage:
  files:
    - path: /etc/hostname
      mode: 0644
      contents:
        inline: proteus
    - path: /etc/crypttab
      mode: 0600
      contents:
        inline: cryptdata	/dev/disk/by-partlabel/data	-	tpm2-device=auto
    - path: /etc/systemd/zram-generator.conf
      mode: 0644
      contents:
        inline: |
          # This config file enables a /dev/zram0 device with the default settings
          [zram0]
systemd:
  units:
    - name: var-mnt-data.mount
      enabled: true
      contents: |
        [Unit]
        Description=Mount data directory

        [Mount]
        What=/dev/mapper/cryptdata
        Where=/var/mnt/data
        Type=ext4
        [Install]
        WantedBy=multi-user.target
    - name: getty@tty1.service
      dropins:
      - name: autologin-core.conf
        contents: |
          [Service]
          # Override Execstart in main unit
          ExecStart=
          # Add new Execstart with `-` prefix to ignore failure`
          ExecStart=-/usr/sbin/agetty --autologin core --login-pause --noclear %I $TERM

Installation

$ butane --strict config.yaml > config.json
$ sudo coreos-installer install /dev/sda \
    --save-partindex 8 \
    --ignition-file config.json

DynDNS

  • Domain from inwx.ch
    • IPv4 via NAT, dynamically updated via FritzBox:
      • https://dyndns.inwx.com/nic/update?myip=<ipaddr>
    • Static IPv6 address via Tokenised IPv6 Identifiers
      # nmcli c mod enp4s0 ipv6.addr-gen-mode eui64
      # nmcli c mod enp4s0 ipv6.token ::7
$ dig gandro.dev ANY    

; <<>> DiG 9.16.25 <<>> gandro.dev ANY
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29293
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;gandro.dev.			IN	ANY

;; ANSWER SECTION:
gandro.dev.		18	IN	A	    212.51.146.160
gandro.dev.		258	IN	AAAA	2a02:168:588a::7

Services

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment