Search by

novay / minios

novay

MiniOS Desktop Environment for Laravel

Package info

github.com/novay/MiniOS

Homepage

Language:Blade

pkg:composer/novay/minios

Statistics

Installs: 28

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.1.0 2026-10-10 17:20 UTC

This package is auto-updated.

Last update: 2026-10-11 06:43:59 UTC


README

MiniOS Logo

Sulap web Laravel lu jadi OS desktop multi-window. Gak pake ribet, sat-set langsung jalan.

Latest Version Total Downloads Software License Laravel Livewire Tailwind CSS

Bahasa: Bahasa Indonesia | English

๐Ÿฅฑ Lagi Bosen, nih!

Jujur aja, dashboard admin jaman now ngebosenin parah: sidebar item di kiri, navbar di atas, isinya tabel putih polosan.

MiniOS nyulap aplikasi Laravel lu jadi Web Desktop OS interaktif berasa pake macOS atau Windows. Jendelanya bisa digeser (draggable), di-resize, di-minimize ke dock, ada task manager, terminal interaktif, sampe fitur pasang aplikasi baru tinggal lempar file .zip.

Ditenagai langsung sama Laravel, Livewire, Alpine.js, Tailwind CSS v4, dan Vite. Enteng, reaktif, gak ada dependensi framework JS ribet.


โšก Cara Pasang (<1 Menit Beres)

1. Install via Composer

composer require novay/minios

2. Install, Migrasi & Run

php artisan minios:install

๐Ÿ’ก Pilihan Mode: Installer bakal nawarin dua pilihan:

  • [0] Full Desktop OS โ€” Menjadikan web lu OS Desktop lengkap (window manager, core apps, wallpapers, & tampilan auth).
  • [1] UI Kit Only โ€” Hanya memasang komponen Blade, style window, dan script tanpa mengutak-atik rute atau autentikasi bawaan web lu.

Bisa juga langsung pake flag: php artisan minios:install --full atau php artisan minios:install --ui.

php artisan migrate
npm run build

3. Selesai

Lu gak wajib ngetik apa-apa lagi! Desktop MiniOS bakal tetap jalan lancar jaya membaca sesi login lama lu tanpa masalah!

Mentok di /email/verify?

Itu kelakuan bawaan Fortify. Langsung gini saja:

Buka config/fortify.php, matiin (komentari) baris ini:

// Features::emailVerification(),

๐Ÿงน Cara Hapus (Uninstall)

Kalo suatu saat lu pengen bersihin MiniOS dari project Laravel lu:

php artisan minios:uninstall

Perintah ini bakal minta konfirmasi terlebih dahulu, lalu otomatis membersihkan semua konfigurasi, asset publik, rute, migrasi, dan integrasi frontend yang dilibatkan oleh MiniOS tanpa mengganggu file-file bawaan Laravel lainnya.


Bikin Kustom Aplikasi di MiniOS

Ada 3 opsi, pilih yang paling cocok sama gaya lu:

Cara 1: Pake Artisan Generator (Paling Sat-Set)

Tinggal ketik:

php artisan minios:make-app Kasir --icon=shopping-cart --pinned

Bum! Langsung brojol 3 file:

  1. app/MiniOS/Kasir/KasirApp.php (Manifest aplikasi)
  2. app/MiniOS/Kasir/Livewire/Kasir.php (Komponen Livewire)
  3. resources/views/apps/kasir.blade.php (Tampilan Blade)

Cara 2: Suruh AI (Paling Enak & Cepet)

Proses instalasi sudah nyelipin skill untuk agent, jadi AI coding assistant lu (Google Antigravity, Cursor, Windsurf, Claude Code, atau Copilot) udah paham jeroan arsitektur MiniOS.

Tinggal suruh pake prompt santai begini:

"Bro, buatin aplikasi Kasir (POS) di MiniOS. Ada keranjang belanja, pencarian barang, sama modal cetak struk."

Yang bakal dikerjain otomatis sama AI:

  • Bikin kerangka file via minios:make-app.
  • Buatin migrasi database + Model Eloquent + jalanin migrasinya.
  • Ngoding logic reaktif Livewire-nya.
  • Mendesain UI Blade ala desktop yang clean, responsif, dan support mode gelap.
  • Nulis testing Pest-nya sekalian!

Cara 3: Bikin Manual (Kalo Lu Gabut & Doyan Ngetik)

1. Bikin Komponen Livewire Buat file di `app/MiniOS/Todo/Livewire/Todo.php`: ```php namespace App\MiniOS\Todo\Livewire;

use Livewire\Component;

class Todo extends Component { public string $newTask = ''; public array $tasks = [];

public function addTask(): void
{
    if (trim($this->newTask) !== '') {
        $this->tasks[] = trim($this->newTask);
        $this->newTask = '';
    }
}

public function render()
{
    return view('apps.todo');
}

}


Bikin tampilannya di `resources/views/apps/todo.blade.php`:
```blade
<div class="h-full flex flex-col bg-neutral-900 text-white p-4">
    <div class="flex gap-2 mb-4">
        <input 
            type="text" 
            wire:model="newTask" 
            wire:keydown.enter="addTask" 
            placeholder="Tulis catatan..." 
            class="flex-1 bg-neutral-800 border border-neutral-700 rounded-lg px-3 py-2 text-sm text-white focus:outline-none focus:ring-2 focus:ring-indigo-500"
        />
        <button wire:click="addTask" class="bg-indigo-600 hover:bg-indigo-500 text-white px-4 py-2 rounded-lg text-sm font-medium transition">
            Tambah
        </button>
    </div>

    <ul class="flex-1 overflow-y-auto space-y-2">
        @forelse ($tasks as $task)
            <li class="bg-neutral-800/60 p-3 rounded-lg text-sm flex items-center justify-between border border-white/5">
                <span>{{ $task }}</span>
            </li>
        @empty
            <li class="text-neutral-500 text-sm italic text-center py-8">Belum ada tugas. Santai dulu gak sih?</li>
        @endforelse
    </ul>
</div>
2. Bikin Manifest Aplikasi (`DesktopApp`) Buat file di `app/MiniOS/Todo/TodoApp.php`:
namespace App\MiniOS\Todo;

use App\MiniOS\Todo\Livewire\Todo;
use Novay\MiniOS\Contracts\DesktopApp;
use Novay\MiniOS\Support\WindowConfig;

class TodoApp implements DesktopApp
{
    public function id(): string
    {
        return 'todo';
    }

    public function name(): string
    {
        return 'Catatan Tugas';
    }

    public function icon(): string
    {
        return 'queue-list'; // Nama icon heroicon atau URL gambar
    }

    public function entry(): string
    {
        return '/todo';
    }

    public function routes(): array
    {
        return ['/todo'];
    }

    public function isPinned(): bool
    {
        return true; // Pin ke dock bawah
    }

    public function component(): ?string
    {
        return Todo::class;
    }

    public function window(): WindowConfig
    {
        return WindowConfig::make()
            ->size(850, 550)  // Ukuran default
            ->min(500, 350)   // Minimal resize
            ->max(1400, 900); // Maksimal resize
    }
}

Selesai! MiniOS otomatis nemuin dan nampilin aplikasi lu di desktop.

๐Ÿ“„ Lisensi

MiniOS adalah software open-source berlisensi MIT License. Bebas lu pake, acak-acak, dan kembangin buat project pribadi maupun komersial.

๐Ÿ‘ค Pembuat

Dibuat dengan kopi dan cinta oleh Novianto Rahmadi (novay@btekno.id). Kalo ngebantu kerjaan lu, jangan lupa lempar โญ Star di GitHub ya cuy!