diff --git a/README.md b/README.md index a9e6633f45..b7c745bcb8 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,54 @@ Zenith substitutes PostgreSQL storage layer and redistributes data across a cluster of nodes +## Running local installation + +1. Build zenith and patched postgres +```sh +git clone --recursive https://github.com/libzenith/zenith.git +cd zenith +./pgbuild.sh # builds postgres and installs it to ./tmp_install +cargo build +``` + +2. Start pageserver and postggres on top of it (should be called from repo root): +```sh +# Create ~/.zenith with proper paths to binaries and data +# Later that would be responsibility of a package install script +>./target/debug/zenith init + +# start pageserver +> ./target/debug/zenith start +Starting pageserver at '127.0.0.1:64000' + +# create and configure postgres data dir +> ./target/debug/zenith pg create +Creating new postgres: path=/Users/user/code/zenith/tmp_check_cli/compute/pg1 port=55432 +Database initialized + +# start it +> ./target/debug/zenith pg start pg1 + +# look up status and connection info +> ./target/debug/zenith pg list +NODE ADDRESS STATUS +pg1 127.0.0.1:55432 running +``` + +3. Now it is possible to connect to postgres and run some queries: +``` +> psql -p55432 -h 127.0.0.1 postgres +postgres=# CREATE TABLE t(key int primary key, value text); +CREATE TABLE +postgres=# insert into t values(1,1); +INSERT 0 1 +postgres=# select * from t; + key | value +-----+------- + 1 | 1 +(1 row) +``` + ## Running tests ```sh