Invoice Ninja self-hosted on Hostinger – setup completes but login fails / migrations not running

Hello everyone,

I’m trying to install Invoice Ninja self-hosted (v5) on Hostinger shared hosting and I’m having issues even though the setup process completes.

Here’s what I’ve done so far:

  • Hosting: Hostinger (shared hosting, no SSH access)
  • PHP version: 8.1
  • Database: MariaDB (created via phpMyAdmin)
  • Installation method: manual upload (.tar extracted)
  • .env file is configured correctly (APP_URL, DB credentials, etc.)
  • The setup wizard finishes without errors

However, after setup:

  • The login page fails (white page / error)
  • Logs show errors like:
    • Table 'accounts' doesn't exist
    • php artisan migrate cannot be run (no SSH)
  • I understand php artisan commands can’t be executed via phpMyAdmin

I’ve seen other users mention that Invoice Ninja can work on Hostinger, so I’m wondering:

  1. Is there a supported way to run migrations on shared hosting without SSH?
  2. Is there a specific Hostinger configuration (cron, web installer, manual SQL import)?
  3. Has anyone successfully installed Invoice Ninja v5 on Hostinger recently?

I’d really like to keep this setup on Hostinger if possible.

Any guidance or confirmed working approach would be greatly appreciated.

Thank you!

[2026-01-16 19:05:07] production.ERROR: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘u757848510_ywPLw.accounts’ doesn’t exist (Connection: mysql, SQL: select * from accounts limit 1) {“exception”:"[object] (Illuminate\Database\QueryException(code: 42S02): SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘u757848510_ywPLw.accounts’ doesn’t exist (Connection: mysql, SQL: select * from accounts limit 1) at /home/u757848510/domains/sampless.com/public_html/billing/vendor/laravel/framework/src/Illuminate/Database/Connection.php:825)

Hi,

I believe Hostinger does support connecting to the server with SSH.

Also, maybe the info here will help:

1 Like

artisan commands can easily been called by a cron job:

1 Like