Repository navigation
Releases: 2hjaito/davish
Releases · 2hjaito/davish
Release list
Davish v1.3.2
Sửa
- Desktop trắng trơn sau khi mở app hoặc mở khóa, nếu đã từng đổi dock: danh sách app ghim đọc lại sai kiểu.
- Khóa app: bấm Cancel ở hộp thoại Touch ID giờ đóng hẳn; trước đó hộp thoại hiện lại liên tục và chặn cả các app khác.
- Lỗi chỉ hiện "Đã có lỗi xảy ra" giờ ghi nguyên nhân vào
davish.log.
Davish v1.3.1
Davish v1.3.0
Đợt "Dựng mới": ngoài vận hành server có sẵn, Davish giờ dựng được site, container, app và database mới. Mọi file và lệnh đều hiện trước khi chạy; việc cần root được gõ sẵn vào Terminal.
Thêm
- Triển khai app (Launchpad/Spotlight): trình hướng dẫn từ repo git / image / thư mục → systemd, compose, container hoặc tĩnh → site nginx → HTTPS; xem trước mọi lệnh, chạy từng bước trong Terminal, tổng kết và lệnh gỡ toàn bộ.
- Nginx → Site mới…: reverse proxy, tĩnh hoặc PHP-FPM; xem trước và sửa cấu hình; chỉ bật khi
nginx -tqua, lỗi thì tắt lại. Ô reverse proxy gợi ý cổng và container đang nghe. - Nginx → Bật HTTPS…: kiểm tra DNS rồi gõ sẵn
certbot --nginxvào Terminal. - Nginx → Sửa nhanh…: thêm tên miền, đổi upstream, gzip,
client_max_body_size; sao lưu trước,nginx -tlỗi thì trả lại file cũ. - Docker → Pull image… và Chạy container mới… từ form; cổng mặc định bind
127.0.0.1, cảnh báo0.0.0.0. - Docker → Compose: up, pull, restart, down theo project; Stack compose mới… từ mẫu.
- Docker: tạo network, volume; Sao chép thành docker run từ container.
- Git: Clone repo… (ghim host key GitHub/GitLab), git init, Đặt remote….
- Git → Deploy…: công thức triển khai cho mỗi repo, lưu trên máy, chạy từng bước trong Terminal và dừng ở bước lỗi.
- Gói → Cài thêm: công thức cài nginx, Docker, Node (nvm), PHP-FPM, MariaDB, PostgreSQL, Redis, certbot, fail2ban, ufw; hiện toàn bộ script trước khi chạy.
- App Database (MariaDB/MySQL, PostgreSQL): danh sách kèm dung lượng, tạo database + user với mật khẩu ngẫu nhiên chỉ hiện một lần, xóa phải gõ tên, mở qua tunnel; Dump ra
~/db-backupsvà Khôi phục… từ bản dump. - Cổng: cột Lộ ra Internet (ufw + Docker), mở/đóng cổng bằng ufw (không đóng cổng SSH đang dùng), gợi ý đóng các cổng quản trị đang lộ ra.
SECURITY.md: mô hình bảo mật và cách báo lỗ hổng riêng tư; README nêu "Mở là vào" và có banner.
Sửa
- Thứ tự dock, "Bỏ qua bản này" và lựa chọn trong Logs giờ được nhớ sau khi khởi động lại (tên cài đặt có dấu
:bị từ chối âm thầm). - An ninh: "Chặn bằng ufw…" chèn luật lên đầu (
ufw insert 1); trước đó luật nằm sauALLOW 22nên không chặn được SSH. IP đã chặn hiện nhãn "đã chặn bằng ufw". - Terminal: lệnh gõ sẵn hiện sau prompt thay vì trước.
Davish v1.2.0
Thêm
- Giao diện tiếng Anh (ADR 0010): chọn Tiếng Việt hoặc English trong Cài đặt → Giao diện → Ngôn ngữ; lần đầu theo ngôn ngữ của máy. Ngày giờ và số định dạng theo ngôn ngữ đã chọn. Đổi ngôn ngữ thì Davish khởi động lại, server tự kết nối lại.
- Menu bar hiện tên app in đậm cạnh menu hệ thống như macOS; bấm vào để mở menu hệ thống.
Davish v1.1.1
Sửa
- App Cổng kẹt ở "Server trả lời chậm" dù Chẩn đoán báo server bình thường: server có hai socket cùng nghe một địa chỉ và cổng (DNS của mạng Docker bridge, hoặc nhiều worker dùng chung cổng) làm danh sách có hai dòng trùng và giao diện ngừng vẽ. Các socket trùng giờ gộp thành một cổng.
- App Cổng kẹt ở "đang chờ" dù server trả lời: danh sách cổng rỗng bị gửi thành
nulllàm giao diện vỡ; một số bảnssin thêm cộttcplàm không đọc được dòng nào. Lỗi giao diện từ nay cũng được ghi vào log để Sao chép chi tiết có đủ thông tin. - Server có shell đăng nhập là zsh hay fish: lệnh của Davish viết cho
shnên trước đây có thể ra kết quả trống (ví dụ app Cổng không thấy cổng nào). Giờ mọi lệnh chạy dướish, shell đăng nhập là gì cũng được. - App không còn chờ mãi khi server không trả lời (shell đăng nhập bị treo, Docker treo…). Mọi lệnh có hạn chót (mặc định 3 phút, đọc cổng 25 giây, Docker 30 giây) và trả lỗi ngay khi hết hạn, không đợi server đóng phiên; mở SFTP cũng vậy. Trước đây hạn chót chỉ yêu cầu đóng phiên nên vẫn đứng ở "Đang đọc…".
- Nút làm mới bấm được cả khi đang tải: lần tải mới thay lần đang kẹt, kết quả muộn của lần cũ bị bỏ qua.
Thêm
- Chẩn đoán: khi một app tải lâu hơn 8 giây hoặc báo lỗi, có Thử lại, Chẩn đoán và Sao chép chi tiết. Chẩn đoán thử
echo,ss,docker pstrên server và nói rõ nguyên nhân: mất kết nối, shell đăng nhập bị treo (kèm cách sửa ~/.bashrc), shell chậm (kèm các dòng nghi vấn), ss hoặc Docker không trả lời. - Log của app ghi ra file JSON xoay vòng trong thư mục cache (
davish/logs, 5 file × 5 MB): mọi lệnh chạy trên server, mã thoát, thời gian, lỗi; không bao giờ có mật khẩu, khóa hay nội dung file. Trợ giúp → "Sao chép thông tin hỗ trợ" gom phiên bản, hệ điều hành và log gần đây để gửi cho người hỗ trợ.
Davish v1.1.0
Thêm
- Docker làm lại theo kiểu Docker Desktop: bảng container (ID, image, cổng, CPU, RAM, trạng thái) gom theo project compose, thẻ CPU/RAM tổng, nút khởi động/dừng, menu ⋮ (log, shell trong container, khởi động lại, chi tiết) và xóa container ngay trên dòng; cổng publish bấm để mở trong Trình duyệt của Davish. Bảng image có thanh dung lượng; mục Volume mới (dung lượng, container đang dùng, xóa volume không dùng).
- Tự cập nhật (ADR 0009): Davish tự kiểm tra GitHub Releases lúc mở và mỗi 6 giờ (tắt được trong Cài đặt), báo bản mới kèm nhật ký thay đổi với Cập nhật / Để sau / Bỏ qua bản này. Cập nhật tải đúng file của máy, kiểm chữ ký ed25519 và SHA-256, thay bản đang chạy rồi khởi động lại; không phải gỡ và cài lại. "Kiểm tra bản cập nhật…" trong menu hệ thống và Trợ giúp.
- Chuột phải icon trên Dock như macOS: Mở/Hiện, Giữ trên Dock (bỏ chọn thì app rời Dock, app đang mở thì ở lại tới khi đóng), Đóng.
- Docker: mục Image (tất cả, không dùng) với số container đang dùng; chi tiết image gồm các layer kèm dung lượng, nền tảng, entrypoint/cmd, cổng mở, biến môi trường; chạy image trong Terminal, xóa image qua xác nhận hiện đúng lệnh
docker rmi(không-f). - App Trình duyệt (ADR 0008): mở
localhost:<cổng>của VPS ngay trong Davish, qua proxy nghe127.0.0.1ở cổng ngẫu nhiên nên không đụng cổng nào trên máy; redirect về cổng khác vẫn ở lại VPS, websocket chạy, cookie đăng nhập do Davish giữ. Trang ở origin riêng, không gọi được Davish. App Cổng có nút "Mở trong Davish". - App An ninh: lần thử đăng nhập SSH sai trong 7 ngày gom theo IP (nhiều nhất lên đầu, user đã thử), đăng nhập thành công gần đây,
last/lastb, trạng thái ufw và fail2ban; chặn một IP hoặc tắt đăng nhập mật khẩu bằng lệnh sudo gõ sẵn vào Terminal (cósshd -ttrước khi reload, tự gỡ nếu lỗi). - App Ổ đĩa: dung lượng từng mount; đo một thư mục mỗi lần bấm (
du -x -d 1, tối đa 30 giây, hủy được), đi sâu từng tầng, mở trong Files. Gợi ý dọn dẹp kèm dung lượng lấy lại: Docker, journal, log xoay vòng cũ, cache apt/dnf; lệnh luôn hiện trước khi chạy, cần root thì gõ sẵn vào Terminal. Thông báo ổ sắp đầy mở thẳng app ở đúng mount. - App Cổng: cổng TCP server đang nghe (
ss -tlnp) với process và container; tunnel một cổng về127.0.0.1của máy này qua kết nối SSH đang có (giữ số cổng nếu trống), mở trong trình duyệt hoặc copy địa chỉ; mở như một tên miền (ghi đè Host) cho site nginx; "Thử từ server" bằng curl. Tunnel sống qua reconnect và tắt khi đóng app. - Menu bar thật: Tệp, Xem, Đi tới, Cửa sổ, Trợ giúp và menu của app đang mở (Git: Fetch, Pull, Thêm thư mục; Services, Docker: khởi động lại…), điều khiển bằng bàn phím, phím tắt hiện bên phải.
⌘Rlàm mới cửa sổ đang mở,⌘⇧T/F/M/S/D/L/E/Gmở từng app. - Trợ giúp: nút
?trên mỗi app (app làm gì, thao tác chính, phím tắt, lệnh chạy trên server), bảng phím tắt (⌘/), Về Davish; Spotlight tìm được trợ giúp. Hướng dẫn nhanh lần đầu, xem lại từ Trợ giúp. - Chế độ thử trên màn hình chào: xem Davish với dữ liệu mẫu, không kết nối server nào.
- Mọi nút chỉ có icon đều có tooltip.
- Nhập server từ
~/.ssh/config(menu chọn server hoặc màn hình chào): chọn nhiều host, host đã có được bỏ qua; Davish chỉ đọc file, không ghi. Hỗ trợInclude,IdentityFile,ProxyJump. - ProxyJump: server có thể đi qua một server khác (nhiều bậc), mỗi bậc kiểm tra host key riêng; mất kết nối tới máy trung gian thì tự dựng lại cả chuỗi.
- App Git: tìm repo trên server (home,
/var/www,/srv,/optvà thư mục thêm tay); nhánh, nhánh remote, số commit chưa đẩy/chưa kéo, file thay đổi và diff; biểu đồ commit của mọi nhánh với merge và tag. Fetch,pull --ff-only(chặn khi repo bẩn), đổi nhánh qua hộp xác nhận hiện đúng lệnh; cài dependency theo lockfile trong Terminal; lỗi xác thực remote dẫn tới tạo deploy key. Repo của user khác bị git từ chối thì báo rõ, không ghi đèsafe.directory. - App Gói: gói apt/dnf/yum/apk đã cài và có bản cập nhật, bản vá bảo mật lên đầu (thông báo khi kết nối); runtime và chương trình trên server (nginx, MariaDB, Redis, Docker, Node.js qua nvm, PHP với php-fpm, Python…) với phiên bản, file cấu hình, dịch vụ; gói npm global. Cài, nâng cấp, gỡ thì gõ sẵn lệnh
sudovào Terminal. Spotlight tìm được chương trình trên server. - App Khóa SSH: quản lý
authorized_keyscủa server (thêm, gỡ có sao lưu, đánh dấu key Davish đang đăng nhập), tạo deploy key trên server và thử với GitHub/GitLab (kiểm tra host key theo fingerprint họ công bố), tạo key trên máy này rồi đưa lên server và dùng để đăng nhập. - Khóa app (ADR 0007): mật khẩu khóa riêng, mở bằng Touch ID trên macOS; tự khóa khi máy ngủ dậy, sau N phút không dùng, hoặc
⌘L/Ctrl+L. Phiên SSH, log, transfer vẫn chạy khi khóa; thao tác lên server bị chặn. Quên mật khẩu thì đặt lại, đổi lại Davish xóa mật khẩu server đã lưu. - Launchpad (ô đầu Dock hoặc
⌘⇧A): mọi app, tìm theo tên, ghim/bỏ ghim khỏi Dock. Dock hiện thêm app đang mở chưa ghim. - Xóa dịch vụ (Services →
Xóa…): unit do admin tạo thì xóa file; unit của gói (nhưcertbot) thì mask cùng timer kích hoạt nó; unit đã mất file thì chỉ bỏ trạng thái lỗi. Luôn hiện đúng lệnh trước khi chạy. - Xóa site nginx (
Xóa site…), có thể xóa luôn chứng chỉ Let's Encrypt chỉ site đó dùng (certbot delete). - Kính lúp trên menu bar và mục
Tìm kiếm…trong menu hệ thống mở Spotlight.
Thay đổi
- Nhẹ hơn: mỗi app chỉ tải code khi mở lần đầu (JS ban đầu khoảng 96 kB gzip); CI chặn bundle vượt ngân sách. Khi Davish bị ẩn, khóa hoặc ngủ màn hình, chỉ số đọc 30 giây một lần thay vì 2 giây, cảnh báo vẫn chạy.
- Mở, đóng, thu nhỏ và khôi phục cửa sổ bằng hiệu ứng Genie như macOS: cửa sổ chảy ra từ icon của app trên Dock và chảy về đó.
Sửa
- Cổng và Docker không còn chờ mãi khi server không trả lời (ví dụ Docker daemon bị treo): mỗi lần đọc có giới hạn thời gian và báo rõ khi quá hạn.
- Logs: nhãn trên toolbar không còn xuống dòng; cửa sổ hẹp thì ô nguồn và ô lọc co lại, hẹp hơn nữa thì toolbar xuống hàng thay vì che mất nút.
- Logs: journal của một dịch vụ im lặng 5 giây thì giải thích lý do thường gặp (dịch vụ không ghi journal, hoặc tài khoản SSH không được đọc journal hệ thống) và đưa lệnh
sudo journalctl …để chạy trong Terminal, thay vì chờ mãi. - Thông báo: đường dẫn dài (ví dụ đường dẫn chứng chỉ TLS) xuống dòng trong banner và bảng Thông báo thay vì tràn ra ngoài và đẩy nút đóng đi.
Davish v1.0.0
M10 · Hoàn thiện v1.0.
Thêm
- Spotlight (
⌘K/Ctrl+K): mở app, nhảy tới dịch vụ, container, thư mục; gõ/đường/dẫnđể mở trong Files hoặc Editor,> lệnhđể gõ sẵn vào Terminal (không tự chạy). - Cài đặt: font mono (JetBrains Mono hoặc font hệ thống) cho Terminal, Editor, Logs; ngưỡng cảnh báo RAM và ổ đĩa cùng thời gian kéo dài; chế độ sao lưu của Editor (file trong
/etc, mọi file, không). - Trang chào khi chưa có server nào.
Thay đổi
- Đóng gói thành
Davish.app/ Davish 1.0.0 với icon chính thức, bundle IDio.github.2hjaito.davish; macOS tối thiểu 12. - Server chưa từng mở (kể cả server đầu tiên vừa thêm) mở sẵn Terminal.
Sửa
- Cron: lệnh thay crontab chạy đúng lệnh người dùng đã xác nhận; trước đây nếu đồng hồ sang giây mới giữa lúc xác nhận và lúc chạy, file sao lưu mang tên khác với tên đã hiển thị.