From 636a16bcfc0814f33a21b2a93d75e8d7289e15a5 Mon Sep 17 00:00:00 2001 From: Raj Chaudhuri Date: Fri, 26 Jul 2024 07:35:01 +0530 Subject: [PATCH] Updated README with current status and badges --- README.md | 57 +++++++++++++------------------------------------------ 1 file changed, 13 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 5ce68bb..8ab6237 100644 --- a/README.md +++ b/README.md @@ -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. > @@ -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 @@ -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: @@ -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. @@ -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:~~ @@ -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). @@ -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