Skip to content
Merged

V1 #23

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
48d02d0
feat: add memory optimization features including garbage collection a…
Tiagospem Apr 29, 2025
aaa5b22
feat: add historical listener tracking, potential memory leak detecti…
Tiagospem Apr 29, 2025
ce426ed
chore: bump version to 0.9.9 in package.json
Tiagospem Apr 29, 2025
ce8a6cb
feat: enhance password hashing functionality by allowing configurable…
Tiagospem Apr 29, 2025
4ebb440
refactor: remove garbage collection functionality from memory optimiz…
Tiagospem Apr 29, 2025
59c1ce1
feat: implement application menu with update checking functionality a…
Tiagospem Apr 29, 2025
be5f7ee
feat: add TypeScript definitions for Redis, MySQL, Docker, and projec…
Tiagospem May 15, 2025
10070b8
chore: update .gitignore to include dist-electron directory
Tiagospem May 15, 2025
d45b31e
chore: remove Snapcraft installation step from build process for Ubuntu
Tiagospem May 15, 2025
8c99f67
chore: rename electron-builder.json5 to electron-builder.yml and upda…
Tiagospem May 15, 2025
c42e80d
chore: update Linux build and publish scripts to use AppImage format
Tiagospem May 15, 2025
670948b
chore: add Snap target to electron-builder.yml with publish disabled
Tiagospem May 15, 2025
0b7f9fb
chore: update electron-builder.yml to improve artifact naming and com…
Tiagospem May 15, 2025
11cd25e
chore: update artifact naming in electron-builder.yml for macOS and W…
Tiagospem May 15, 2025
4ee55d4
chore: streamline artifact naming and structure in electron-builder.yml
Tiagospem May 15, 2025
20b9eb5
chore: enhance build configuration in package.json for improved artif…
Tiagospem May 15, 2025
a5ed593
chore: update build scripts and configurations for improved artifact …
Tiagospem May 15, 2025
1799ae2
chore: update build scripts and configurations in package.json and wo…
Tiagospem May 15, 2025
2f836c1
chore: simplify architecture configuration in package.json by limitin…
Tiagospem May 15, 2025
acb78e3
chore: enhance build configuration in package.json and vite.config.ts…
Tiagospem May 15, 2025
b828873
chore: refine build scripts in package.json and vite.config.ts for be…
Tiagospem May 15, 2025
27b9da8
chore: standardize code formatting and improve consistency across mul…
Tiagospem May 15, 2025
4864407
chore: update ESLint and Prettier configurations for improved code co…
Tiagospem May 15, 2025
bc8e18b
chore: update compression setting in package.json and streamline erro…
Tiagospem May 15, 2025
bbad2da
chore: enhance connection handling and navigation in DatabaseView and…
Tiagospem May 16, 2025
0f39bd1
chore: refactor ManageConnection component for improved layout and us…
Tiagospem May 16, 2025
4dd578f
chore: enhance connection handling and navigation in DatabaseView and…
Tiagospem May 16, 2025
ecc3985
chore: improve connection status handling and display in connections …
Tiagospem May 16, 2025
5a1a907
chore: add functionality to find Laravel commands and integrate with …
Tiagospem May 16, 2025
b9ea864
chore: add command signature handling and update display in LaravelCo…
Tiagospem May 16, 2025
2b353e1
chore: enhance command execution handling and add flags support in La…
Tiagospem May 16, 2025
ab51c3b
chore: add preferred code editor setting and update editor selection …
Tiagospem May 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module.exports = {
extends: ["plugin:prettier/recommended"],
parserOptions: {
ecmaVersion: "latest",
sourceType: "module"
}
extends: ['plugin:prettier/recommended'],
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module'
}
};
97 changes: 49 additions & 48 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,53 +1,54 @@
name: Release

on:
workflow_dispatch:
workflow_dispatch:

jobs:
release:
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]

steps:
- name: Check out Git repository
uses: actions/checkout@v4

- name: Install Node.js and npm
uses: actions/setup-node@v4
with:
node-version: "22.x"

- name: Install dependencies
run: npm install --force

- name: Updater
run: git update-index --chmod=+x ./gen-update-xml.sh && sh ./gen-update-xml.sh
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}

- name: Install Snapcraft
if: matrix.os == 'ubuntu-latest'
run: |
sudo snap install snapcraft --classic

- name: 🐧 Release Linux
if: matrix.os == 'ubuntu-latest'
run: npm run publish:linux
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}

- name: 💻 Release Windows
if: matrix.os == 'windows-latest'
run: npm run publish:win
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}

- name:  Release Mac
if: matrix.os == 'macos-latest'
run: npm run publish:mac
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
release:
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]

steps:
- name: Check out Git repository
uses: actions/checkout@v4

- name: Install Node.js and npm
uses: actions/setup-node@v4
with:
node-version: '22.x'

- name: Install dependencies
run: npm install --force

- name: Updater
run: git update-index --chmod=+x ./gen-update-xml.sh && sh ./gen-update-xml.sh
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}

- name: 🐧 Release Linux
if: matrix.os == 'ubuntu-latest'
run: npm run publish:linux
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}

- name: 💻 Release Windows
if: matrix.os == 'windows-latest'
run: npm run publish:win
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}

- name: 🍎 Release Mac Intel
if: matrix.os == 'macos-latest'
run: npm run publish:mac-intel
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}

- name: 🍎 Release Mac Apple Silicon
if: matrix.os == 'macos-latest'
run: npm run publish:mac-apple
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,6 @@ Thumbs.db
*.zip
*.tar.gz

7za
7za

/dist-electron/
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2025 LaraBase
Copyright (c) 2025 Larabase

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
146 changes: 0 additions & 146 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,146 +0,0 @@
# Larabase

<div align="center">
<img src="./src/renderer/assets/icons/png/512x512.png" alt="Larabase Logo" width="200" />
</div>

Larabase is a powerful database management tool designed specifically for Laravel developers. It provides a comprehensive environment for managing your MySQL databases, Redis instances, and Laravel application functionality in a single, elegant interface.

## Features

### Database Management

- **Full MySQL Integration**: Connect to and manage MySQL databases with an intuitive interface
- **Database Explorer**: Browse, search, and filter database tables and content
- **Data Manipulation**: View, edit, and delete records directly in the application
- **Table Structure Visualization**: Examine table schemas, indexes, and relationships
- **SQL Editor**: Execute custom SQL queries with syntax highlighting
- **Query Explain Tool**: Analyze and optimize query performance
- **Database Diagram**: Visualize relationships between tables
- **Auto-Detection**: Docker and local MySQL instance detection

### Laravel Integration

- **Project Connection**: Associate Laravel projects with database connections
- **Migration Management**: View, run, and rollback migrations through the UI
- **Command Execution**: Run Laravel Artisan commands with custom flags
- **Model Discovery**: Auto-detect Laravel models associated with database tables
- **Factory Management**: View and use factories to generate test data
- **Project Log Viewer**: Access Laravel logs directly in the application
- **Redis Management**: Connect to and manage Redis instances

### Application Features

- **Dark-themed Interface**: Clean, modern design inspired by TablePlus
- **Tab-based Navigation**: Efficiently work with multiple tables and views simultaneously
- **Resizable Components**: Customize your workspace with adjustable panels
- **Live Updates**: Monitor database changes in real-time
- **State Persistence**: Session state is saved between application reloads
- **Docker Support**: Seamless integration with Laravel Sail and Docker environments

## Requirements

- Node.js 16+
- npm or yarn
- MySQL (local or Docker)
- Laravel project (optional, for enhanced features)

## Installation

Clone the repository and install dependencies:

```bash
git clone https://github.com/yourusername/larabase.git
cd larabase
npm install
```

## Development

Run in development mode:

```bash
npm run dev
```

This will start the Vite development server and launch Electron.

## Building

Build the application:

```bash
npm run build
```

## Troubleshooting

### macOS Malware Alert

Some macOS users might encounter the following warning when using Docker or OrbStack features:

```
Malware Blocked
"Docker" was not opened because it contains malware. This action did not harm your Mac.
```

This is triggered by macOS Gatekeeper security system, which sometimes incorrectly flags Docker/OrbStack as suspicious. Here's how to resolve it:

#### Option 1: Allow via Security Settings

1. When the alert appears, go to System Preferences > Security & Privacy > General tab
2. Look for a message about Docker/OrbStack being blocked
3. Click "Allow Anyway" or "Open Anyway"

#### Option 2: Reinstall from Official Source

1. Download Docker Desktop from the [official website](https://www.docker.com/products/docker-desktop/)
2. Download OrbStack from the [official website](https://orbstack.dev/)
3. Uninstall your current version before installing the new one

#### Option 3: Remove Quarantine Flag (Advanced)

Run this command in Terminal:

```bash
xattr -d com.apple.quarantine /Applications/Docker.app
# Or for OrbStack
xattr -d com.apple.quarantine /Applications/OrbStack.app
```

#### Option 4: Update to Latest Version

The latest versions of Docker Desktop and OrbStack are properly signed and generally avoid these issues.

## Project Structure

- `src/main`: Electron code (main process)
- `modules`: Core functionality modules
- `handlers`: IPC communication handlers
- `src/renderer`: Vue.js code (renderer process)
- `views`: Application pages
- `components`: Reusable components
- `store`: Pinia stores
- `assets`: Static resources

## Key Components

- **Database View**: Main interface for database management
- **SQL Editor**: Powerful query execution environment
- **Migration UI**: Interface for Laravel migration management
- **Laravel Commands**: Tool for executing Artisan commands
- **Redis Manager**: Interface for Redis operations
- **Project Logs**: Viewer for Laravel application logs
- **Database Diagram**: Visual representation of database relationships

## Unique Features

- **Laravel-Centric Design**: Built specifically for Laravel developers
- **Project Integration**: Seamlessly connects to your Laravel project
- **Command-Line Interface**: Run and manage Artisan commands without leaving the app
- **Real-time Updates**: Monitor database activity as it happens
- **Comprehensive Environment**: Single tool for database, Redis, and project management

## License

MIT
53 changes: 0 additions & 53 deletions build.cjs

This file was deleted.

4 changes: 4 additions & 0 deletions dev-app-update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
provider: github
owner: Tiagospem
repo: larabase
updaterCacheDirName: larabase-updater
7 changes: 7 additions & 0 deletions electron/electron-env.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
declare namespace NodeJS {
interface ProcessEnv {
VSCODE_DEBUG?: 'true';
APP_ROOT: string;
VITE_PUBLIC: string;
}
}
Loading