Unofficial

Bucket & Code Server IDE

Twój NAS już przechowuje twoje pliki. Teraz buduje twoje oprogramowanie.

Warsztat dla serwerów QNAP.

Bucket & Code Server IDE to warsztat deweloperski dla twojego NAS-a QNAP: Git z Forgejo, CI, wersjonowane buckety, VS Code w przeglądarce i App Builder, który kompiluje przepisy w pakiety QPKG. Instalowany z App Center, jak każda inna aplikacja.

Co robi

na NAS-ie, który już masz

Bucket & Code Server IDE instaluje pełny zestaw narzędzi deweloperskich na NAS-ie QNAP, który już masz, z własnym serwerem WWW, własnymi kontami i własnymi narzędziami, a wszystko trzyma w jednym folderze danych na twoim woluminie. Pisz kod w przeglądarce, wypychaj go do Forgejo, niech runner na NAS-ie go zbuduje, a potem opublikuj go we własnym repozytorium App Center. Panel, który tym wszystkim steruje, działa jak edytor kodu i mówi w dziewięciu językach.

01 · Środowisko robocze

Panel, który działa jak twój edytor

Pasek obszarów, pasek boczny, karty, paleta poleceń, dolny panel i pasek stanu. Jeśli na co dzień pracujesz w VS Code, od razu się tu odnajdziesz. Każda strona otwiera się w karcie, Ctrl+Shift+P prowadzi do każdego polecenia, które twoja rola może uruchomić, a pasek stanu pokazuje, co robią moduły, ile wolnego miejsca zostało na woluminie i w jakim stanie jest certyfikat.

  • Pasek obszarów, drzewa na pasku bocznym, karty podglądu i dwie strony obok siebie
  • Zadania, Problemy i Dane wyjściowe w dolnym panelu (Ctrl+J), z postępem na żywo
  • Ciemny i jasny motyw, układ na telefon i skróty klawiaturowe
  • Angielski, polski, niemiecki, francuski, włoski, holenderski, szwedzki, japoński i chiński tradycyjny, z przewodnikiem w tych samych dziewięciu językach
  • Role admin, developer i viewer, uwierzytelnianie dwuskładnikowe i tokeny API

02 · Nowy projekt

Nowy projekt w jednym kroku

Wybierz szablon, podaj nazwę i naciśnij Utwórz projekt. Jedno zadanie tworzy repozytorium w Forgejo, robi commit szablonu z jego workflow CI, wypycha go i zostawia kopię w folderze, który otwiera twój edytor. Gdy CI jest włączone, następny push jest budowany na NAS-ie.

  • C, C++ z CMake, Go, Rust, Node, Python i Java
  • Moduł jądra, sterownik USB-serial ch341, pakiet QPKG albo aplikacja App Builder
  • Pierwszy commit jest twój, na main, prywatny, chyba że wybierzesz publiczny
  • Jeśli czegoś brakuje, nic nie jest tworzone, a okno dialogowe mówi ci, co zrobić

03 · Git

Git z Forgejo

Forgejo daje ci repozytoria, zgłoszenia, pull requesty, wydania, wiki, LFS, mirrory i webhooki na twoich własnych dyskach. Każde konto w panelu jest kontem Forgejo, więc nie ma drugiej listy kont do synchronizowania; git przez HTTPS przyjmuje hasło do panelu albo token dostępu, gdy włączone jest uwierzytelnianie dwuskładnikowe.

  • Klonowanie przez HTTPS lub SSH; strona Git podaje oba polecenia gotowe do skopiowania
  • Logowanie do Forgejo to logowanie do panelu, włącznie z kodem 2FA
  • Mirrory i import z własnej sieci, dozwolone od razu po instalacji
  • Włącz Publiczne przeglądanie, aby pokazać publiczne repozytoria osobom bez konta

04 · CI

CI, które działa tam, gdzie żyje twój kod

Wypchnij workflow, a przejmie go runner Forgejo Actions na NAS-ie. Zadania działają na samym NAS-ie, z narzędziami pakietu i twoimi środowiskami budowania pod ręką.

  • runs-on: bucketvs, albo etykiety qnap-x86_64, qnap-aarch64 i self-hosted
  • bvs env run buduje wewnątrz jednego z twoich środowisk z dowolnego zadania
  • Zarejestruj zewnętrzne runnery Linux (x86_64 lub aarch64) ze strony CI, gdy chcesz więcej maszyn
  • Zadania działają jako admin, nie w kontenerze, i strona CI o tym mówi: uruchamiaj w nim tylko workflowy, którym ufasz

05 · Edytor

VS Code w przeglądarce, z twoim asystentem AI

Każdy developer dostaje własne VS Code w przeglądarce (code-server). Jego terminal ma git, svn, node, npm, rsync i curl w ścieżce, a jedno polecenie przenosi cię do pełnego środowiska Linux. Zainstaluj Claude Code, Gemini CLI albo Codex CLI ze strony Ustawienia edytora, a każdy projekt, który tworzy kreator, zawiera skill, który uczy asystenta AI, jak działa QNAP NAS z poziomu powłoki.

  • Jedna instancja na konto; zatrzymuje się w stanie bezczynności, ale nigdy, gdy program w jej terminalu wciąż działa
  • Rozszerzenia z Open VSX
  • Widok Porty łączy się z serwerem deweloperskim, który właśnie uruchomiłeś na NAS-ie
  • Terminal to powłoka root na NAS-ie, więc rola developer jest dla osób, którym powierzyłbyś hasło admina

06 · SVN i Bucket

Buckety, które pamiętają każdy zapis

Bucket to dysk sieciowy, na którym każdy zapisany plik staje się rewizją. Otwórz dowolną wcześniejszą wersję, porównaj ją z inną i przywróć jako nową rewizję, aby nic nie zginęło. Repozytoria Subversion znajdują się tuż obok bucketów i korzystają z tych samych kont.

  • Działa z macOS Finder, rclone, davfs2, Cyberduck, WinSCP i curl
  • Uprawnienia na repozytorium: odczyt i zapis, odczyt lub brak, dla każdego konta
  • Pliki ._* i .DS_Store Findera domyślnie pozostają poza historią
  • Opcjonalny widok webowy tylko do odczytu pokazuje pliki, historię i różnice osobom bez konta

07 · Toolchainy

Prawdziwy Linux na twoim NAS-ie

Rozpakuj system Debian, Ubuntu lub Alpine do środowiska na NAS-ie i pracuj w nim jak na każdym komputerze z Linuksem. W Debianie i Ubuntu działa apt install, a to, co zainstalujesz, zostaje. Dodaj potrzebne środowiska uruchomieniowe i kompilatory z podpisanego katalogu, a każdy pobrany plik jest przed użyciem sprawdzany z jego sumą sha256.

  • Debian 12 i 13, Ubuntu 22.04 i 24.04, Alpine 3.22
  • Python, Go, Node.js, Zig, Rust, CMake, Ninja i Java
  • Cross-toolchainy Bootlin dla aarch64, x86-64 i armv7 (na NAS-ie x86_64)
  • QDK 2.5.0 od QNAP i bvs qbuild do budowania QPKG z dowolnego folderu z plikiem qpkg.cfg
  • Klonuj, eksportuj lub usuwaj środowisko; otwórz w nim powłokę z poziomu panelu

08 · App Builder

App Builder: od przepisów do QPKG

Wybierz programy spośród 523 przepisów, określ sposób ich linkowania i zbuduj. App Builder kompiluje wszystko do jednego folderu wewnątrz środowiska, a następnie sprawdza każdy program, zanim nowe budowanie podmieni poprzednie. Aktywuj aplikację, a jej programy będą działać na NAS-ie, albo wyeksportuj ją jako osobny pakiet QPKG.

  • Biblioteki, powłoki, narzędzia i serwery: bash, zsh, coreutils, curl, git, jq, rsync, tmux, htop, nginx, redis, openssh, PowerDNS i inne
  • Każdy przepis przypina swoje źródło sumą sha256 i potwierdza wynik sprawdzeniem
  • Cztery tryby linkowania; tryb Pakiet zawiera własne biblioteki i potrzebuje z NAS-a tylko biblioteki C
  • Budowanie skrośne dla aarch64 i armv7
  • Nieudane budowanie pozostawia aplikację w poprzednim stanie

09 · Zależności

Zobacz, czego potrzebuje każdy plik binarny

„Library not found” nie powinno być niespodzianką na NAS-ie. Karta Zależności czyta każdy plik ELF z budowania bez uruchamiania go i pokazuje, czego każdy z nich potrzebuje i gdzie znajduje to loader NAS-a. Brakująca biblioteka, wersja, której biblioteka nie definiuje, albo RUNPATH wskazujący poza aplikację staje się wynikiem z gotową poprawką.

  • Poprawki jednym przyciskiem, tam gdzie są: dodaj przepis i zbuduj, zmień tryb linkowania, załataj RUNPATH
  • Graf lub drzewo każdego pliku, bibliotek aplikacji i bibliotek NAS-a
  • Narzędzie łatek z podglądem przed i po
  • bvs ldd i bvs deps dają te same odpowiedzi z poziomu powłoki

10 · Jądra

Warsztat jądra dla jądra, którego używasz

Potrzebujesz sterownika, którego QNAP nie dostarcza? Warsztat jądra czyta to, co działające jądro mówi o sobie, przygotowuje pasujące drzewo jądra i buduje z nim twój moduł. Każdy moduł jest sprawdzany względem działającego jądra przed załadowaniem, a moduł, który nie przejdzie sprawdzenia, nigdy nie zostanie załadowany.

  • Profil: wydanie, kompilator, vermagic i układ struct module
  • Drzewo GPL QNAP, jeśli QNAP je opublikował, w przeciwnym razie drzewo z kernel.org
  • Zbuduj własny moduł albo sterownik z drzewa jądra, taki jak sterownik USB-serial ch341
  • Załaduj moduł wraz z modułami, od których zależy; aplikacja może zawierać własne moduły

11 · Pakiety

Twoje własne repozytorium App Center

Opublikuj swoje pakiety QPKG w repozytorium App Center pakietu, dodaj jego adres w App Center na innych twoich NAS-ach i instaluj z niego jak z każdego innego repozytorium. Ty decydujesz, którą wersję widzi App Center.

  • Każda wersja pozostaje dostępna do pobrania; jedna z nich widnieje jako najnowsza
  • Wysyłanie ze strony Pakiety, z workflow CI albo za pomocą bvs repo publish

12 · Publikowanie

W internecie, bez otwierania portu

Strona Publikowanie wystawia panel, Forgejo i repozytorium pakietów pod nazwami twojej własnej domeny, z DNS-em w Cloudflare. cloudflared łączy się z NAS-a na zewnątrz, więc żaden port na routerze nie jest otwierany, a Cloudflare przechowuje certyfikaty. Każde żądanie nadal przechodzi przez własną bramę pakietu, a bez konta otwiera się tylko to, co udostępniłeś publicznie.

  • Wszystko jest najpierw sprawdzane w Cloudflare; nieudane sprawdzenie niczego nie zmienia
  • Główna nazwa hosta dla panelu i Forgejo oraz nazwa hosta pakietów dla App Center na innych NAS-ach
  • Opcjonalne profile pamięci podręcznej dla pakietów i plików panelu
  • Usuń z Cloudflare wycofuje rekordy, reguły pamięci podręcznej i tunel, który utworzył

13 · Kopie zapasowe

Kopie zapasowe i codzienna praca

Codzienne kopie zapasowe Git, SVN, bucketów, ustawień i ustawień VS Code przechowują ostatnie 7 dni, 4 tygodnie i 6 miesięcy. Kopie trafiają do folderu na NAS-ie, przez rsync i SSH, albo wszędzie tam, gdzie dociera rclone, a każda kopia opuszczająca NAS jest szyfrowana za pomocą age.

  • Sprawdź czyta cały przebieg kopii od nowa: każdą sumę sha256, svnadmin verify, git fsck
  • Przywróć wszystko albo jedno repozytorium, podczas gdy moduły nadal działają; nic nie jest podmieniane przed sprawdzeniem
  • Zadania cron na NAS-ie albo wewnątrz środowiska, ze strefami czasowymi, limitami czasu i powiadomieniem, gdy przebieg się nie powiedzie
  • Logi, powiadomienia i paczka diagnostyczna, wszystko z poziomu panelu

14 · Przykłady

Duże projekty w zestawie

Galeria przykładów zawiera 63 gotowe przykłady, które stosujesz jednym kliknięciem. Kilka z nich to całe produkty. TurboDNS buduje PowerDNS Authoritative Server 5.1.4 z przepisów, dodaje panel stref i pakuje oba do QPKG z workflow CI; MailServerPro robi to samo dla Postfix, Dovecot, Rspamd i Roundcube, a WebHostPro dla nginx, Apache httpd, PHP i baz danych.

Serwer poczty zbudowany ze źródeł. Postfix dla SMTP, Dovecot z Pigeonhole dla IMAP, POP3, Sieve i ManageSieve, Rspamd z Valkey przeciw spamowi, ClamAV oraz fail2ban przeciw zgadywaniu haseł. Podpisy DKIM, SPF, DMARC i ARC, greylisting, MTA-STS oraz DANE przez własny weryfikujący resolver. Roundcube do poczty w przeglądarce, CalDAV i CardDAV do kalendarzy i kontaktów oraz Z-Push dla Exchange ActiveSync. Kilka domen, skrzynki z limitami, aliasy, catch-all, przekazywanie i autoodpowiedzi urlopowe są w jednej bazie danych. Panel administratora dodaje domeny, skrzynki i klucze DKIM, wymienia rekordy DNS potrzebne każdej domenie, pokazuje kolejkę i logi oraz robi kopię zapasową każdej skrzynki. App Builder kompiluje jego przepisy na NAS-ie; jeden cel make zamienia aplikację w pakiet QPKG.

  • Panel stref w dziewięciu językach, w którym każda zmiana to najpierw próba
  • Migawki, szablony, sprawdzanie propagacji i DNSSEC
  • Wysyłanie do Cloudflare i OVH z próbą i odczytem zwrotnym
  • 18 aplikacji, 9 środowisk, 6 przepływów pracy CI, 5 zadań cron i 25 projektów edytora w galerii

Duże projekty na ekranie

dane przykładowe

WebHostPro (serwer WWW), TurboDNS (serwer DNS) i MailServerPro (serwer poczty) to projekty edytora z galerii przykładów, każdy spakowany jako QPKG z własnym panelem.

WebHostPro: Witryny
WebHostProStrona Witryny: każda witryna z rodzajem, serwerem, TLS i stanem oraz oznaczenie witryny, której konfiguracja domeny jest wciąż otwarta.
WebHostPro: Kreator domeny
WebHostProKreator domeny na kroku Rejestrator: serwery nazw i rekordy glue do wpisania tam, gdzie kupiono domenę, każdy z przyciskiem kopiowania, oraz przekierowania na routerze.
WebHostPro: Konfiguracja domeny
WebHostProLista kontrolna „Dokończ konfigurację” w Przeglądzie witryny: rekordy wysłane do TurboDNS, wartości dla rejestratora i sprawdzenie na żywo, które odczytuje serwery nazw strefy nadrzędnej, TurboDNS na tym NAS-ie, trzy publiczne resolvery i front.
WebHostPro: Karta PHP
WebHostProKarta PHP witryny PHP: wersja i strefa czasowa, limity, błędy, sesje, OPcache i JIT, APCu, rozszerzenia, dodatkowe wiersze php.ini i procesy PHP, każde pole ze znakiem „?”, który mówi, co ono robi.
WebHostPro: Bazy danych
WebHostProStrona Bazy danych: karta dla każdego serwera baz danych, MariaDB i Percona Server, z pulą buforów, liczbą połączeń, czasem wolnego zapytania i dodatkowymi wierszami my.cnf sprawdzanymi według listy opcji samego serwera; zmiana jest szkicem, a zastosowanie restartuje serwer.
TurboDNS: Strefy
TurboDNSStrefy: lista stref i formularz nowej strefy z serwerami nazw i trybem numeru seryjnego.
TurboDNS: Rekordy strefy
TurboDNSRekordy strefy: jej numer seryjny i stan podpisu, zestawy rekordów i formularz, który dodaje nowy.
TurboDNS: Próba
TurboDNSNowy zestaw rekordów sprawdzony w podglądzie zmian: lista pokazuje, co zostanie dodane, zastąpione lub usunięte, zanim cokolwiek się zmieni.
MailServerPro: Przegląd
MailServerProPrzegląd: dziesięć usług z ich stanem oraz liczby domen, skrzynek pocztowych, aliasów i wiadomości w kolejce.
MailServerPro: Domeny
MailServerProDomeny: każda domena ze stanem, skrzynkami i adresem catch-all oraz przyciskami rekordów DNS, włączenia i usunięcia.
MailServerPro: Rekordy DNS domeny
MailServerProRekordy DNS domeny do opublikowania: MX, SPF, DKIM, DMARC, MTA-STS, TLS-RPT, autoconfig i SRV, każdy z powodem.
MailServerPro: Skrzynki pocztowe
MailServerProSkrzynki pocztowe: adres, nazwa, zajętość i limit, stan oraz przekazywanie, a pod spodem formularz dodawania.
MailServerPro: Ustawienia
MailServerProUstawienia: nazwa hosta, certyfikat, rozmiar wiadomości i tempo wysyłania, MTA-STS i DANE, progi antyspamowe, szare listowanie, ClamAV, fail2ban i kopie zapasowe.
1 / 13

Panele są prawdziwe, otwarte w przeglądarce na maszynie budującej. Dane w nich są wymyślone: nazwy pod example.org i example.test, adresy z zakresów dokumentacyjnych i adresy lokalne.

Dla kogo

  • Developerzy, którzy chcą mieć swój kod, swoje budowania i swoje CI na własnym sprzęcie.
  • Zaawansowani użytkownicy QNAP, którzy budują własne pakiety QPKG, narzędzia wiersza poleceń i serwery dla NAS-a.
  • Małe zespoły, które potrzebują prywatnego Gita, zgłoszeń i pull requestów bez subskrypcji w chmurze.
  • Majsterkowicze, którzy potrzebują modułu jądra, którego QNAP nie dostarcza.
  • Każdy, kto chce mieć każdą wersję pliku na dysku sieciowym, z którym Finder, rclone i davfs2 już współpracują.

Wymagania

  • QTS 6.0 lub QuTS hero 6.0 albo nowszy
  • 64-bitowy QNAP NAS x86_64 lub ARM
  • Jeden pakiet na architekturę, instalowany z App Center

Zmień swój NAS w warsztat.

Zainstaluj Bucket & Code Server IDE, zaloguj się i włącz moduły, których potrzebujesz.

QNAP is a trademark of QNAP Systems, Inc. Bucket & Code Server IDE is made for QNAP NAS; it is not made or endorsed by QNAP.