# Tesor — tiny packages caching proxy
Soon humanity will go to Mars and in order for the colonists to be able
to program, we will need a local mirror of packages.
## Installation
Please note that the project is in its infancy and
is **not** intended for production use.
**Debian/Ubuntu:**
```bash
sudo apt install curl gnupg
curl -fsSL https://pkg.dimidiumlabs.io/packages.gpg | sudo gpg --dearmor -o /usr/share/keyrings/dimidiumlabs.gpg
echo "deb [signed-by=/usr/share/keyrings/dimidiumlabs.gpg] https://pkg.dimidiumlabs.io/tesor/apt/ nightly main" | sudo tee /etc/apt/sources.list.d/tesor.list
sudo apt update && sudo apt install tesor
sudo systemctl enable --now tesor
```
**Fedora/RHEL:**
```bash
# DNF5 (Fedora 41+, RHEL 10+)
sudo dnf config-manager addrepo --from-repofile=https://pkg.dimidiumlabs.io/tesor/rpm/nightly/tesor-nightly.repo
# DNF4 (Fedora 40 and older, RHEL 8/9)
sudo curl -o /etc/yum.repos.d/tesor-nightly.repo https://pkg.dimidiumlabs.io/tesor/rpm/nightly/tesor-nightly.repo
sudo dnf install tesor
sudo systemctl enable --now tesor
```
**openSUSE:**
```bash
sudo rpm --import https://pkg.dimidiumlabs.io/packages.gpg
sudo zypper addrepo https://pkg.dimidiumlabs.io/tesor/rpm/nightly/ tesor-nightly
sudo zypper refresh
sudo zypper install tesor
sudo systemctl enable --now tesor
```
## Build from source
1. Clone repo: `git clone https://git.dimidiumlabs.io/tesor.git && cd tesor`
1. Provision the toolchain and system build dependencies: `mise bootstrap`
1. Build from source: `mise exec -- cargo build --release`
1. Install manually
```bash
sudo groupadd --system tesor
sudo useradd --system --gid tesor --no-create-home --shell /usr/sbin/nologin tesor
sudo install -m 700 -o tesor ./pkg/tesor.toml /etc/
sudo install -m 755 -o root ./pkg/tesor.service /usr/lib/systemd/system
sudo install -m 755 -o root target/release/tesor /usr/local/bin/
```
1. start systemd service: `sudo systemctl enable --now tesor`
## Contributing
We welcome your contributions, including code, bug reports, ideas, and success
stories.
If you are making a contribution for the first time or from a new email, please
add yourself to the `.mailmap`.
### Signoff
To include your code, we ask that you read and agree to the [CLA](./CLA.md). To
sign, add a `CLA-Version: 1.0` and a `Signed-off-by` trailer to every commit
(`git commit -s --trailer "CLA-Version: 1.0"`). Each commit in a pull request
must carry a valid `Signed-off-by` line matching the commit author. Please use
your real name. We cannot include code from anonymous contributors.
AI agents MUST NOT add Signed-off-by tags. Only humans can legally certify the
Contributor License Agreement.
### AI policy
You may use AI agents when writing code and documentation. AI is not allowed for
media including images, videos, fonts at all. You must fully read, understand,
and cleanup any code generated by the agent. We ask that you disclose the
agent's use and indicate the tool, model, and extent of contribution.
Contributions should include an Assisted-by tag in the following format:
`Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]`, for example:
`Assisted-by: Claude:claude-4.6-opus coccinelle sparse`
Remember, AI agents should make software better, not worse.
## Licensing
Tesor source code is licensed under AGPL-3.0-or-later. Documentation is
licensed under CC-BY-4.0.
The bundled JetBrains Mono font files are licensed under OFL-1.1.