name: apex
description: Apex - GNOME-based developer workstation (Debian implementation of ublue-os bluefin)
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: "http://192.168.1.101:3142"
      additional_sources:
        - "deb http://192.168.1.101:3142/HTTPS///get.docker.com/ubuntu docker main"
        - "deb http://192.168.1.101:3142/HTTPS///packages.cloud.google.com/apt cloud-sdk main"
        - "deb http://192.168.1.101:3142/HTTPS///packages.microsoft.com/repos/code stable main"
      
  - type: org.osbuild.debian.apt
    options:
      packages:
        # Core system
        - curl
        - wget
        - vim
        - less
        - locales
        - ca-certificates
        - tzdata
        - apt-transport-https
        - gnupg
        
        # GNOME Desktop
        - gnome
        - gnome-shell
        - gdm3
        - gnome-tweaks
        - gnome-shell-extensions
        - dconf-editor
        - gnome-software
        
        # Development tools
        - build-essential
        - git
        - python3
        - python3-pip
        - python3-venv
        - nodejs
        - npm
        - golang-go
        - rustc
        - cargo
        - openjdk-17-jdk
        - maven
        
        # Container tools
        - docker.io
        - docker-compose
        - podman
        - podman-compose
        - distrobox
        - toolbox
        - flatpak
        - snapd
        
        # Development IDEs and editors
        - code
        - vim-gtk3
        - emacs
        - nano
        - micro
        
        # Version control
        - git
        - gitk
        - git-cola
        - meld
        
        # Database tools
        - postgresql-client
        - mysql-client
        - sqlite3
        - dbeaver
        
        # Web development
        - apache2
        - nginx
        - php
        - php-mysql
        - php-pgsql
        
        # System utilities
        - htop
        - iotop
        - net-tools
        - openssh-server
        - ufw
        - fail2ban
        - timeshift
        - bleachbit
        - gparted
        
        # Monitoring and debugging
        - strace
        - ltrace
        - gdb
        - valgrind
        - perf-tools-unstable
        
        # Cloud and DevOps
        - awscli
        - terraform
        - ansible
        - kubectl
        - helm
        
        # Office applications
        - libreoffice
        - thunderbird
        - firefox-esr
        
        # Additional GNOME packages
        - gnome-boxes
        - gnome-maps
        - gnome-weather
        - gnome-calendar
        - gnome-contacts
        - gnome-music
        - gnome-photos
        - gnome-videos
      update: true
      clean: true
      
  - type: org.osbuild.debian.locale
    options:
      language: en_US.UTF-8
      default_locale: en_US.UTF-8
      additional_locales:
        - "de_DE.UTF-8"
        - "fr_FR.UTF-8"
        - "es_ES.UTF-8"
      
  - type: org.osbuild.debian.timezone
    options:
      timezone: UTC
      
  - type: org.osbuild.debian.users
    options:
      users:
        apex:
          password: "$6$rounds=656000$salt$hashedpassword"
          shell: /bin/bash
          groups: ["users", "sudo", "docker", "kvm", "video", "audio", "dialout"]
          uid: 1000
          gid: 1000
          home: /home/apex
          comment: "Apex User"
        developer:
          password: "$6$rounds=656000$salt$hashedpassword"
          shell: /bin/bash
          groups: ["users", "sudo", "docker", "video", "dialout"]
          uid: 1001
          gid: 1001
          home: /home/developer
          comment: "Developer User"
      default_shell: /bin/bash
      default_home: /home
      
  - type: org.osbuild.qemu
    options:
      formats: ["raw", "qcow2", "vmdk", "vdi"]
      size: "30G"
      filename: "apex"

output:
  formats: ["raw", "qcow2", "vmdk", "vdi"]
  size: "30G"
  path: "apex"

metadata:
  author: "particle-os"
  category: "development"
  tags: ["apex", "gnome", "development", "workstation", "apt-cacher-ng"]
  apt_cacher_ng: "http://192.168.1.101:3142"
  description: "Apex - GNOME-based developer workstation (Debian implementation of ublue-os bluefin)"
  based_on: "ublue-os bluefin"
  target_audience: "Developers, DevOps engineers, system administrators"
