#cloud-config
# Example: create user (pi), enable SSH, then download and run first-boot.sh to install
# Chromium kiosk, rpd-labwc, and touch options. Edit FIRST_BOOT_URL to point to your
# hosted first-boot.sh (e.g. file server or raw GitHub).
#
# 1. Generate a password hash: mkpasswd -m sha-512 'YourPassword' or openssl passwd -6 'YourPassword'
#    Paste the full output into the passwd: line below.
# 2. Host first-boot.sh (same dir as this repo: cloud-init/first-boot.sh) at FIRST_BOOT_URL.
# 3. Optional: copy first-boot.conf.example to first-boot.conf, edit variables, and host it
#    as first-boot.conf; then add a runcmd line to download it to /tmp/first-boot.conf before
#    running first-boot.sh so the script loads your config.
# 4. To use a different username than "pi", set PI_USER in first-boot.conf and create that user below.

package_update: true
package_upgrade: false

packages:
  - curl

users:
  - name: pi
    groups: [adm, sudo, video]
    lock_passwd: false
    passwd: "$6$7xWGhGc6d1lJx1dU$4E8r1mkzVj51bjEbfzdP8wPxso..C36LbXkqU/X4oBGq94aGFMSrZb0PVI8zs/Om1Jm97/D..Apy2HTdCn3FV1"
    shell: /bin/bash

write_files:
  - path: /etc/ssh/sshd_config.d/99-cloud-init.conf
    content: |
      PasswordAuthentication yes
      PermitRootLogin no

runcmd:
  - systemctl enable ssh
  - systemctl start ssh
  - curl -fsSL "http://10.20.50.1:5000/files/first-boot.sh" -o /tmp/first-boot.sh
  # Optional: download config to override FILE_SERVER, HOSTNAME, PACKAGES, etc.
  # - curl -fsSL "http://10.20.50.1:5000/files/first-boot.conf" -o /tmp/first-boot.conf
  - chmod +x /tmp/first-boot.sh
  - /tmp/first-boot.sh
  # - rm -f /tmp/first-boot.sh /tmp/first-boot.conf
  - cloud-init single --name cc_final_message
