Unofficial
On this page
  1. 01Install the package
  2. 02Set the administrator password
  3. 03Turn on the modules
  4. 04Add an account
  5. 05Clone a repository
  6. 06Open the editor
  7. 07Build an app
  8. 08Run, download or export the app
  9. 09The App Center repository on your NAS

My first Linux build: installing the Bucket & Code development environment on QNAP

Bucket & Code Server IDE puts Git (Forgejo), Subversion, versioned WebDAV buckets, VS Code in the browser and an App Builder on your NAS, behind one panel with its own accounts. This guide takes a new installation from App Center to an app built from recipes and running on the NAS.

  1. Installone repository in App Center
  2. Passwordwithin 60 minutes, from the LAN
  3. ModulesGit, CI, SVN, Editor
  4. Accountsone for each person
  5. First appbuild, then activate

The pictures come from the panel with each field filled in as this guide describes. The addresses in them are those of a NAS at 192.168.1.20 with the default ports.

01Install the package

It needs an x86_64 NAS with QTS 6.0 or QuTS hero 6.0 or newer. App Center installs it with its default settings.

  1. App Center → ⚙ Settings → App Repository → Add. Name it QNAP Utilities, paste https://www.qnaputilities.com/repo.xml and press Add.
  2. Open QNAP Utilities in the left rail and install Bucket & Code Server IDE.
  3. Its data goes to BucketVS on the volume the package is installed on, for example /share/CACHEDEV1_DATA/BucketVS. You can move it to another volume later on the Storage page.
  4. The Open button in App Center takes you to the panel: https://<NAS address>:9951, or http://<NAS address>:9950. The HTTPS address uses a self-signed certificate at first, so the browser warns until your device trusts it.

02Set the administrator password

A new installation has no account and opens on the Set the administrator password screen for the account administrator. Type a password of at least 10 characters twice and press Set the password and sign in.

Administrator password for the account administrator: New password and Repeat the new password filled in, At least 10 characters and Both entries match ticked, and the Set the password and sign in button
  • The screen takes a password for 60 minutes after the package starts. After that, restart the package in App Center for another 60 minutes.
  • Only a browser on the local network can set it, and only directly, not through a proxy. While the screen waits, QTS System Logs name the address to open.
  • QTS accounts do not sign in to the panel: it has accounts of its own.

03Turn on the modules

Git, CI, SVN & Bucket and the Editor are off on a new installation. On the Overview, each has a tile that says what it gives, with its button: Turn on Git, Turn on Editor and so on. The button runs a job that prepares the module and starts it, and the tile shows running when it is ready. CI needs Git: while Git is off, its button reads Turn on Git and CI.

The Git tile on the Overview while Git is off: Forgejo 15.0.9, off, what Git gives, and the Turn on Git button

04Add an account

One account signs in to the panel, Git, SVN and Bucket with the same name and password. On the Users page press New account.

  1. Username: lower case, for example ola. It is also the Forgejo username.
  2. Role: viewer can read, developer can also open the editor and build apps, and admin can do everything.
  3. Password: at least 10 characters, or press Generate. Leave Must choose their own password at the first sign-in ticked, then press Create the account.
The New account dialog: Username ola, Role developer with its warning about the root shell, a password, Must choose their own password at the first sign-in ticked, and the Create the account button

The editor's terminal is a root shell on the NAS, and a developer's scheduled jobs run as root too. Give the developer role only to people you would trust with the NAS's admin password.

05Clone a repository

The Open Forgejo button on the Git page takes you to Forgejo, where you create, import and mirror repositories; New repository in the page's In Forgejo card opens Forgejo's form for a new one. Forgejo signs you in with your panel session. On the same page, Clone a repository writes the clone commands for an owner and a repository.

Clone a repository: Owner ola, Repository firmware, git clone ssh://git@192.168.1.20:9952/ola/firmware.git and git clone http://192.168.1.20:9950/git/ola/firmware.git
  • Over HTTP or HTTPS, git takes your panel username and password. With two-factor authentication on, use a Forgejo access token instead of the password (Forgejo's Settings → Applications).
  • Over SSH, on port 9952, git uses a key you add in Forgejo under Settings → SSH / GPG keys.

06Open the editor

On the Editor settings page press Open the editor. VS Code opens in a new tab on the projects folder of the data folder. Each account gets its own instance.

The Editor settings page and its Open the editor button
VS Code in the browser: the Explorer on the projects folder and the code-server welcome page
The editor. Its terminal has git, svn, node, npm, rsync and curl from the package. An instance stops after 30 minutes without browser traffic, but never while a program started from it still runs.

07Build an app

The App Builder compiles programs from recipes into one folder, the app's prefix. Each recipe names its source with a checksum, the recipes it needs and a check that the result runs. On the Apps page press New app.

  1. Configure. Type a Name, for example mytools; the Prefix follows it as /usr/app/mytools. Under Build environment choose the environment. A fresh installation has no build environment: press Create a Builder environment (admin), which prepares Ubuntu 24.04 with the build tools and chooses it when it is ready. Then press Choose recipes. Name and prefix: Name mytools, Prefix /usr/app/mytools; Environment: Build environment ubuntu2404-builder, ubuntu-24.04-x86_64, glibc 2.39
  2. Recipes. Search for a program and tick it. Its required dependencies are added automatically, in build order: tmux brings libevent and ncurses. Press Review. Recipes: Recipes from a project set to None: the library only, the search tmux, tmux 3.7c ticked, 1 chosen and 3 recipes in the buildBuild order: libevent and ncurses needed by tmux, then tmux; the Debian packages cmake and ninja-build; the Back and Review buttons
  3. Review and build. Check the summary and press Create and build. Review: Name mytools, Prefix /usr/app/mytools, Environment ubuntu2404-builder, Built for x86_64, Runs on every NAS the package runs on, Link mode dynamic, 3 recipes; Before it builds: the Debian packages, the licenses, and the Create and build button

Leave Runs on at every NAS the package runs on. No program may then need a glibc above 2.39, so the app also runs on other x86_64 NAS units with QTS 6.0, QuTS hero 6.0 or newer.

08Run, download or export the app

The app's page shows its pipeline: the build, a QPKG export and publishing.

Pipeline: Build, Built; Export as QPKG; Publish, Needs an export
  • Activate (admin) makes the prefix a link to the newest successful build, so the programs run as /usr/app/<name>/bin/…. The package restores the link at startup. On this NAS: Not active, the Activate button, and the date of the build that activation uses
  • Download gives the newest successful build as a .tar.zst archive.
  • Export as QPKG (admin) packs the build as a QPKG that installs the app on another NAS without this package. It needs QDK: install QNAP QDK 2.5.0 on the Toolchains page, QNAP tab. The exported package carries no code signature, so the repository on the Packages page refuses it as it is.

09The App Center repository on your NAS

The Packages page is an App Center repository on this NAS. Its address goes into App Center on your other NAS units: ⚙ Settings → App Repository → Add.

App Center address: http://192.168.1.20:9950/repo/repo.xml

A developer uploads a code-signed QPKG there, and an admin chooses the version App Center offers. The user guide covers the rest, such as backups, publishing on the internet and the kernel workshop.