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

59 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`.