Skip to content

Repository files navigation

Freeman

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.

Website: turingcomplete.in/product/freeman


Features

  • 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
  • Shared collections — all team members can view and edit collections
  • 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

Requirements

Requirement Version
PHP 8.2 or higher
Composer 2.x
PHP extension: pdo_sqlite required
PHP extension: openssl required
PHP extension: curl required
PHP extension: mbstring required
PHP extension: xml required

No Node.js, no npm, no build step. Tailwind CSS and Alpine.js are loaded from CDN.

Installing missing PHP extensions

Ubuntu / Debian

sudo apt install php-sqlite3 php-curl php-mbstring php-xml

RHEL / Fedora

sudo dnf install php-pdo php-sqlite3 php-curl php-mbstring php-xml

Windows — enable the relevant extensions in your php.ini:

extension=pdo_sqlite
extension=curl
extension=mbstring
extension=openssl

macOS (Homebrew) — extensions are bundled with the php formula.


Installation

1. Clone the repository

git clone https://github.com/your-org/freeman.git
cd freeman

2. Install PHP dependencies

composer install

Do this first. The install wizard (php artisan freeman:install) will attempt to run composer install automatically, but on some servers (restricted PATH, missing composer in shell, etc.) this step can fail silently. Running it manually first avoids any issues.

3. Run the install wizard

php artisan freeman:install

The wizard will:

  1. Check all PHP extension requirements
  2. Copy .env.example.env
  3. Generate a secure APP_KEY
  4. Create the SQLite database file
  5. Run all database migrations
  6. Prompt you to create your super admin account

4. Set your app URL

Open .env and update:

APP_URL=https://your-domain.com

5. Start the server

Development

php artisan serve

Then 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=false

Updating

git pull
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan config:clear
php artisan cache:clear

Configuration

All 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

User management

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.


Collection variables

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.


Import & Export

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 .json file

Roadmap

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
Shared collections (all team members) ✅ Done
freeman:install wizard ✅ Done
File upload support (multipart/form-data) ✅ Done

License

MIT — free to use, modify, and self-host.

About

Self-hosted, web-based REST API client. A lightweight Postman alternative for teams. No desktop install, no data leaves your network.

Topics

Resources

Stars

19 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages