Skip to content

Linux

Supported: kernel 4.4+, glibc-based distros with systemd. Tested on Ubuntu 22.04+, Debian 12, Fedora 39+. Architectures: amd64, arm64.

  1. Open a shell.

  2. Run the installer:

    Terminal window
    curl -sSL https://proxy.sotatek.works/releases/download/latest/install.sh | bash
    export PATH="$HOME/.local/bin:$PATH" && hash -r

    The script downloads the matching binary, verifies the SHA256 checksum, places it under /usr/local/bin/sotatek-proxy, and registers the machine-wide systemd service (it will ask for sudo at that step). The service starts immediately and on boot.

  3. Verify the daemon is up:

    Terminal window
    sudo sotatek-proxy status
    curl http://127.0.0.1:3817/_proxy/healthz

The daemon identifies the process that made each request, reads its working directory, and runs git remote -v dropped to that user’s own uid — so it reads each user’s repository with that user’s permissions, never with elevated privileges. The result is sent upstream as X-Git-Remote.

To make this possible the service holds CAP_SYS_PTRACE, CAP_SETUID and CAP_SETGID, and runs sandboxed (NoNewPrivileges, ProtectSystem=strict, ProtectHome=read-only) as a non-root system user.

WhatPath
Binary/usr/local/bin/sotatek-proxy
Config/etc/sotatek-proxy/config.yaml (optional)
Logs/var/log/sotatek-proxy/sotatek-proxy.log
Unit/etc/systemd/system/sotatek-proxy.service
Runs assystem user sotatek-proxy (nologin)
Terminal window
sudo sotatek-proxy status # running / stopped
sudo sotatek-proxy start # start now
sudo sotatek-proxy stop # stop now (stays stopped across reboot)
sotatek-proxy logs # tail last 100 lines
sudo sotatek-proxy uninstall # remove service, system user, config and logs

You can also use systemd directly:

Terminal window
systemctl status sotatek-proxy
journalctl -u sotatek-proxy -f

Where systemd or useradd is unavailable, service installation is not supported. Run the proxy in the foreground instead — it falls back to per-user paths (~/.config/sotatek-proxy/config.yaml, ~/.local/state/sotatek-proxy/) and needs no root:

Terminal window
sotatek-proxy daemon

If sotatek-proxy status returns command not found, /usr/local/bin is not on your PATH.

Add it to the right shell rc, then reload:

Terminal window
case "$(basename "${SHELL:-bash}")" in
zsh) RC="$HOME/.zshrc" ;;
*) RC="$HOME/.bashrc" ;;
esac
LINE='export PATH="/usr/local/bin:$PATH"'
grep -qxF "$LINE" "$RC" 2>/dev/null || echo "$LINE" >> "$RC"
source "$RC"
Terminal window
sudo sotatek-proxy uninstall
sudo rm /usr/local/bin/sotatek-proxy