PHPackages                             nickurt/laravel-hostfact - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. nickurt/laravel-hostfact

AbandonedArchivedLibrary[Utility &amp; Helpers](/categories/utility)

nickurt/laravel-hostfact
========================

HostFact for Laravel 6.x/7.x/8.x

1.7(5y ago)2044418MITPHPPHP ^8.0|^7.4

Since May 14Pushed 5y ago1 watchersCompare

[ Source](https://github.com/nickurt/laravel-hostfact)[ Packagist](https://packagist.org/packages/nickurt/laravel-hostfact)[ RSS](/packages/nickurt-laravel-hostfact/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (4)Versions (11)Used By (0)

Laravel HostFact
----------------

[](#laravel-hostfact)

[![Build Status](https://github.com/nickurt/laravel-hostfact/workflows/tests/badge.svg)](https://github.com/nickurt/laravel-hostfact/actions)[![Total Downloads](https://camo.githubusercontent.com/4e73ae4cbff692600c8dff10cbeea1e0fd5b3c34116d3eae0ffd1fc5e6749137/68747470733a2f2f706f7365722e707567782e6f72672f6e69636b7572742f6c61726176656c2d686f7374666163742f642f746f74616c2e737667)](https://packagist.org/packages/nickurt/laravel-hostfact)[![Latest Stable Version](https://camo.githubusercontent.com/b4ec542de5f476c85081f01719951e4844cd22dd203dbb1fbb3d8b8a59842e83/68747470733a2f2f706f7365722e707567782e6f72672f6e69636b7572742f6c61726176656c2d686f7374666163742f762f737461626c652e737667)](https://packagist.org/packages/nickurt/laravel-hostfact)[![MIT Licensed](https://camo.githubusercontent.com/829069f809bf9c918a3f3061538bb32fa0bb0dfced9d5e9c4d7cc1925fa867c2/68747470733a2f2f706f7365722e707567782e6f72672f6e69636b7572742f6c61726176656c2d686f7374666163742f6c6963656e73652e737667)](LICENSE.md)

HostFact is an easy-to-use billing and automation solution for hosting companies

### Table of contents

[](#table-of-contents)

- [Installation](#installation)
- [Usage](#usage)
- [Tests](#tests)

### Installation

[](#installation)

Install this package with composer:

```
composer require nickurt/laravel-hostfact

```

Copy the config files for the HostFact-plugin

```
php artisan vendor:publish --provider="nickurt\HostFact\ServiceProvider" --tag="config"

```

Add the HostFact credentials to your `.env` file

```
HOSTFACT_DEFAULT_URL=
HOSTFACT_DEFAULT_KEY=

```

### Usage

[](#usage)

#### Authentication \[debtors\]

[](#authentication-debtors)

It's possible to use a custom `hostfact` authentication driver to login debtors in your application, by default the UserProfile will be cached for 60 minutes

```
// config/auth.php
'providers' => [
    'hostfact' => [
        'driver' => 'hostfact'
    ],
]

// Auth::attempt
if(Auth::attempt(['username' => $username, 'password' => $password]))
{
    dd(Auth::user(), Auth::id());
}
```

#### Multiple Panels \[config\]

[](#multiple-panels-config)

If you want to work with more HostFact panels, you can define more panels in the `config/hostfact.php` file

```
// config/hostfact.php
'panels' => [

    'default' => [
        'url' => env('HOSTFACT_DEFAULT_URL'),
        'key' => env('HOSTFACT_DEFAULT_KEY'),
    ],

    'ppe' => [
        'url' => env('HOSTFACT_PPE_URL'),
        'key' => env('HOSTFACT_PPE_KEY'),
    ],

],
```

#### Multiple Panels \[normal usage\]

[](#multiple-panels-normal-usage)

To use another panel than your default one, you can specify it with the panel-method

```
// DebtorsController
public function getIndex()
{
    $debtors = HostFact::panel('ppe')->debtors()->all([
        'Sort' => 'DebtorCode',
        'limit' => 20
    ]);

    //
}
```

#### Multiple Panels \[dependency injection\]

[](#multiple-panels-dependency-injection)

```
// Route
Route::get('/hostfact/{hostFact}/debtors', ['as' => 'hostfact/debtors', 'uses' => 'DebtorsController@getIndex']);

Route::bind('hostFact', function ($value, $route) {
    app('HostFact')->panel($value);

    return app('HostFact');
});

// DebtorsController
public function getIndex(HostFact $hostFact)
{
    $debtors = $hostFact->debtors()->all([
        'Sort' => 'DebtorCode',
        'limit' => 20
    ]);

    //
}
```

#### Attachments

[](#attachments)

```
HostFact::attachments()->add(array $params)
HostFact::attachments()->delete(array $params)
HostFact::attachments()->download(array $params)
```

#### CreditInvoices

[](#creditinvoices)

```
HostFact::creditinvoices()->add(array $params)
HostFact::creditinvoices()->delete(array $params)
HostFact::creditinvoices()->edit(array $params)
HostFact::creditinvoices()->list(array $params)
HostFact::creditinvoices()->markAsPaid(array $params)
HostFact::creditinvoices()->partPayment(array $params)
HostFact::creditinvoices()->show(array $params)
```

#### Creditors

[](#creditors)

```
HostFact::creditors()->add(array $params)
HostFact::creditors()->delete(array $params)
HostFact::creditors()->edit(array $params)
HostFact::creditors()->list(array $params)
HostFact::creditors()->show(array $params)
```

#### Debtors

[](#debtors)

```
HostFact::debtors()->add(array $params)
HostFact::debtors()->checkLogin(array $params)
HostFact::debtors()->edit(array $params)
HostFact::debtors()->generatePdf(array $params)
HostFact::debtors()->list(array $params)
HostFact::debtors()->sendEmail(array $params)
HostFact::debtors()->show(array $params)
HostFact::debtors()->updateLoginCredentials(array $params)
```

#### Domains

[](#domains)

```
HostFact::domains()->add(array $params)
HostFact::domains()->autoRenew(array $params)
HostFact::domains()->changeNameServer(array $params)
HostFact::domains()->check(array $params)
HostFact::domains()->delete(array $params)
HostFact::domains()->edit(array $params)
HostFact::domains()->editDnsZone(array $params)
HostFact::domains()->editWhois(array $params)
HostFact::domains()->getDnsZone(array $params)
HostFact::domains()->getToken(array $params)
HostFact::domains()->list(array $params)
HostFact::domains()->listDnsTemplates(array $params)
HostFact::domains()->lock(array $params)
HostFact::domains()->register(array $params)
HostFact::domains()->show(array $params)
HostFact::domains()->syncWhois(array $params)
HostFact::domains()->terminate(array $params)
HostFact::domains()->transfer(array $params)
HostFact::domains()->unlock(array $params)
```

#### Groups

[](#groups)

```
HostFact::groups()->add(array $params)
HostFact::groups()->delete(array $params)
HostFact::groups()->edit(array $params)
HostFact::groups()->list(array $params)
HostFact::groups()->show(array $params)
```

#### Handles

[](#handles)

```
HostFact::handles()->add(array $params)
HostFact::handles()->delete(array $params)
HostFact::handles()->edit(array $params)
HostFact::handles()->list(array $params)
HostFact::handles()->listDomain(array $params)
HostFact::handles()->show(array $params)
```

#### Hosting

[](#hosting)

```
HostFact::hosting()->add(array $params)
HostFact::hosting()->create(array $params)
HostFact::hosting()->delete(array $params)
HostFact::hosting()->edit(array $params)
HostFact::hosting()->getDomainList(array $params)
HostFact::hosting()->list(array $params)
HostFact::hosting()->removeFromServer(array $params)
HostFact::hosting()->sendAccountInfoByEmail(array $params)
HostFact::hosting()->show(array $params)
HostFact::hosting()->suspend(array $params)
HostFact::hosting()->terminate(array $params)
HostFact::hosting()->unsuspend(array $params)
HostFact::hosting()->upDownGrade(array $params)
```

#### Invoices

[](#invoices)

```
HostFact::invoices()->add(array $params)
HostFact::invoices()->block(array $params)
HostFact::invoices()->cancelSchedule(array $params)
HostFact::invoices()->credit(array $params)
HostFact::invoices()->delete(array $params)
HostFact::invoices()->download(array $params)
HostFact::invoices()->edit(array $params)
HostFact::invoices()->list(array $params)
HostFact::invoices()->markAsPaid(array $params)
HostFact::invoices()->markAsUnpaid(array $params)
HostFact::invoices()->partPayment(array $params)
HostFact::invoices()->paymentProcessPause(array $params)
HostFact::invoices()->paymentProcessReactivate(array $params)
HostFact::invoices()->schedule(array $params)
HostFact::invoices()->sendByEmail(array $params)
HostFact::invoices()->sendReminderByEmail(array $params)
HostFact::invoices()->sendSummationByEmail(array $params)
HostFact::invoices()->show(array $params)
HostFact::invoices()->unblock(array $params)
```

#### Orders

[](#orders)

```
HostFact::orders()->add(array $params)
HostFact::orders()->delete(array $params)
HostFact::orders()->edit(array $params)
HostFact::orders()->list(array $params)
HostFact::orders()->process(array $params)
HostFact::orders()->show(array $params)
```

#### PriceQuotes

[](#pricequotes)

```
HostFact::pricequotes()->accept(array $params)
HostFact::pricequotes()->add(array $params)
HostFact::pricequotes()->decline(array $params)
HostFact::pricequotes()->delete(array $params)
HostFact::pricequotes()->download(array $params)
HostFact::pricequotes()->edit(array $params)
HostFact::pricequotes()->list(array $params)
HostFact::pricequotes()->sendByEmail(array $params)
HostFact::pricequotes()->show(array $params)
```

#### Products

[](#products)

```
HostFact::products()->add(array $params)
HostFact::products()->delete(array $params)
HostFact::products()->edit(array $params)
HostFact::products()->list(array $params)
HostFact::products()->show(array $params)
```

#### Services

[](#services)

```
HostFact::services()->add(array $params)
HostFact::services()->edit(array $params)
HostFact::services()->list(array $params)
HostFact::services()->show(array $params)
HostFact::services()->terminate(array $params)
```

#### Ssl

[](#ssl)

```
HostFact::ssl()->add(array $params)
HostFact::ssl()->download(array $params)
HostFact::ssl()->edit(array $params)
HostFact::ssl()->getStatus(array $params)
HostFact::ssl()->installed(array $params)
HostFact::ssl()->list(array $params)
HostFact::ssl()->reissue(array $params)
HostFact::ssl()->renew(array $params)
HostFact::ssl()->request(array $params)
HostFact::ssl()->resendApproverMail(array $params)
HostFact::ssl()->revoke(array $params)
HostFact::ssl()->show(array $params)
HostFact::ssl()->terminate(array $params)
HostFact::ssl()->uninstalled(array $params)
```

#### Tickets

[](#tickets)

```
HostFact::tickets()->add(array $params)
HostFact::tickets()->addMessage(array $params)
HostFact::tickets()->changeOwner(array $params)
HostFact::tickets()->changeStatus(array $params)
HostFact::tickets()->delete(array $params)
HostFact::tickets()->edit(array $params)
HostFact::tickets()->list(array $params)
HostFact::tickets()->show(array $params)
```

#### Vps

[](#vps)

```
HostFact::vps()->add(array $params)
HostFact::vps()->create(array $params)
HostFact::vps()->downloadAccountData(array $params)
HostFact::vps()->edit(array $params)
HostFact::vps()->list(array $params)
HostFact::vps()->pause(array $params)
HostFact::vps()->restart(array $params)
HostFact::vps()->sendAccountDataByEmail(array $params)
HostFact::vps()->show(array $params)
HostFact::vps()->start(array $params)
HostFact::vps()->suspend(array $params)
HostFact::vps()->terminate(array $params)
HostFact::vps()->unsuspend(array $params)
```

### Tests

[](#tests)

```
composer test
```

---

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity25

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor1

Top contributor holds 95.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~117 days

Total

9

Last Release

1983d ago

PHP version history (4 changes)1.0PHP ^7.0

1.1PHP ^7.1.3

1.2PHP ^7.2

1.7PHP ^8.0|^7.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/41ad8e23eeb9da6d6c8495ba9bb8021aeeba1d45307b7dad2c70c3fa6703d713?d=identicon)[nickurt](/maintainers/nickurt)

---

Top Contributors

[![nickurt](https://avatars.githubusercontent.com/u/5840084?v=4)](https://github.com/nickurt "nickurt (22 commits)")[![dependabot-preview[bot]](https://avatars.githubusercontent.com/in/2141?v=4)](https://github.com/dependabot-preview[bot] "dependabot-preview[bot] (1 commits)")

---

Tags

hostfacthostfact-apilaravellaravel-hostfactwefactwefact-apilaravelhostfact

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/nickurt-laravel-hostfact/health.svg)

```
[![Health](https://phpackages.com/badges/nickurt-laravel-hostfact/health.svg)](https://phpackages.com/packages/nickurt-laravel-hostfact)
```

###  Alternatives

[grumpydictator/firefly-iii

Firefly III: a personal finances manager.

22.8k69.3k](/packages/grumpydictator-firefly-iii)[gehrisandro/tailwind-merge-laravel

TailwindMerge for Laravel merges multiple Tailwind CSS classes by automatically resolving conflicts between them

341682.2k18](/packages/gehrisandro-tailwind-merge-laravel)[backpack/basset

Dead-simple way to load CSS or JS assets only once per page, when using Laravel 10+.

202832.4k6](/packages/backpack-basset)[livewire/volt

An elegantly crafted functional API for Laravel Livewire.

4195.3M84](/packages/livewire-volt)[firefly-iii/data-importer

Firefly III Data Import Tool.

7545.8k](/packages/firefly-iii-data-importer)[nickurt/laravel-akismet

Akismet for Laravel 11.x/12.x/13.x

97139.6k2](/packages/nickurt-laravel-akismet)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
