name: simple-server
description: Simple server system - no desktop, minimal packages, just server functionality
base-image: debian:trixie-slim
image-version: "13"

stages:
  - type: org.osbuild.debian.sources
    options:
      mirror: "https://deb.debian.org/debian"
      suite: "trixie"
      components: ["main", "contrib", "non-free"]
      # apt_cacher_ng is optional - uncomment if you have it
      # apt_cacher_ng: "http://192.168.1.101:3142"
      
  - type: org.osbuild.debian.apt
    options:
      packages:
        # Core system packages only
        - curl
        - wget
        - vim
        - less
        - locales
        - ca-certificates
        - tzdata
        - apt-transport-https
        - gnupg
        
        # Kernel and boot essentials
        - linux-image-amd64
        - linux-headers-amd64
        - initramfs-tools
        - grub-pc
        - grub2-common
        
        # Basic system tools
        - systemd
        - systemd-sysv
        - udev
        - procps
        - util-linux
        - mount
        - passwd
        - login
        - bash
        - coreutils
        
        # Server essentials
        - openssh-server
        - ufw
        - fail2ban
        - htop
        - iotop
        - net-tools
        - nginx
        - apache2-utils
        
        # Basic development tools
        - build-essential
        - git
        - python3
        - python3-pip
        - nodejs
        - npm
        
        # Container tools
        - docker.io
        - podman
        - docker-compose
        
        # System monitoring
        - lm-sensors
        - smartmontools
        - logwatch
        - rsyslog
        
        # Network tools
        - iptables
        - netfilter-persistent
        - tcpdump
        - wireshark-qt
        - nmap
        
        # Storage tools
        - lvm2
        - mdadm
        - btrfs-progs
        - xfsprogs
        - ntfs-3g
        
        # Backup tools
        - rsync
        - tar
        - gzip
        - bzip2
        - xz-utils
      update: true
      clean: true
      
  - type: org.osbuild.debian.locale
    options:
      language: en_US.UTF-8
      default_locale: en_US.UTF-8
      
  - type: org.osbuild.debian.timezone
    options:
      timezone: UTC
      
  - type: org.osbuild.debian.users
    options:
      users:
        admin:
          password: "$6$rounds=656000$salt$hashedpassword"
          shell: /bin/bash
          groups: ["users", "sudo", "docker", "adm"]
          uid: 1000
          gid: 1000
          home: /home/admin
          comment: "System Administrator"
        server:
          password: "$6$rounds=656000$salt$hashedpassword"
          shell: /bin/bash
          groups: ["users", "docker"]
          uid: 1001
          gid: 1001
          home: /home/server
          comment: "Server User"
      default_shell: /bin/bash
      default_home: /home
      
  - type: org.osbuild.qemu
    options:
      formats: ["raw", "qcow2"]
      size: "10G"
      filename: "simple-server"

output:
  formats: ["raw", "qcow2"]
  size: "10G"
  path: "simple-server"

metadata:
  author: "particle-os"
  category: "server"
  tags: ["server", "minimal", "no-desktop", "debian-trixie-slim"]
  description: "Simple server system with no desktop, minimal packages, just server functionality"
  target_audience: "System administrators, server deployments, minimal systems"
  based_on: "debian:trixie-slim"
