6.6 KiB
6.6 KiB
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 за паролем. dsv(das services): керування службами 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, компресія squashfsxz/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.