FPS is an experimental Linux-first VPN framework: a hidden L3 TUN tunnel carried inside live TLS cover sessions. The current implementation is v2-only: carrier authentication uses Zero-RTT, visible FPS traffic is shaped as TLS Application Data records, and post-upgrade traffic is carried in encrypted FPS envelopes.
The expanded name, Free Porn Storage, is intentionally misleading. It gives the project a noisy, hard-to-search label: someone who does not already know what FPS is looking for should not learn much from the name alone.
This repository is still beta-candidate software. It is suitable for controlled Linux/Docker testing and private lab deployments, not yet for unattended public production.
User and operator documentation lives in docs/:
- Documentation index
- Public beta quickstart
- Protocol and architecture specification
- Docker runtime guide
- Client profiles and carrier setup
- Proxy overlays over FPS
- Linux routing and DNS workflow
- UUID and key rotation
- Release checklist
- Testing and quality workflow
- Beta status
Developer and agent working notes live in dev/. The root
AGENTS.md remains the coordination contract for Codex/agents
working in this repository.
cmake -S . -B build
cmake --build build -j 2
ctest --test-dir build --output-on-failureFor a Docker-first runtime path:
docker build -t fps:local .
docker run --rm fps:local fps_server --help
docker run --rm fps:local fps_client --helpFor the end-to-end beta operator flow, use the
public beta quickstart. It covers server
key generation, one UUID per client profile, server/client compose, /etc/hosts
carrier mapping, status checks and optional Dante proxy overlay.
For the full local quality set:
tools/run_quality_checks.sh --allSee docs/docker.md, docs/client-profiles.md and docs/testing.md for detailed operator and regression workflows.
FPS is distributed under the MIT license.