Ihr NAS verwahrtschon Ihre Dateien.Jetzt baut esIhre Software.
Die Werkstatt für QNAP-Server.
Bucket & Code Server IDE ist die Entwicklerwerkstatt für Ihr QNAP NAS: Git mit Forgejo, CI, versionierte Buckets, VS Code im Browser und ein App Builder, der Rezepte zu QPKGs kompiliert. Installiert aus dem App Center, wie jede andere App.
Bucket & Code Server IDE installiert einen vollständigen Entwicklungs-Stack auf dem QNAP NAS, das Sie bereits besitzen, mit eigenem Webserver, eigenen Konten und eigenen Werkzeugen, und hält alles in einem Datenordner auf Ihrem Volume. Schreiben Sie den Code im Browser, pushen Sie ihn zu Forgejo, lassen Sie ihn vom Runner auf dem NAS bauen und veröffentlichen Sie ihn in Ihrem eigenen App-Center-Repository. Das Panel, das all das steuert, arbeitet wie ein Code-Editor und spricht neun Sprachen.
01 · Arbeitsoberfläche
Ein Panel, das wie Ihr Editor arbeitet
Eine Aktivitätsleiste, eine Seitenleiste, Tabs, eine Befehlspalette, ein unteres Panel und eine Statusleiste. Wer in VS Code zu Hause ist, findet sich sofort zurecht. Jede Seite öffnet sich in einem Tab, Strg+Umschalt+P erreicht jeden Befehl, den Ihre Rolle ausführen darf, und die Statusleiste zeigt, was die Module tun, wie viel Platz auf dem Volume noch frei ist und wie es um das Zertifikat steht.
Aktivitätsleiste, Bäume in der Seitenleiste, Vorschau-Tabs und zwei Seiten nebeneinander
Jobs, Probleme und Ausgabe im unteren Panel (Strg+J), mit dem Fortschritt in Echtzeit
Dunkles und helles Design, ein Layout fürs Telefon und Tastenkürzel
Englisch, Polnisch, Deutsch, Französisch, Italienisch, Niederländisch, Schwedisch, Japanisch und traditionelles Chinesisch, mit dem Benutzerhandbuch in denselben neun Sprachen
Die Rollen admin, developer und viewer, Zwei-Faktor-Authentifizierung und API-Token
02 · Neues Projekt
Ein neues Projekt in einem Schritt
Wählen Sie eine Vorlage, geben Sie einen Namen ein und klicken Sie auf Projekt anlegen. Ein Job legt das Forgejo-Repository an, committet die Vorlage mit ihrem CI-Workflow, pusht sie und legt eine Kopie in den Ordner, den Ihr Editor öffnet. Ist CI eingeschaltet, wird der nächste Push auf dem NAS gebaut.
C, C++ mit CMake, Go, Rust, Node, Python und Java
Ein Kernelmodul, der USB-Seriell-Treiber ch341, ein QPKG-Paket oder eine App des App Builder
Der erste Commit gehört Ihnen, auf main, privat, sofern Sie nicht öffentlich wählen
Fehlt etwas, wird nichts angelegt, und der Dialog sagt Ihnen, was zu tun ist
03 · Git
Git mit Forgejo
Forgejo bietet Repositorys, Issues, Pull-Requests, Releases, Wikis, LFS, Mirrors und Webhooks, gehostet auf Ihren eigenen Festplatten. Jedes Konto des Panels ist ein Forgejo-Konto, es gibt also keine zweite Benutzerliste, die synchron gehalten werden muss; git über HTTPS nimmt das Passwort des Panels an, oder ein Zugriffstoken, sobald die Zwei-Faktor-Authentifizierung eingeschaltet ist.
Klonen über HTTPS oder SSH; die Seite „Git“ zeigt beide Befehle fertig an
Die Anmeldung bei Forgejo ist die Anmeldung des Panels, samt Zwei-Faktor-Code
Mirrors und Importe aus Ihrem eigenen Netz, ab Werk erlaubt
Schalten Sie Öffentliches Durchsuchen ein, um Personen ohne Konto die öffentlichen Repositorys zu zeigen
04 · CI
CI, das dort läuft, wo Ihr Code liegt
Pushen Sie einen Workflow, und der Forgejo-Actions-Runner auf dem NAS übernimmt ihn. Jobs laufen auf dem NAS selbst, mit den Werkzeugen des Pakets und Ihren Build-Umgebungen griffbereit.
runs-on: bucketvs oder die Labels qnap-x86_64, qnap-aarch64 und self-hosted
bvs env run baut aus jedem Job heraus in einer Ihrer Umgebungen
Registrieren Sie externe Linux-Runner (x86_64 oder aarch64) auf der Seite „CI“, wenn Sie mehr Maschinen möchten
Jobs laufen als admin, nicht in einem Container, und die Seite „CI“ sagt das: Lassen Sie nur Workflows laufen, denen Sie vertrauen
05 · Editor
VS Code im Browser, mit Ihrem KI-Assistenten
Jeder Entwickler bekommt sein eigenes VS Code im Browser (code-server). Sein Terminal hat git, svn, node, npm, rsync und curl im Pfad, und ein Befehl bringt Sie in eine vollständige Linux-Umgebung. Installieren Sie Claude Code, Gemini CLI oder Codex CLI auf der Seite „Editor-Einstellungen“, und jedes Projekt, das der Projektassistent anlegt, enthält einen Skill, der dem KI-Assistenten beibringt, wie ein QNAP NAS auf der Shell funktioniert.
Eine Instanz pro Konto; sie stoppt im Leerlauf, aber nie, solange ein Programm in ihrem Terminal noch läuft
Erweiterungen aus Open VSX
Die Ansicht „Ports“ erreicht den Entwicklungsserver, den Sie gerade auf dem NAS gestartet haben
Das Terminal ist eine Root-Shell auf dem NAS, daher ist die Rolle developer für Personen gedacht, denen Sie das Admin-Passwort anvertrauen würden
06 · SVN & Bucket
Buckets, die sich jede Speicherung merken
Ein Bucket ist ein Netzlaufwerk, auf dem jede gespeicherte Datei zu einer Revision wird. Öffnen Sie jede frühere Version, vergleichen Sie sie mit einer anderen und stellen Sie sie als neue Revision zurück, damit nichts verloren geht. Subversion-Repositorys liegen direkt neben den Buckets, mit denselben Konten.
Funktioniert mit macOS Finder, rclone, davfs2, Cyberduck, WinSCP und curl
Berechtigungen pro Repository: Lesen und Schreiben, Lesen oder keine, für jedes Konto
Die Dateien ._* und .DS_Store des Finders bleiben standardmäßig aus dem Verlauf heraus
Eine optionale Web-Ansicht nur zum Lesen zeigt Personen ohne Konto die Dateien, den Verlauf und die Diffs
07 · Toolchains
Echtes Linux auf Ihrem NAS
Entpacken Sie Debian, Ubuntu oder Alpine in eine Umgebung auf dem NAS und arbeiten Sie darin wie auf jedem Linux-Rechner. In Debian und Ubuntu funktioniert apt install, und was Sie installieren, bleibt. Fügen Sie die Laufzeitumgebungen und Compiler, die Sie brauchen, aus einem signierten Katalog hinzu; jeder Download wird vor der Verwendung gegen seine sha256-Summe geprüft.
Debian 12 und 13, Ubuntu 22.04 und 24.04, Alpine 3.22
Python, Go, Node.js, Zig, Rust, CMake, Ninja und Java
Bootlin-Cross-Toolchains für aarch64, x86-64 und armv7 (auf einem NAS mit x86_64)
QDK 2.5.0 von QNAP und bvs qbuild, um aus jedem Ordner mit einer qpkg.cfg ein QPKG zu bauen
Eine Umgebung klonen, exportieren oder löschen; aus dem Panel eine Shell darin öffnen
08 · App Builder
App Builder: von Rezepten zum QPKG
Wählen Sie Programme aus 523 Rezepten, bestimmen Sie, wie sie gelinkt werden, und bauen Sie. Der App Builder kompiliert alles in einen Ordner innerhalb einer Umgebung und prüft dann jedes Programm, bevor der Build den vorigen ersetzt. Aktivieren Sie die App, und ihre Programme laufen auf dem NAS, oder exportieren Sie sie als eigenes QPKG.
Bibliotheken, Shells, Werkzeuge und Server: bash, zsh, coreutils, curl, git, jq, rsync, tmux, htop, nginx, redis, openssh, PowerDNS und mehr
Jedes Rezept legt seine Quelle per sha256 fest und belegt sein Ergebnis mit einer Prüfung
Vier Linkarten; Bundle bringt seine eigenen Bibliotheken mit und braucht vom NAS nur die C-Bibliothek
Cross-Builds für aarch64 und armv7
Ein fehlgeschlagener Build lässt die App, wie sie war
09 · Abhängigkeiten
Sehen, was jedes Binary braucht
„Library not found“ sollte auf dem NAS keine Überraschung sein. Der Tab „Abhängigkeiten“ liest jede ELF-Datei eines Builds, ohne sie auszuführen, und zeigt, was jede braucht und wo der Loader des NAS es findet. Eine fehlende Bibliothek, eine Version, die die Bibliothek nicht definiert, oder ein RUNPATH, der aus der App hinauszeigt, wird zu einem Befund mit seiner Lösung.
Lösungen per Knopfdruck, wo es eine gibt: ein Rezept hinzufügen und bauen, die Linkart wechseln, den RUNPATH patchen
Ein Graph oder ein Baum aller Dateien, der Bibliotheken der App und der des NAS
Ein Patch-Werkzeug mit einer Vorher-nachher-Vorschau
bvs ldd und bvs deps geben Ihnen dieselben Antworten in einer Shell
10 · Kernel
Eine Kernel-Werkstatt für den Kernel, der bei Ihnen läuft
Sie brauchen einen Treiber, den QNAP nicht mitliefert? Die Kernel-Werkstatt liest, was der laufende Kernel über sich selbst sagt, bereitet einen passenden Kernelbaum vor und baut Ihr Modul dagegen. Jedes Modul wird vor dem Laden gegen den laufenden Kernel geprüft, und ein Modul, das die Prüfung nicht besteht, wird nie geladen.
Das Profil: Release, Compiler, vermagic und das Layout von struct module
QNAPs GPL-Baum, wo QNAP einen veröffentlicht hat, sonst der Baum von kernel.org
Bauen Sie Ihr eigenes Modul oder einen Treiber aus dem Kernelbaum, etwa den USB-Seriell-Treiber ch341
Laden Sie ein Modul mit den Modulen, von denen es abhängt; eine App kann ihre Module mitbringen
11 · Pakete
Ihr eigenes App-Center-Repository
Veröffentlichen Sie Ihre QPKGs im App-Center-Repository des Pakets, fügen Sie seine Adresse im App Center Ihrer anderen NAS hinzu und installieren Sie daraus wie aus jedem anderen Repository. Sie entscheiden, welche Version das App Center sieht.
Jede Version bleibt herunterladbar; eine ist als die neueste gelistet
Hochladen auf der Seite „Pakete“, aus einem CI-Workflow oder mit bvs repo publish
12 · Veröffentlichen
Im Internet, ohne einen Port zu öffnen
Die Seite „Veröffentlichen“ stellt das Panel, Forgejo und das Paket-Repository unter Namen Ihrer eigenen Domain bereit, deren DNS bei Cloudflare liegt. cloudflared baut die Verbindung vom NAS nach außen auf, daher wird kein Port am Router geöffnet, und Cloudflare hält die Zertifikate. Jede Anfrage geht weiterhin durch die eigene Zugangsprüfung des Pakets, und nur was Sie öffentlich gemacht haben, öffnet sich ohne Konto.
Alles wird zuerst bei Cloudflare geprüft; eine fehlgeschlagene Prüfung ändert nichts
Ein Haupt-Hostname für das Panel und Forgejo und ein Paket-Hostname für das App Center auf anderen NAS
Optionale Cache-Voreinstellungen für Pakete und die Dateien des Panels
Bei Cloudflare entfernen nimmt die Einträge, die Cache-Regeln und den Tunnel zurück, die es angelegt hat
13 · Sicherungen
Sicherungen und die tägliche Arbeit
Tägliche Sicherungen von Git, SVN, Buckets, Einstellungen und VS-Code-Einstellungen behalten die letzten 7 Tage, 4 Wochen und 6 Monate. Kopien gehen in einen Ordner auf dem NAS, über rsync und SSH oder überallhin, wo rclone hinkommt, und jede Kopie, die das NAS verlässt, wird mit age verschlüsselt.
Alles wiederherstellen oder ein einzelnes Repository, während die Module weiterlaufen; nichts wird ersetzt, bevor es geprüft ist
Cron-Jobs auf dem NAS oder in einer Umgebung, mit Zeitzonen, Zeitlimits und einer Benachrichtigung, wenn ein Lauf fehlschlägt
Protokolle, Benachrichtigungen und ein Support-Paket, alles aus dem Panel
14 · Beispiele
Große Projekte inklusive
Die Beispielgalerie hat 63 fertige Beispiele, die Sie mit einem Klick anwenden. Einige davon sind ganze Produkte. TurboDNS baut PowerDNS Authoritative Server 5.1.4 aus Rezepten, fügt ein Zonen-Panel hinzu und packt beides in ein QPKG mit einem CI-Workflow; MailServerPro macht dasselbe für Postfix, Dovecot, Rspamd und Roundcube, WebHostPro für nginx, Apache httpd, PHP und Datenbanken.
Ein Mailserver, aus den Quellen gebaut. Postfix für SMTP, Dovecot mit Pigeonhole für IMAP, POP3, Sieve und ManageSieve, Rspamd mit Valkey gegen Spam, ClamAV und fail2ban gegen das Erraten von Passwörtern. DKIM-Signaturen, SPF, DMARC und ARC, Greylisting, MTA-STS und DANE über einen eigenen validierenden Resolver. Roundcube für Webmail, CalDAV und CardDAV für Kalender und Kontakte und Z-Push für Exchange ActiveSync. Mehrere Domains, Postfächer mit Kontingenten, Aliase, ein Catch-all, Weiterleitungen und Abwesenheitsantworten liegen in einer Datenbank. Ein Admin-Panel legt Domains, Postfächer und DKIM-Schlüssel an, listet die DNS-Einträge, die jede Domain braucht, zeigt die Warteschlange und die Protokolle und sichert jedes Postfach. Der App Builder kompiliert seine Rezepte auf dem NAS; ein make-Ziel macht aus der App ein QPKG.
Ein Zonen-Panel in neun Sprachen, in dem jede Änderung zuerst ein Probelauf ist
Schnappschüsse, Vorlagen, Prüfungen der Verbreitung und DNSSEC
Übertragung zu Cloudflare und OVH mit einem Probelauf und einem Zurücklesen
18 Apps, 9 Umgebungen, 6 CI-Workflows, 5 Cron-Jobs und 25 Editor-Projekte in der Galerie
Die großen Projekte auf dem Bildschirm
Beispieldaten
WebHostPro (ein Webserver), TurboDNS (ein DNS-Server) und MailServerPro (ein Mailserver) sind Editor-Projekte aus der Beispielgalerie, jedes als QPKG mit einem eigenen Panel verpackt.
WebHostProDie Seite Websites: jede Site mit Art, Server, TLS und Zustand, und eine Markierung an einer Site, deren Domain-Einrichtung noch offen ist.
WebHostProDer Domain-Assistent auf dem Schritt Registrar: die Nameserver und Glue-Records, die dort einzutragen sind, wo die Domain gekauft wurde, jeder Wert mit Kopierknopf, und die Weiterleitungen des Routers.
WebHostProDie Karte „… fertig einrichten“ in der Übersicht einer Site: die an TurboDNS gesendeten Einträge, die Werte für den Registrar und die Live-Prüfung, die die Nameserver der übergeordneten Zone, TurboDNS auf diesem NAS, drei öffentliche Resolver und die Front abfragt.
WebHostProDer Tab PHP einer PHP-Site: Version und Zeitzone, die Grenzen, die Fehler, die Sitzungen, OPcache und JIT, APCu, die Erweiterungen, weitere php.ini-Zeilen und die PHP-Prozesse, jedes Feld mit einem „?“, das sagt, was es tut.
WebHostProDie Seite Datenbanken: eine Karte je Datenbankserver, MariaDB und Percona Server, mit Pufferpool, Verbindungen, der Zeit einer langsamen Abfrage und weiteren my.cnf-Zeilen, geprüft gegen die Optionsliste des Servers selbst; eine Änderung bleibt ein Entwurf, und das Anwenden startet den Server neu.
TurboDNSZonen: die Liste der Zonen und das Formular für eine neue mit ihren Nameservern und dem Seriennummern-Modus.
TurboDNSDie Einträge einer Zone: ihre Seriennummer und der Signaturstatus, die Eintragssätze und das Formular, das einen hinzufügt.
TurboDNSEin neuer Eintragssatz als Probelauf geprüft: die Liste zeigt, was hinzugefügt, ersetzt oder gelöscht wird, bevor sich etwas ändert.
MailServerProÜbersicht: die zehn Dienste mit ihrem Zustand und die Zahlen der Domains, Postfächer, Aliasse und Nachrichten in der Warteschlange.
MailServerProDomains: jede Domain mit Zustand, Postfächern und Catch-all sowie den Schaltflächen für ihre DNS-Einträge, Ein- und Ausschalten und Löschen.
MailServerProDie zu veröffentlichenden DNS-Einträge einer Domain: MX, SPF, DKIM, DMARC, MTA-STS, TLS-RPT, Autoconfig und SRV, jeweils mit ihrem Grund.
MailServerProPostfächer: Adresse, Name, Belegung und Kontingent, Zustand und Weiterleitungen, darunter das Formular zum Anlegen.
MailServerProEinstellungen: Hostname, Zertifikat, Nachrichtengröße und Sendetempo, MTA-STS und DANE, Spam-Schwellen, Greylisting, ClamAV, fail2ban und Sicherungen.
1 / 13
Die Panels sind echt und wurden in einem Browser auf einem Build-Rechner geöffnet. Ihre Daten sind erfunden: Namen unter example.org und example.test, Adressen aus den Dokumentationsbereichen und lokale Adressen.
Für wen es ist
Entwickler, die ihren Code, ihre Builds und ihr CI auf eigener Hardware haben wollen.
QNAP-Power-User, die eigene QPKGs, Kommandozeilenwerkzeuge und Server für das NAS bauen.
Kleine Teams, die privates Git, Issues und Pull-Requests ohne Cloud-Abo brauchen.
Tüftler, die ein Kernelmodul brauchen, das QNAP nicht mitliefert.
Alle, die jede Version einer Datei auf einem Netzlaufwerk haben wollen, das Finder, rclone und davfs2 schon sprechen.
Voraussetzungen
QTS 6.0 oder QuTS hero 6.0 oder neuer
Ein QNAP NAS mit x86_64 oder ARM 64-Bit
Ein Paket pro Architektur, installiert aus dem App Center
Machen Sie Ihr NAS zur Werkstatt.
Installieren Sie Bucket & Code Server IDE, melden Sie sich an und schalten Sie die Module ein, die Sie brauchen.