Freeman is an open-source, self-hosted, web-based REST API client — a lightweight Postman alternative you can run on your own server.
No desktop install. No data leaves your network. Your team accesses it from any browser.
- Collections & folders — organise requests just like Postman
- Collection variables — define
{{BASE_URL}}once, reuse everywhere across the collection - Import / Export — full Postman Collection v2.1 compatibility; migrate in seconds
- Auth helpers — Bearer token, Basic auth, and API Key support built in
- Team accounts — super admin creates accounts; no self-registration
- CORS-free — all requests are proxied server-side via Guzzle; no browser restrictions
- Rate limiting — 60 requests/min per user on the run endpoint
- Self-contained — SQLite database, no external services required
| Requirement | Minimum |
|---|---|
| PHP | 8.2+ |
| Composer | 2.x |
PHP extension: pdo_sqlite |
required |
PHP extension: openssl |
required |
No Node.js, no npm, no build step. Tailwind CSS and Alpine.js are loaded from CDN.
Ubuntu / Debian
sudo apt install php-sqlite3RHEL / Fedora
sudo dnf install php-pdo php-sqlite3Windows — enable extension=pdo_sqlite in your php.ini.
macOS (Homebrew) — extensions are bundled with the php formula.
git clone https://github.com/your-org/freeman.git
cd freemanphp artisan freeman:installThat's it. The wizard will automatically:
- Install PHP dependencies via Composer (if not already installed)
- Check all PHP extension requirements
- Copy
.env.example→.env - Generate a secure
APP_KEY - Create the SQLite database file
- Run all database migrations
- Prompt you to create your super admin account
Open .env and update:
APP_URL=https://your-domain.comDevelopment
php artisan serveThen open http://localhost:8000 in your browser.
Production (recommended: nginx + php-fpm)
Point your web server's document root at the public/ directory and set the following in .env:
APP_ENV=production
APP_DEBUG=falsegit pull
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan config:clear
php artisan cache:clearAll configuration lives in .env. Key settings:
| Key | Description | Default |
|---|---|---|
APP_NAME |
Displayed in the browser tab | Freeman |
APP_URL |
Full public URL where Freeman is hosted | http://localhost:8000 |
APP_ENV |
Set to production for live deployments |
production |
APP_DEBUG |
Always false in production |
false |
SESSION_LIFETIME |
Session timeout in minutes | 120 |
Only the super admin can create user accounts — there is no self-registration. Log in with your super admin credentials and go to Admin → Users.
New users are prompted to change their password on first login.
Use {{VARIABLE_NAME}} syntax in any URL, header, or request body. Variables are defined per-collection under Variables in the collection settings panel and are substituted at request time.
Freeman uses the Postman Collection v2.1 format for both import and export, making it straightforward to migrate existing Postman collections without any manual work.
- Export — open a collection and click Export
- Import — click Import in the sidebar and upload a
.jsonfile
| Feature | Status |
|---|---|
| Collections, folders, saved requests | ✅ Done |
| Request builder (headers, body, auth) | ✅ Done |
Collection variables ({{VAR}}) |
✅ Done |
| Import / Export (Postman v2.1) | ✅ Done |
| Auth helpers (Bearer / Basic / API Key) | ✅ Done |
| Rate limiting on request execution | ✅ Done |
freeman:install wizard |
✅ Done |
| Environments & environment switching | 🔜 v2 |
| Request history log | 🔜 v2 |
| Pre-request & test scripts | 🔜 v2 |
| Sharing collections between users | 🔜 v2 |
MIT — free to use, modify, and self-host.
