Files
Das-OS/TODO.md
T
2026-10-19 17:03:34 +03:00

6.6 KiB
Raw Blame History

Das OS — що зробити далі

Стан на 2026-10-19: версія 0.2.0, етапи 1–4 готові (live ISO, власний репозиторій, оформлення, інсталятор Calamares зі знімками Btrfs). Далі: етап 5, потім серверний образ (етап 6).

Етап 5. Go-утиліти

  • das-update: значок у треї, знімок snapper перед оновленням (snapper create -t pre/post), потім xbps-install -Su через pkexec; підказка про відкат, якщо щось зламалося.
  • das-update одразу з консольним режимом (das-update --cli, без треї): він потрібен серверному образу.
  • das-welcome: вікно першого входу (мова, оновлення, профіль розробника, посилання на довідку).
  • У das-welcome виправити назви тек у домашньому каталозі: xdg-user-dirs 0.20 створює Desktop, Documents… англійською навіть з LANG=uk_UA (переклади є, але не застосовуються). З'ясувати причину або перейменовувати теки самим.
  • Тести go test ./... для утиліт.

Етап 6. Серверний образ

Live ISO без графіки з консольним інсталятором: dasos-server-<версія>-x86_64.iso.

  • Профіль server/ поруч із live/ (packages.x86_64, services, include/); параметризувати scripts/container/build-iso.sh профілем; ціль make iso-server. Kernel cmdline з console=tty0 console=ttyS0 для серійної консолі.
  • Метапакет das-server: openssh, chrony, dhcpcd (NetworkManager/nmtui на вибір), das-snapshots, docker (без podman), nftables, fail2ban, python3, lazydocker, lazygit, mc, tmux, htop, socklog-void.
  • Налаштування в das-server: nftables «закрито все, крім SSH», jail sshd для fail2ban, sshd без входу root за паролем.
  • das-sv: керування службами runit замість systemctl (list, enable, disable, start, stop, restart, status, logs): посилання /etc/sv/X → /var/service, логи через socklog/svlogd. Знадобиться й на десктопі.
  • das-server-install: TUI-інсталятор на dialog (диск, ім'я хоста, користувач, SSH-ключ, часовий пояс, розкладка). Розмітка GPT: ESP + Btrfs з тими ж підтомами, що й у Calamares (@, @snapshots…); копіювання з live-base (перевикористати mount-source); GRUB для UEFI і BIOS.
  • Винести спільну частину postinstall (локалі, /tmp, гостьові інструменти VM, das-snapper-setup, переписування ядер) в окремий скрипт для обох інсталяторів.
  • scripts/run-qemu.sh --serial (-nographic) для перевірки серверного ISO.
  • Перевірка: встановлення в QEMU, вхід по SSH, docker run hello-world, знімок snapper перед das-update --cli.
  • Наостанок — розмір ISO: виміряти обидва образи, знайти, що займає найбільше (розміри пакетів через xbps-query, прошивки linux-firmware-*, локалі, документація, -devel-пакети, гостьові інструменти VM, компресія squashfs xz/zstd), і вирішити, що й як зменшити.

Етап 7. Профіль розробника

  • Метапакет das-dev: go, git, docker, podman, vscode.
  • Android Studio та JetBrains на вимогу через Flatpak.
  • Вибір профілю в інсталяторі (модуль packagechooser) або в das-welcome.

Етап 8. CI

  • Збирання пакетів і обох ISO (десктоп і сервер) в контейнері Void (Gitea Actions на git.das.org.ua або GitHub Actions).

Репозиторій пакетів

  • Підпис через xbps-rindex --sign, ключ поза репозиторієм.
  • Хостинг репозиторію (власний сервер або GitHub Releases/Pages).
  • /etc/xbps.d/das.conf у встановленій системі, щоб пакети das-* оновлювалися. Зараз встановлена система бачить лише репозиторій Void.

Інсталятор

  • Перевірити встановлення на старий BIOS (MBR, grub-install --target=i386-pc).
  • Перевірити на реальному залізі: видалення гостьових інструментів VM, Wi-Fi, NVIDIA/AMD.
  • Шифрування диска (LUKS): luksbootkeyfile, crypttab, dracut, GRUB_ENABLE_CRYPTODISK.
  • Перевірити ручну розмітку з Btrfs (чи створюються підтоми) і встановлення на ext4/XFS (знімки мають вимкнутися без помилок).
  • Перевірити вибір автологіну й розкладки, відмінної від us,ua.

Знімки й відкат

  • Перевірити, що cron справді робить щогодинні знімки й очищує старі.
  • Графічний відкат (у das-update або окремою утилітою) замість sudo snapper-rollback N.
  • Прибирати старі корені @<дата>, які лишаються після відкату.

Оформлення та дрібниці

  • Прибрати значки томів live-носія («Том 6,6 ГБ») з робочого столу live-сесії.
  • Тема GRUB у встановленій системі (зараз стандартний чорний екран).
  • Перевірити меню Whisker вручну.
  • Прискорити make packages: не перезбирати Calamares, якщо його версія не змінилася.

Відкладено

  • ARM-образ для Raspberry Pi.
  • Вбудувати текстовий редактор MultiText.
  • Перший стабільний реліз: злиття dev → main.