Hello everyone. I tried to follow the steps outlined here to build Tao locally but there were many private dependencies. I noticed that there were read-only alternative public repositories for many of the private packages in the github tao-ce organisation. But some packages don’t have a public version available in the organisation (like bundle-bigtable-document-manager). I learned this the hard way after fiddling with the .gitmodules, composer.json, composer.lock etc. files. So now, I wanted to ask if there was a tentative date of when these packages will be made public so that TAO can truly be built locally by anyone. Thank you!
Hello,
Indeed, we are working on a new release, expected for August 2026 (to be confirmed), which mainly targets building from sources.
An announcement will be shared on this forum.
Hi Arsalan,
Thanks for reaching out!
Looking at the issue you described, it seems like there might be a misconfiguration at tao-ce/libexec/setup/apps/deliver.libsonnet at develop · tao-ce/tao-ce · GitHub . Could you please verify that this is set to dev? The bundle you’re running into is actually only required if your environment is set to prod (see line https://github.com/tao-ce/tao-deliver-be/blob/main/config/bundles.php#L18).
My advice would be to double-check those settings, revert any composer changes you made, and give it another try. Let me know how it goes!
Best Regards,
Vitalii
Hi kilatib, I just checked, the APP_ENV is already set to ‘dev'. I have not meddled with that.
Also this is not the only bundle, several others are shown as missing when we check the logs after the command task dev:up fails. I have attached a picture showing some of them.
Hi, @arsalan
I just briefly looked at the configuration, and I think I see the problem, may you try to update tao-deliver-be/composer.json at main · tao-ce/tao-deliver-be · GitHub and replace there oat-ce to tao-se after update composer cache should help I think
It’s quite odd that you have a AGPLv3 license but still the source code is private? Is there any kind of list of open source repositories at the moment, I’d just need to see some of the source code to understand how to customize it.
Thanks in advance!
Hello !
January release comes with all source code in separated repositories TAO Community Edition · GitHub. To accommodate release process at that time, it was still using private repositories references in tao-ce/tao-ce monorepo.
Facilitate build process from public sources is one of the goals of the release to come during summer, and we already have successful builds with a new toolchain: Automated build TAO CE without authentication OCE-29 OCE-210 by Cicatrice · Pull Request #67 · tao-ce/tao-ce · GitHub
However, we are still waiting on next release to be stabilized to promote this toolchain.
Hey, I have tried to build this version multiple times with no avail. I was able to update the git submodules with my ssh-key. But when running task dev:up Inside the devcontainer I always get this error: "base
Starting build image localhost/tao-ce/builds/base:dev-latest from /workspace
Starting build image localhost/tao-ce/builds/go:dev-latest from /workspace
base
build
Error: creating build executor: could not parse secrets: faccessat /workspace/.secrets/github_token: no such file or directory
go
build
Error: creating build executor: could not parse secrets: faccessat /workspace/.secrets/github_token: no such file or directory"
Also the error I get from the actual task: “task: Failed to run task “dev:up”: task: Failed to run task “builds:base:build”: exit status 125”
Where does it try to use the github_token and is this accessible publicly?
Edit: I managed to fix it, you should add something like this to the documentation:
Build fails with “could not parse secrets: faccessat /workspace/.secrets/github_token”
The build process requires a GitHub Personal Access Token to access private npm packages. Before running task dev:up, you need to create a .secrets/github_token file on your host machine:
1. Create a GitHub Personal Access Token:
- Go to github.com → your profile → Settings → Developer settings → Personal access tokens → Tokens (classic)
- Click “Generate new token (classic)”
- Give it a name (e.g.,
npm-packages) - Select scope:
read:packages(minimum required) - Click “Generate token” and copy it
2. Create the secrets file locally on your host:
host$ mkdir -p .secrets
host$ echo "YOUR_GITHUB_TOKEN_HERE" > .secrets/github_token
The .secrets directory is gitignored, so this is local-only configuration. The token will be accessible to the dev container builds via the mounted /workspace volume.
@Cicatrice @kilatib Okay now I have a working development environment. Can you give me simple pointers on how to do actual code changes like add custom text and such. Does this support hot-reload or do I have to compile with “task:dev up” after every change?
Any help is appreciated, since I have not found a documentation for this.
Thanks in advance!
Dear @jariJ
Thank you for your message. Did you try `task --watch dev:up or if you concrete develop apps: `task --watch apps:deliver:up`( First one a bit slower so need more pation)
Hey thanks that worked, although it is quite slow like every dev:up takes like a couple minutes, is it the same on your end?
Unfortunately, yes, that’s why we use a specific app where you develop `task --watch apps:deliver:up` or task --watch apps:portal:up
Okay thanks, just to clarify, is the actual build task the one that compiles the code changes?
Depend on the app. The build task just calls the internal mechanism of the app to build itself and copies the code to the right place inside the containers
Okay thanks, we will check if we can get some kind of streamlined watching process.
@Cicatrice @kilatib Is there any kind of bundle or module logic for TAO-CE?
Sorry, I’m not getting the root of your question. May you provide more details?
When I customize tao-ce do I just make the code changes to the repositories or do I create a module or a bundle that will be applied to tao-ce which has our customizations?
You do the changes in the code, then those changes are copied to the proper place at container.

