Prerequisites
Node.js
Version 18 or higher required for Electron compatibility
npm
Version 9+ (comes with Node.js)
Git
For version control and contributions
Docker
Optional, for running test databases
Installation
Install Dependencies
- Install all Node.js dependencies
- Run
postinstallto set up Electron app dependencies - Configure Husky Git hooks
Development Commands
Core Commands
Platform-Specific Builds
Type Checking
Testing
Docker Development Databases
Docker Compose provides test databases with seed data for all 9 supported database systems.Starting Databases
Database Ports
| Database | Port | Username | Password | Database |
|---|---|---|---|---|
| PostgreSQL | 54320 | zequel | zequel | zequel |
| MySQL | 33061 | zequel | zequel | zequel |
| MariaDB | 33070 | zequel | zequel | zequel |
| MongoDB | 27018 | zequel | zequel | zequel |
| Redis | 63790 | - | zequel | - |
| SQL Server | 14330 | sa | Zequel123! | master |
| ClickHouse | 18123 / 19000 | default | - | zequel |
SQLite and DuckDB don’t require Docker. They use bundled native libraries.
Seed Data
Each database container includes comprehensive seed data:- Tables with various data types
- Views (regular and materialized)
- Stored procedures and functions
- Triggers
- Indexes and foreign keys
- Sequences (PostgreSQL)
- Extensions (PostgreSQL)
- Events (MySQL/MariaDB)
- Users and roles
src/tests/integration/ verify this seed data.
SQLite Special Case
SQLite uses a pre-built database file atdocker/sqlite/zequel.db. If you modify docker/sqlite/init.sql, regenerate it:
Documentation
Zequel’s documentation (this site) is built with VitePress:IDE Setup
VS Code (Recommended)
Recommended Extensions:- Volar - Vue 3 language support
- TypeScript Vue Plugin - TypeScript in
.vuefiles - Tailwind CSS IntelliSense - Class autocomplete
- ESLint (optional) - Linting support
.vscode/settings.json):
WebStorm
- Enable Vue.js plugin
- Enable TypeScript language service
- Configure Tailwind CSS support
- Set Node interpreter to project’s Node version
Troubleshooting
Build Errors
Native module build failures
Native module build failures
Some dependencies (better-sqlite3, @duckdb/node-api, keytar) require native compilation.Solution: Ensure you have build tools installed:
- macOS: Xcode Command Line Tools (
xcode-select --install) - Windows: Visual Studio Build Tools
- Linux:
build-essentialpackage
Type checking fails
Type checking fails
If
npm run typecheck fails after pulling changes:Docker containers won't start
Docker containers won't start
Check if ports are already in use:Stop conflicting services or change ports in
docker-compose.yml.E2E tests fail
E2E tests fail
E2E tests require a production build first:
Common Issues
App won’t start in dev mode:- Check that port 5173 (Vite dev server) isn’t in use
- Clear Electron cache:
rm -rf ~/.config/Electron
- Ensure you’re using
npm run dev, notnpm run build - Check console for Vite HMR errors
- Husky may not be installed. Run:
Next Steps
Project Structure
Explore the codebase organization
Architecture
Learn Electron process architecture
Testing
Write and run tests
Database Adapters
Add support for new databases