Travellers' community. Sharing, hosting and getting people together.
Current development
_Out of maintenance mode_
As of June 2026, Trustroots is no longer in maintenance mode. The project was mostly in maintenance mode from 2022 until June 2026, and development work is welcome again.
Priorities:
- Simplify old code and reduce duplication.
- Upgrade dependencies and improve the development setup, including Docker.
- Continue the React transition where it makes sense.
- Work on Nostr/Nostroots integration. The basics are in place for NIP-5 and NIP-7.
- Make Trustroots easier to fork and run independently.
Medium term plans
Our medium term plan is decentralisation through the Nostr protocol. See https://github.com/Trustroots/nostroots.
We are also open to improvements that make trustroots forkable.
nvm & npm
We're using nvm to manage node versions.
nvm usenpm -g i npm@latest-7 [email protected]
To be able to install dependencies on macOS / apple silicon, the following dependencies are required:
brew install pkg-config cairo pango libpng jpeg giflib librsvg python-setuptools
python to be a valid binary, which it is not. This can be solved by adding a symlink from python to python3 like so:
ln -s "$(brew --prefix)/bin/python"{3,}
sed -i '' 's/"rU"/"r"/' ~/.nvm/versions/node/v16.20.2/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py
''.
Running locally
Choose the setup that fits what you're doing:
- Host development:
nvm use && npm start - Docker development:
cd deploy/docker && docker compose up - Dev container: open the repository with Dev Containers: Reopen in Container
npm start inside the integrated terminal
The host and Docker setups serve the app at http://localhost:3000.
Mailpit catches outbound development email when using Docker Compose or the Dev
Container. Its web UI is available at http://localhost:1080 for Docker Compose
and http://localhost:11080 for the Dev Container. Bare npm start uses an
in-process JSON transport instead and does not start the mail UI.
Docker dev uses hot reload, Mailpit, and a shared MongoDB service. Development
emails are captured locally and are not delivered. See
deploy/docker/README.md for first-time setup,
troubleshooting, dependency rebuilds, test workflows, and production-like image
checks. See .devcontainer/README.md for editor and
test workflow details.
Building for production
See deploy/docker. Run dockerBuild.sh. Then docker push the latest tags
which are output as the last part of the dockerBuild.sh script.
Merging
Only use git merge --no-ff branch or the "Create a merge commit" option on
GitHub. We don't want to delete any commit hashes. No rebasing or squashing.
We use the commit hash to track what was deployed when, so any of those operations can destroy that history, making it much harder to understand what code was deployed when in the past.
License
- The AGPL Licence
- Photos copyright photographers - several of them are under Creative Commons. Others are permitted to use only with Trustroots.
- Logos of external communities are copyrighted work and may be subject to trademark laws.