Unofficial

Bucket & Code Server IDE

Ihr NAS verwahrt schon Ihre Dateien. Jetzt baut es Ihre 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.

Was es tut

auf dem NAS, das Sie schon haben

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.

  • Bestätigen liest einen Lauf vollständig zurück: jede sha256-Summe, svnadmin verify, git fsck
  • 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.

WebHostPro: Websites
WebHostProDie Seite Websites: jede Site mit Art, Server, TLS und Zustand, und eine Markierung an einer Site, deren Domain-Einrichtung noch offen ist.
WebHostPro: Domain-Assistent
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.
WebHostPro: Domain-Einrichtung
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.
WebHostPro: PHP-Tab
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.
WebHostPro: Datenbanken
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.
TurboDNS: Zonen
TurboDNSZonen: die Liste der Zonen und das Formular für eine neue mit ihren Nameservern und dem Seriennummern-Modus.
TurboDNS: Zoneneinträge
TurboDNSDie Einträge einer Zone: ihre Seriennummer und der Signaturstatus, die Eintragssätze und das Formular, das einen hinzufügt.
TurboDNS: Probelauf
TurboDNSEin neuer Eintragssatz als Probelauf geprüft: die Liste zeigt, was hinzugefügt, ersetzt oder gelöscht wird, bevor sich etwas ändert.
MailServerPro: Übersicht
MailServerProÜbersicht: die zehn Dienste mit ihrem Zustand und die Zahlen der Domains, Postfächer, Aliasse und Nachrichten in der Warteschlange.
MailServerPro: Domains
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.
MailServerPro: DNS-Einträge einer Domain
MailServerProDie zu veröffentlichenden DNS-Einträge einer Domain: MX, SPF, DKIM, DMARC, MTA-STS, TLS-RPT, Autoconfig und SRV, jeweils mit ihrem Grund.
MailServerPro: Postfächer
MailServerProPostfächer: Adresse, Name, Belegung und Kontingent, Zustand und Weiterleitungen, darunter das Formular zum Anlegen.
MailServerPro: Einstellungen
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.

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.