README.md 1,18 ko
Newer Older
Imran Tierce's avatar
Imran Tierce a validé
## Images

- `itytophile/hash-slave` The slave which cracks the hashes.
- `itytophile/hash-server` The server which shares equally the ranges to each slave to crack a hash. It offers an UI at http://localhost:3000
- `itytophile/monitor` The monitor which observes the server's request queue. It asks docker to scale the slave service replicas.

Imran Tierce's avatar
Imran Tierce a validé
## Run the server

```sh
cargo run
# or cargo run -- --help
```

`--release` is good but not necessary.

## Run the slave

```sh
cargo run --release --bin slave
# or cargo run --release --bin slave -- --help
```

We add the `--release` to make the slave fast.

Imran Tierce's avatar
Imran Tierce a validé
## Build the docker images

Before building:

```sh
cargo vendor
```
itytophile's avatar
itytophile a validé

Imran Tierce's avatar
Imran Tierce a validé
Then:

```sh
Imran Tierce's avatar
Imran Tierce a validé
docker build -f docker/Dockerfile.slave -t itytophile/hash-slave .
Imran Tierce's avatar
Imran Tierce a validé
```

```sh
Imran Tierce's avatar
Imran Tierce a validé
docker build -f docker/Dockerfile.server -t itytophile/hash-server .
Imran Tierce's avatar
Imran Tierce a validé
```

## Why other Dockerfiles for CI?

Because using cargo vendor within a runner is not easy. The CI has to update crates.io index for each build.

itytophile's avatar
itytophile a validé
## Monitoring

Imran Tierce's avatar
Imran Tierce a validé
Initialize the swarm:

```
docker swarm init
```

itytophile's avatar
itytophile a validé
After creating the swarm:
itytophile's avatar
itytophile a validé

```sh
itytophile's avatar
itytophile a validé
docker stack deploy --compose-file docker-compose.yml stackhash
itytophile's avatar
itytophile a validé
```
itytophile's avatar
itytophile a validé

To delete the stack:

```sh
docker stack rm stackhash
```