{"id":19520345,"url":"https://github.com/henryhale/db-admin","last_synced_at":"2025-08-15T18:39:38.348Z","repository":{"id":214557414,"uuid":"736808363","full_name":"henryhale/db-admin","owner":"henryhale","description":"❇️ Interact with your databases directly in the web browser","archived":false,"fork":false,"pushed_at":"2024-06-06T06:42:57.000Z","size":101,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-26T00:26:34.422Z","etag":null,"topics":["database","db","db-client","henryhale","mysql2","sql","sqlite3","web"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/henryhale.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-29T00:00:42.000Z","updated_at":"2024-11-12T20:58:22.000Z","dependencies_parsed_at":"2023-12-29T01:23:34.475Z","dependency_job_id":"9f56f54b-4a1d-4b88-8dc9-bb1d8c989ee5","html_url":"https://github.com/henryhale/db-admin","commit_stats":null,"previous_names":["henryhale/db-admin"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/henryhale/db-admin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2Fdb-admin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2Fdb-admin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2Fdb-admin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2Fdb-admin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/henryhale","download_url":"https://codeload.github.com/henryhale/db-admin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henryhale%2Fdb-admin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270614541,"owners_count":24616727,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","db","db-client","henryhale","mysql2","sql","sqlite3","web"],"created_at":"2024-11-11T00:25:03.453Z","updated_at":"2025-08-15T18:39:38.325Z","avatar_url":"https://github.com/henryhale.png","language":"JavaScript","readme":"\u003cdiv align=center\u003e\n\n![](./client/public/favicon.png)\n\n# DB-Admin\n\n_interact with your databases directly in the web browser_\n\n![](media/screenshot.png)\n\n\u003c/div\u003e\n\n## Overview\n\nDB-Admin is an experimental project that allows users to interact with databases directly in their web browsers. It provides an intuitive and user-friendly command-line interface for querying, and managing databases without the need for external database clients. It takes SQL queries as input, posts it to the server and displays the result of the executed query.\n\n## Key Features\n\n- [x] **Browser-Based Database Access**\n\n  Access and interact with databases directly from your web browser, eliminating the need for external database management tools.\n\n- [x] **Supported Databases**\n\n  Initially supports SQLite and MySQL, with plans to expand support for other databases like PostgreSQL in future releases.\n\n- [ ] **Security Features** - _work in progress_\n  \n  Employ security measures to prevent SQL injection and ensure secure interactions with the database.\n\n\n## Disclaimer\n\nDB-Admin is an experimental project and may not be suitable for production use. Use it at your own risk, and always back up your data before performing critical operations.\n\n## Getting Started\n\nBefore you get started, be sure that you have one of the supported database already installed otherwise install one.\n\n**Supported Databases**:\n\n- MySQL\n- SQLite3\n\n**Preresquities**:\n\n- [NodeJS](https://nodejs.org) and [npm](https://npmjs.org)\n\nFollow the steps below to setup a demo on your machine\n\n1. Clone this repository and navigate to it\n\n   ```sh\n   git clone https://github.com/henryhale/db-admin.git\n   cd db-admin\n   ```\n\n2. Install all necessary dependencies\n\n   ```sh\n   npm install\n   # pnpm install\n   ```\n\n3. Choose a database (MySQL or SQLite3)\n\n   In case of MySQL, make sure that you have installed it already on your machine.\n\n   In case of SQLite3, the npm package, `sqlite3` sets up the database locally, on your machine.\n\n   Additionally dependencies are required for setting up the connection to the choosen database.\n\n   For MySQL, install `mysql2` libray\n\n   ```sh\n   npm install mysql2\n   # pnpm add mysql2\n   ```\n\n   For SQLite3, install `sqlite3` library\n\n   ```sh\n   npm install sqlite3\n   # pnpm add sqlite3\n   ```\n\n4. Create `.env` file at the root of the project\n\n   Grab the environment variables from the `.env.sample` file basing on your database choice and create your `.env` file with those contents uncommented. Fill them up as per your database server.\n\n   For example:\n\n   MySQL: `.env` file contents\n\n   ```\n   DB_TYPE=mysql\n   DB_HOST=localhost\n   DB_PORT=\n   DB_USER=root\n   DB_PASSWORD=\n   DB_DATABASE=test\n   ```\n\n   SQLite3: `.env` file contents\n\n   ```\n   DB_TYPE=sqlite3\n   DB_DATABASE=test.db\n   ```\n\n   Note: Use `DB_DATABASE=\":memory:\"` for an in-memory sql database with SQLite3 - _good for testing or educational purposes_\n\n5. Start the development server\n\n   This command watches files for changes and restarts the server\n\n   ```sh\n   npm run dev\n   # pnpm dev\n   ```\n\n   TO simply run the server once (no overhead) use\n\n   ```sh\n   npm run serve\n   # pnpm serve\n   ```\n\n6. Open your browser and navigate to `http://localhost:8000` to access DB-Admin web client\n7. Test with some SQL queries\n\n   Type `.help` to get help details\n\n   At this point, you can execute SQL queries directly in your browser.\n\n   For example:\n\n   - Create a table\n\n   ```sh\n   sql\u003e CREATE TABLE notes (id INTEGER PRIMARY KEY, txt TEXT NOT NULL, ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);\n   ```\n\n   - Insert data\n\n   ```sh\n   sql\u003e INSERT INTO notes (txt) VALUES ('hello world')\n   ```\n\n   In case of parameterized queries:\n\n   ```sh\n   sql\u003e INSERT INTO notes (txt) VALUES (?)\n   params\u003e hello world\n   ```\n\n   - Retrieve data\n\n   ```sql\n   sql\u003e SELECT * FROM notes\n   ```\n\n## Development\n\n### File structure\n\n- `client`: folder containing frontend code ([vue 3](https://v3.vuejs.org) + [vite](https://vitejs.dev))\n- `server`: folder containing server-side code (expressjs + database)\n- `.env.sample`: an example .env file\n\n### Vue 3 + Vite\n\nThe frontend uses Vue 3 `\u003cscript setup\u003e` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.\n\n### Recommended IDE Setup\n\n- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).\n\n## Contributing\n\nContributions are welcome! If you have suggestions or improvements, feel free to open an issue or create a pull request.\n\n## Credits\n- XTerminal: [Docs](https://xterminal.js.org)\n- Inken: [Repo](https://github.com/henryhale/inken)\n- Tailwind CSS: [Docs](https://tailwindcss.com)\n- Vue 3: [Docs](https://v3.vuejs.org)\n- Vite: [Docs](https://vitejs.dev)\n- Expressjs: [Docs](http://expressjs.com/)\n- Helmet: [Docs](https://helmetjs.github.io/)\n- dotenv: [Repo](https://github.com/motdotla/dotenv)\n- mysql2: [Repo](https://github.com/sidorares/node-mysql2/)\n- sqlite3: [Repo](https://github.com/TryGhost/node-sqlite3)\n\n## License\n\nReleased under [MIT License](./LICENSE.txt)\n\nCopyright \u0026copy; 2023 [Henry Hale](https://github.com/henryhale)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenryhale%2Fdb-admin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhenryhale%2Fdb-admin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenryhale%2Fdb-admin/lists"}