Skip to content

Commit

Permalink
Updated README with current status and badges
Browse files Browse the repository at this point in the history
  • Loading branch information
rajch committed Jul 26, 2024
1 parent c439172 commit 636a16b
Showing 1 changed file with 13 additions and 44 deletions.
57 changes: 13 additions & 44 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# voxel-dockerclient
An experimental Minecraft-like docker client, built using [voxel.js](http://voxeljs.com/). Inspired by [dockercraft](https://github.com/docker/dockercraft).

[![Docker Pulls](https://img.shields.io/docker/pulls/rajchaudhuri/voxel-dockerclient "Number of times the voxel-dockerclient image was pulled from the Docker Hub")](https://hub.docker.com/r/rajchaudhuri/voxel-dockerclient)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/rajch/voxel-dockerclient?include_prereleases)](https://github.com/rajch/voxel-dockerclient/releases)

> [!IMPORTANT]
> This software is dependent, indirectly, on a version of [three.js](https://threejs.org/) that has known vulnerabilities. For a number of reasons, this dependency **cannot** currently be updated. So, this software is now in maintenance mode.
>
Expand All @@ -23,7 +26,7 @@ The easiest way:

[![Try in PWD](https://raw.githubusercontent.com/play-with-docker/stacks/master/assets/images/button.png)](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/rajch/voxel-dockerclient/master/stack.yml)

### Using the docker image
### Use the published docker image
The next easiest way is to pull the docker image, and run from that. The steps are as follows:

1. Pull the docker image with
Expand All @@ -43,45 +46,10 @@ The next easiest way is to pull the docker image, and run from that. The steps a
> The container needs this to proxy a subset of the Docker remote API to voxel-dockerclient.
> If you leave this out by mistake, voxel-dockerclient will not work.
3. Point your browser to the container. If you run docker directly on your Linux machine, browse to: `http://localhost:8080`.
If you use docker-machine (for example, with the Docker Toolbox on Windows), find the IP address of your docker machine with

```
docker-machine ip default
```
and then browse to that IP address using the port that you mapped in step 2. E.g.: `http://192.17.22.1:8080`

### Building with node.js and golang
Alternatively, if you have node.js (>=v12.19.0) and golang (>=go1.16.4) installed on your docker host, you can clone the github repository, and build and run voxel-dockerclient yourself. The steps are:

1. Clone the github repository into your Go workspace with:

```
git clone https://github.com/rajch/voxel-dockerclient.git
```
2. Change to the cloned directory and run

```
npm install
```
3. Run

```
npm run build
npm run run-docker
```
or, if you are on Linux, or OSX, or WSL:
```
make
make run-docker
```
4. Browse to `http://localhost:8080`
3. Browse to: `http://localhost:8080`.

Your logged-in user needs to be a member of the `docker` group for this to work.

### Building using docker only
Finally, if you have docker 17.05 or above, you can clone the github repository and use the multi-stage-build Dockerfile
that is included. This will pull relevant node and golang images, and perform the build using those. The steps are:
### Build the docker image locally
Finally, you can clone the github repository and use the multi-stage Dockerfile that is included. This will pull relevant node and golang images, and perform the build using those. The steps are:

1. Clone the github repository with:

Expand All @@ -101,7 +69,7 @@ docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 voxel-do
Or, you could use the provided docker compose manifest file, by running:

```
docker-compose up -d
docker compose up -d
```

Your logged-in user needs to be a member of the `docker` group for this to work.
Expand All @@ -117,7 +85,7 @@ I intend to add the following capabilities quickly:
* ~~`docker logs` equivalent~~ ** DONE
* ~~`docker attach` equivalent~~ ** DONE
* `docker pull` equivalent
* A better interface for the `create` command
* ~~A better interface for the `create` command~~ ** DONE
* ~~*Some* security~~ ** DONE

~~In the pipeline, further down, are:~~
Expand All @@ -136,7 +104,7 @@ This project is now in maintenance mode. See the [How does it work](#how-does-it

The voxel-dockerclient server is a tiny golang program, which serves the client HTML/CSS/javascript, and provides a proxy for the docker API. At the moment, it proxies the full API with ~~no~~ some authorization. ~~This will change.~~

On the client, it uses the brilliant [voxeljs](http://voxeljs.com/) family of node modules to render the UI, and the ~~[axios](https://github.com/mzabriskie/axios) node module~~fetch API to communicate with the proxied API.
On the client, it uses the brilliant [voxeljs](http://voxeljs.com/) family of node modules to render the UI, and the ~~[axios](https://github.com/mzabriskie/axios) node module~~ fetch API to communicate with the proxied API.

I have used an older flavour of the main voxeljs module, voxel-engine. I had to fork it because of some incompatibilities with later modules. The original is [here](https://github.com/maxogden/voxel-engine), and my forked version [here](https://github.com/rajch/voxel-engine).
The same treatment had to be given for a voxeljs plugin called voxel-keys. The original is [here](https://github.com/voxel/voxel-keys), and my fork [here](https://github.com/rajch/voxel-keys).
Expand All @@ -150,7 +118,8 @@ The code is open source, under the MIT license. I would love contribution, in th

## Acknowledgements
I would like to thank:

* The fine folk of @docker, for Docker
* The fine folk behind the voxeljs family of modules. @github/maxogden, @github/kumavis, @github/deathcap, @github/substack et al. These are really nice.
* The authors of the dockerode and axios modules, although I'm not using dockerode any more.
* The fine folk behind the voxeljs family of modules: @github/maxogden, @github/kumavis, @github/deathcap, @github/substack et al
* The authors of the dockerode and axios modules, although those modules are no longer used in this project
* My partner, Chitra Raghavan (@github/chitradoc), for contributing the player model, testing, and bearing with me while I was building this

0 comments on commit 636a16b

Please sign in to comment.