# s5p -- Installation ## Prerequisites - Python >= 3.11 - pip - Tor (optional, for Tor-based chains) - podman + podman-compose (optional, for container deployment) ## Local Install ```bash cd ~/git/s5p python -m venv .venv source .venv/bin/activate pip install -e . ``` ## Verify ```bash s5p --version which s5p ``` ## Symlink (alternative) ```bash ln -sf ~/git/s5p/.venv/bin/s5p ~/.local/bin/s5p ``` ## Container Install ```bash cd ~/git/s5p cp config/example.yaml config/s5p.yaml # edit with your proxies make build # podman-compose build make up # podman-compose up -d ``` The Alpine-based image (~59MB) contains Python, PyYAML, and baked-in source. Config is mounted at runtime. The compose.yaml volume mount overrides source for local dev. ## Systemd Service Install s5p as a systemd service for automatic startup and restart. ```bash # Install the binary cd ~/git/s5p source .venv/bin/activate pip install -e . # Copy config sudo mkdir -p /etc/s5p sudo cp config/example.yaml /etc/s5p/s5p.yaml sudo nano /etc/s5p/s5p.yaml # edit with your settings # Install the unit (copies service file + daemon-reload) make install-service # Enable and start sudo systemctl enable --now s5p # Check status sudo systemctl status s5p journalctl -u s5p -f ``` The service unit expects: - Binary at `/usr/local/bin/s5p` - Config at `/etc/s5p/s5p.yaml` - Restarts on failure with 5-second delay ## Install Tor (optional) ```bash sudo apt install tor sudo systemctl enable --now tor # Verify Tor SOCKS5 port ss -tlnp | grep 9050 ```