summaryrefslogtreecommitdiff
path: root/nodes/freedombox.yml
blob: 5ef7250c4da02fde2a6d2180ca1537946d611291 (plain)
  1. # Freedombox on LIME2 box
  2. # Targets:  Debian 9 (Stretch) or newer
  3. # Depends: boxer-data (>= 10.5.14)
  4. classes:
  5.   - Console.setup
  6.   - Console.filemanager
  7.   - Admin.etc.functions
  8.   - Admin
  9.   - Service.ssh
  10.   - Service.mail.mta.dma
  11.   - Hardware.motherboard.olimex.lime2
  12.   - Hardware.harden
  13.   - Hardware.net.interfaces.reset
  14.   - Framework.pkg.apt.autoremove-suggests
  15.   - Framework.pkg.apt.avoid-removals
  16.   - Framework.pkg.apt.aptitude.advance-on-action
  17.   - Framework.pkg.apt.aptitude.list-suite
  18.   - Framework.pkg.apt.proxy.reset
  19.   - Framework.pkg.apt.source.reset
  20. parameters:
  21.   bug:
  22.     - 483754
  23.   doc:
  24.     gateway:
  25.       pkg:
  26.         - include freedombox-setup
  27.       tweak:
  28.         - reset root account rcfiles from skeleton
  29.         - limit video buffers (freeing memory for general use)
  30.         - use HDMI (not serial portas initial boot console
  31.         - enable Domain name (DNSservice systemd-resolved
  32.         - use Cloudflare (not Googlefallback DNS resolvers
  33.         - enable multicast DNS
  34.         - enable Network Time (NTPservice systemd-timesyncd
  35.         - use static IPs as fallback with NTP to avoid DNSSEC deadlock
  36.         - grant root access to users in POSIX (and LDAPgroup 'admin'
  37.   pkg:
  38.     - plinth
  39.   tweak:
  40.     - >
  41.       files=".bash_logout .bashrc .profile";\
  42.        for file in $files; do \
  43.         cp -f "/target/etc/skel/$file" "/target/root/$file";\
  44.        done;\
  45.        echo '' >> /target/root/.profile;\
  46.        echo 'mesg n || true' >> /target/root/.profile
  47.     - >
  48.       _setappendvar /target/etc/default/flash-kernel \
  49.        LINUX_KERNEL_CMDLINE_DEFAULTS \
  50.        '"sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16"'
  51.     - >
  52.       file=/target/etc/flash-kernel/bootscript/bootscr.sunxi;\
  53.        _backup "$file";\
  54.        sed -i -r -e '2asetenv console tty0\''n' "$file"
  55.     - >
  56.       dir=/target/etc/systemd/resolved.conf.d;\
  57.        mkdir -p "$dir";\
  58.         file="$dir/local.conf";\
  59.         echo '[Resolve]' > "$file";\
  60.         echo 'FallbackDNS=1.1.1.1 1.0.0.1 2606:4700:4700::1111,2606:4700:4700::1001' >> "$file";\
  61.         echo 'MulticastDNS=yes' >> "$file"
  62.     - systemctl enable systemd-resolved
  63.     - >
  64.       ln -sfT ../run/systemd/resolve/stub-resolv.conf \
  65.        /target/etc/resolv.conf
  66.     - >
  67.       dir=/target/etc/systemd/timesyncd.conf.d;\
  68.        mkdir -p "$dir";\
  69.         file="$dir/local.conf";\
  70.         echo '[Time]' > "$file";\
  71.         echo '# include static IPs (once expanded from former) to avoid DNSSEC deadlock' >> "$file";\
  72.         echo 'FallbackNTP=2.debian.pool.ntp.org 195.137.195.251 158.248.189.11 193.104.228.123 195.137.195.252 2001:ac8:37::40 2001:67c:28c8:12::123 2a00:1b70:1200:1::123 2001:67c:564::12' >> "$file"
  73.     - systemctl enable systemd-timesyncd
  74.     - >
  75.       _setappendline /target/etc/sudoers.d/local-freedombox \
  76.        '%admin ALL=(root) ALL'
  77.     - >
  78.       _setappendvar /target/etc/sysctl.d/local-freedombox.conf \
  79.        net.ipv6.conf.all.forwarding 1