{"id":28816682,"url":"https://github.com/emmanuelrosa/quickdb","last_synced_at":"2026-05-07T17:39:36.893Z","repository":{"id":299845001,"uuid":"1004337856","full_name":"emmanuelrosa/quickdb","owner":"emmanuelrosa","description":"Run rootless and portable way to run databases for development and demos.","archived":false,"fork":false,"pushed_at":"2026-03-29T19:42:54.000Z","size":17,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-29T21:29:58.802Z","etag":null,"topics":["couchdb","mariadb","nix","nix-flake","postgresql"],"latest_commit_sha":null,"homepage":"","language":"Nix","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/emmanuelrosa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-18T13:23:00.000Z","updated_at":"2026-03-29T19:42:57.000Z","dependencies_parsed_at":"2025-06-18T16:38:45.818Z","dependency_job_id":null,"html_url":"https://github.com/emmanuelrosa/quickdb","commit_stats":null,"previous_names":["emmanuelrosa/quickdb"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/emmanuelrosa/quickdb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmanuelrosa%2Fquickdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmanuelrosa%2Fquickdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmanuelrosa%2Fquickdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmanuelrosa%2Fquickdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emmanuelrosa","download_url":"https://codeload.github.com/emmanuelrosa/quickdb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emmanuelrosa%2Fquickdb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32749484,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["couchdb","mariadb","nix","nix-flake","postgresql"],"created_at":"2025-06-18T17:06:27.695Z","updated_at":"2026-05-07T17:39:36.887Z","avatar_url":"https://github.com/emmanuelrosa.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"# quickdb\n\n`quickdb` is a suite of [Nix](https://nixos.org) packages to easily start development instances of PostgreSQL, MariaDB, CouchDB, or neo4j (Community Edition) on GNU Linux. \n\n## Features\n\n- __No root needed__ - You need the [Nix](https://nixos.org) package manager to use `quickdb`, but if you don't already have it you can use the portable version [Nix portable](https://github.com/DavHau/nix-portable).\n- __No additional dependencies__ - You don't need anything other than the [Nix](https://nixos.org) package manager.\n- __Configured for development__ - The database is automatically configured to only listen on localhost, and (except for couchdb and neo4j) you can just log right in without credentials.\n- __Multi-instance__ - You can easily set up multiple instances of a given database; Just run the script with different directory paths and then edit the config files to use different ports.\n- __Runs like a normal process__ - Stdout goes to the console, and a simple CTRL-C stops the database. No weird daemons to deal with.\n- __Multiple database major versions available__ - Using Nixpkgs snapshots as needed, this repo provides easy access to PostgreSQL 17, 18..., MariaDB 11.4, 11.8...\n\n## Demo\n\n[![asciicast](https://asciinema.org/a/tfH8n3ALPkGMPE5avwIqVqGfG.svg)](https://asciinema.org/a/tfH8n3ALPkGMPE5avwIqVqGfG)\n\nNote: In the demo I used localhost when connecting with `psql`. It's also possible to use a socket directory, which is the `run` directory within the database directory. ex` psql -h $PWD/testdb/run DBNAME`. However, `psql` doesn't seem to like relative paths, hence the `$PWD`.\n\n## Use cases\n\n- __Development__ - I developed `quickdb` in order to quickly and easily set up a database when I need it without having to have the database running 24/7. You can start a database the moment you need it, and shut it down the moment you're done. No root. No `sudo`.\n- __Staging/testing__ - When your done with the database, just delete the directory.\n- __Database migration tests__ - Want to see what happens when upgrading PostgreSQL from 17 to 18? Just make a copy your database directory, and run it with the new version. No sudo needed.\n\n## Packages\n\nTo get a list of the available packages, run `nix flake show github:emmanuelrosa/quickdb`\n\n## Usage\n\nEach package has three modes of operation:\n\n1. __Initialization__ - When executed with a path to a non-existent directory, the directory is created and the database system is initialized within the directory. After initialization, the database system can be configured by editing one or more configuration files.\n2. __Execution__ - When executed with a path to an existing directory, it is assumed a database has been initialized within the directory, so the database is started in the foreground. This means standard output is printed to the screen, and a simple CTRL-C is all that's needed to stop the database.\n3. __Shell__ - When executed without any arguments, a BASH shell is started with the database client tools in the PATH.\n\n## Examples\n\n### PostgreSQL\n\n1. To create a PostgreSQL database, execute: `nix run github:emmanuelrosa/quickdb#quickdb-postgresql-17 -- ~/my-postgresql`\n2. To configure the database, edit the `*.conf` files in `~/my-postgresql`. \n3. To run the database, execute the same command: `nix run github:emmanuelrosa/quickdb#quickdb-postgresql-17 -- ~/my-postgresql`\n4. To access the postgresql client tools, using another terminal execute `nix run github:emmanuelrosa/quickdb#quickdb-postgresql-17`\n5. To stop postgresql, press CTRL-C.\n\n### MariaDB\n\n1. To create a MariaDB database, execute: `nix run github:emmanuelrosa/quickdb#quickdb-mariadb-114 -- ~/my-mariadb`\n2. To configure the database, edit `~/my-mariadb/etc/my.cnf`. \n3. To run the database, execute the same command: `nix run github:emmanuelrosa/quickdb#quickdb-mariadb-114 -- ~/my-mariadb`\n4. To access the mariadb client tools, using another terminal execute `nix run github:emmanuelrosa/quickdb#quickdb-mariadb-114`. Before using the mariadb client, set the envirionment variable `MYSQL_UNIX_PORT` to the path to the socket file; ex. `export MYSQL_UNIX_PORT=~/my-mariadb/run/mariadb.sock`\n5. To stop mariadb, press CTRL-C.\n\n### CouchDB\n\n1. To create a CouchDB database, execute: `nix run github:emmanuelrosa/quickdb#quickdb-couchdb-3 -- ~/my-couchdb`\n2. To configure the database, edit `~/my-couchdb/etc/local.ini` and `~/my-couchdb/etc/epmd.env`. The default user name is _admin_ and the password is _password_. \n3. To run the database, execute the same command: `nix run github:emmanuelrosa/quickdb#quickdb-couchdb-3 -- ~/my-couchdb`\n4. To use `curl` and `jq` with couchdb, from another terminal execute `nix run github:emmanuelrosa/quickdb#quickdb-couchdb-3`\n5. To stop couchdb, press CTRL-C.\n\n### Neo4J\n\n1. To create a neo4j database, execute: `nix run github:emmanuelrosa/quickdb#quickdb-neo4j-2026 -- ~/my-neo4j`\n2. To configure the database, edit `~/my-neo4j/neo4j.conf`. The default username and password is 'neo4j'.\n3. To run the database, execute the same command: `nix run github:emmanuelrosa/quickdb#quickdb-neo4j-2026 -- ~/my-neo4j`\n4. To stop neo4j, press CTRL-C.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmanuelrosa%2Fquickdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femmanuelrosa%2Fquickdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femmanuelrosa%2Fquickdb/lists"}