Twój NAS jużprzechowuje twoje pliki.Teraz budujetwoje 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.
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.
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.
WebHostProStrona Witryny: każda witryna z rodzajem, serwerem, TLS i stanem oraz oznaczenie witryny, której konfiguracja domeny jest wciąż otwarta.
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.
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.
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.
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.
TurboDNSStrefy: lista stref i formularz nowej strefy z serwerami nazw i trybem numeru seryjnego.
TurboDNSRekordy strefy: jej numer seryjny i stan podpisu, zestawy rekordów i formularz, który dodaje nowy.
TurboDNSNowy zestaw rekordów sprawdzony w podglądzie zmian: lista pokazuje, co zostanie dodane, zastąpione lub usunięte, zanim cokolwiek się zmieni.
MailServerProPrzegląd: dziesięć usług z ich stanem oraz liczby domen, skrzynek pocztowych, aliasów i wiadomości w kolejce.
MailServerProDomeny: każda domena ze stanem, skrzynkami i adresem catch-all oraz przyciskami rekordów DNS, włączenia i usunięcia.
MailServerProRekordy DNS domeny do opublikowania: MX, SPF, DKIM, DMARC, MTA-STS, TLS-RPT, autoconfig i SRV, każdy z powodem.
MailServerProSkrzynki pocztowe: adres, nazwa, zajętość i limit, stan oraz przekazywanie, a pod spodem formularz dodawania.
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.