Thank you for your interest in contributing! This is a community project and all contributions are welcome — from bug reports and documentation fixes to new features.
Before opening an issue, please:
- Check the Troubleshooting section in the README
- Search existing issues to avoid duplicates
When opening a bug report, please include:
- Your Linux distro and version
- Docker and Docker Compose versions (
docker --version,docker compose version) - The output of
./manage.sh status - Relevant logs from
./manage.sh logs <service> - Steps to reproduce the issue
Open a GitHub Issue with the label enhancement and describe:
- What problem the feature solves
- How you'd expect it to work
- Any alternatives you've considered
- Fork the repository
- Create a branch from
main:git checkout -b feature/your-feature-name
- Make your changes — keep them focused and well-commented
- Test your changes:
- Run the unit tests:
bash tests/test_setup_functions.sh - Run the API key tests:
bash tests/test_api_key.sh - Run the E2E test suite:
bash tests/test_e2e.sh - Run ShellCheck on any modified scripts:
shellcheck setup.sh uninstall.sh - Manually test setup on a clean environment if possible
- Run the unit tests:
- Commit with a clear message:
git commit -m "fix: describe what was fixed" - Push and open a Pull Request against
main
Use conventional commits:
| Prefix | When to use |
|---|---|
feat: |
New feature |
fix: |
Bug fix |
docs: |
Documentation changes only |
chore: |
Maintenance tasks (dependency bumps, CI changes) |
refactor: |
Code restructuring without functional change |
- All shell scripts must pass ShellCheck (CI enforces this)
- Follow the existing code style in
setup.sh— functions are named with underscores, long sections are separated by visual dividers - Keep user-facing messages clear and consistent with existing log formatting
- New interactive prompts should respect the
--yes/TORBOX_*env var patterns for unattended installs
| File | Purpose |
|---|---|
setup.sh |
Main installation script — interactive and --yes mode |
uninstall.sh |
Clean removal script |
docker-compose.yml |
Reference Docker Compose (regenerated by setup.sh) |
.env.example |
Environment variable template (used by non-interactive installs) |
tests/ |
Shell-based unit tests for setup functions |
.github/workflows/lint.yml |
CI workflow: shfmt formatting, ShellCheck, unit tests, manage.sh validation, compose validation |
Open a GitHub Discussion or an Issue if you're unsure where to start.