Skip to content

Commit dc67b97

Browse files
authored
feat: Web UI documentation and final tweaks for 0.1.4 (#39)
* docs: preparing README for next release * feat: added web only Dockerfile * feat: updated UI with bug fixes * chore: updated oxide-ui build * docs: updated screenshot * docs: added video to README * chore: preparing 0.1.4
1 parent 6830cf7 commit dc67b97

File tree

7 files changed

+191
-145
lines changed

7 files changed

+191
-145
lines changed

Cargo.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
description = "A database compatible with MongoDB Wire Protocol that uses PostgreSQL for backend storage."
33
edition = "2021"
44
name = "oxide"
5-
version = "0.1.3"
5+
version = "0.1.4"
66

77
[dependencies]
88
autoincrement = {version = "1", features = ["derive", "async"]}

Dockerfile.web

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
ARG DATABASE_URL
2+
3+
FROM rust:1.62 AS builder
4+
COPY . .
5+
RUN cargo build --release
6+
7+
FROM debian:buster-slim
8+
COPY --from=builder ./target/release/oxide ./target/release/oxide
9+
10+
EXPOSE 8087
11+
CMD ["/target/release/oxide", "web", "--listen-addr", "0.0.0.0"]

README.md

+43-8
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ document store, without any sharding features
1313
On the other hand, if your use-case leverages MongoDB as a distributed database, then unfortunately this project might
1414
not be for you. At least right now supporting multi-sharding and scale-out deployments is not part of the roadmap.
1515

16+
![Web UI](docs/assets/screenshot.png)
17+
1618
## Current status
1719

1820
The project was heavily inspired by [FerretDB](https://ferretdb.io) and is on its early days. The main difference is that
@@ -26,23 +28,20 @@ You can check it out here: [mongodb-language-model-rust](https://github.com/fcou
2628
At this moment, it's being developed as a personal project, but contributors are highly welcomed. If that something you'd
2729
be interested on, be more than welcome to contact me.
2830

31+
## Online demo
32+
33+
There's an online demo of the Web Interface live at https://demo.oxidedb.com/.
34+
2935
## Quickstart
3036

3137
Download the [latest binary](https://github.com/fcoury/oxide/releases/latest) and run it. You will need to point it to a running PostgreSQL for Oxide to use as its backend.
3238

3339
```
34-
> $ ./oxide
35-
[2022-07-13T02:56:15Z ERROR oxide] No PostgreSQL URL specified.
36-
Use --postgres-url <url> or env var DATABASE_URL to set the connection URL and try again.
37-
For more information use --help.
38-
3940
> $ ./oxide --postgres-url "postgres://postgres:postgres@localhost:5432/test"
40-
[2022-07-13T02:57:46Z INFO oxide::server] Connecting to PostgreSQL database...
41+
[2022-07-13T02:57:46Z INFO oxide::server] Connecting to postgres://*****:*****@localhost:5432/test...
4142
[2022-07-13T02:57:46Z INFO oxide::server] OxideDB listening on 127.0.0.1:27017...
4243
```
4344

44-
You can also set the `DATABASE_URL` environment variable or even use a `.env` file.
45-
4645
And with the database configuration set, you can use any [MongoDB](https://www.mongodb.com) client to connect to OxideDB, like [mongosh](https://www.mongodb.com/docs/mongodb-shell/):
4746

4847
```
@@ -74,6 +73,26 @@ test> db.col.find({ "name": "Fernanda" })
7473
[ { _id: ObjectId("62ce3536d10f489bc82520c6"), name: 'Fernanda' } ]
7574
```
7675

76+
## Quick intro
77+
78+
[![Intro to OxideDB](docs/assets/video.png)](https://youtu.be/kAtjBVmB1GA)
79+
80+
## Web interface
81+
82+
If you want to perform quick queries on your database, you can use the built in web interface, just start oxide with the `--web` flag:
83+
84+
```
85+
> $ ./oxide --postgres-url postgres://postgres:postgres@localhost:5432/oxide
86+
[2022-07-29T00:20:11Z INFO oxide::server] Connecting to postgres://*****:*****@localhost:5432/oxide...
87+
[2022-07-29T00:20:11Z INFO oxide::server] OxideDB listening on 0.0.0.0:27017...
88+
```
89+
90+
Now just navigate to http://localhost:5432 and you'll be able to perform quick queries.
91+
92+
## Running options
93+
94+
You can also set the `DATABASE_URL` environment variable or even use a `.env` file.
95+
7796
By default oxide will bind to 127.0.0.1 and port 27017. You can change those settings using the following parameters:
7897

7998
```
@@ -93,6 +112,15 @@ OPTIONS:
93112
-V, --version Print version information
94113
```
95114

115+
### Running with Docker
116+
117+
Assuming you're running a local PostgreSQL instance, you can run OxideDB with Docker with the command below.
118+
119+
```
120+
docker build -t oxide .
121+
docker run -d -p 27017:27017 -p 8087:8087 -e DATABASE_URL=postgres://postgres:[email protected]:5432/test --name oxide oxide
122+
```
123+
96124
### Running from source
97125

98126
```shell
@@ -101,3 +129,10 @@ cd oxide
101129
export DATABASE_URL="postgres://postgres:postgres@localhost:5432/test"
102130
make start
103131
```
132+
133+
## Web interface
134+
135+
![Screenshot](docs/assets/screenshot.png)
136+
137+
If you want to perform quick queries on your database, you can use the built in web interface.
138+

docs/assets/screenshot.png

260 KB
Loading

docs/assets/video.png

2.32 MB
Loading

public/index.js

+135-135
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)