Skip to content

Commit

Permalink
Update docker files & add single node chart
Browse files Browse the repository at this point in the history
  • Loading branch information
Clivern committed Feb 10, 2019
1 parent aa6c232 commit 102d2c3
Show file tree
Hide file tree
Showing 10 changed files with 97 additions and 13 deletions.
31 changes: 26 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,35 @@
FROM golang:1.11.1
FROM golang:1.11.1 as builder

ENV GO111MODULE=on

RUN mkdir -p /go/src/github.com/clivern/beaver/
ARG BEAVER_VERSION=1.1.2

ADD . /go/src/github.com/clivern/beaver/
RUN mkdir -p $GOPATH/src/github.com/clivern

WORKDIR /go/src/github.com/clivern/beaver
RUN git clone -b master https://github.com/Clivern/Beaver.git $GOPATH/src/github.com/clivern/beaver

RUN go build -o beaver beaver.go
WORKDIR $GOPATH/src/github.com/clivern/beaver

RUN git checkout tags/$BEAVER_VERSION

RUN go mod download

# Build the binary
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o /go/bin/beaver .

RUN mkdir -p /go/logs/beaver
RUN mkdir -p /go/configs/beaver

# Build a small image
FROM alpine:3.8
RUN apk --no-cache add ca-certificates

# Copy our static executable
COPY --from=builder /go/bin/beaver /go/bin/beaver
COPY --from=builder /go/logs/beaver /go/logs/beaver
COPY --from=builder /go/configs/beaver /go/configs/beaver

WORKDIR /go/bin/

EXPOSE 8080

Expand Down
59 changes: 57 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@

Beaver is a real-time messaging server. With beaver you can easily build scalable in-app notifications, realtime graphs, multiplayer games, chat applications, geotracking and more in web applications and mobile apps.

<p align="center">
<img alt="Beaver Single Node" src="https://raw.githubusercontent.com/Clivern/Beaver/master/assets/charts/single_node.png" />
</p>

## Documentation

### Config & Run The Application
Expand Down Expand Up @@ -63,7 +67,24 @@ $ ./beaver -config=config.dist.yml
Also running beaver with docker still an option.

```bash
$ cp config.yml config.dist.yml
$ mkdir -p $HOME/srv/beaver
$ mkdir -p $HOME/srv/beaver/configs
$ mkdir -p $HOME/srv/beaver/logs

$ cd $HOME/srv/beaver

$ curl -OL https://raw.githubusercontent.com/Clivern/Beaver/master/Dockerfile
$ curl -OL https://raw.githubusercontent.com/Clivern/Beaver/master/docker-compose.yml
$ curl -OL https://raw.githubusercontent.com/Clivern/Beaver/master/config.yml

$ cp config.yml ./configs/config.dist.yml
$ rm config.yml
# Update log.path to be the absolute path to config file on host machine ($HOME/srv/beaver/logs)
$ sed -i "s|var/logs|${HOME}/srv/beaver/logs|g" ./configs/config.dist.yml
$ sed -i "s|localhost:6379|redis:6379|g" ./configs/config.dist.yml

# Build and run containers
$ cd $HOME/srv/beaver/
$ docker-compose build
$ docker-compose up -d
```
Expand Down Expand Up @@ -312,12 +333,46 @@ Socket("ws://localhost:8080/ws/$ID/$TOKEN");

[![Build Status](https://travis-ci.org/Clivern/Beaver.svg?branch=master)](https://travis-ci.org/Clivern/Beaver)
[![GitHub license](https://img.shields.io/github/license/Clivern/Beaver.svg)](https://github.com/Clivern/Beaver/blob/master/LICENSE)
[![Version](https://img.shields.io/badge/Version-1.1.1-red.svg)](https://github.com/Clivern/Beaver/releases)
[![Version](https://img.shields.io/badge/Version-1.1.2-red.svg)](https://github.com/Clivern/Beaver/releases)
[![Go Report Card](https://goreportcard.com/badge/github.com/Clivern/Beaver)](https://goreportcard.com/report/github.com/Clivern/Beaver)

## For contributors

To run beaver locally for development or even testing, please follow the following:

```bash
# Use src/github.com/clivern/beaver
$ mkdir -p $GOPATH/src/github.com/clivern/beaver
$ git clone https://github.com/Clivern/Beaver.git $GOPATH/src/github.com/clivern/beaver
$ cd $GOPATH/src/github.com/clivern/beaver

# Create a feature branch
$ git branch feature/x
$ git checkout feature/x

$ export GO111MODULE=on
$ cp config.yml config.dist.yml
$ cp config.yml config.test.yml

# Add redis to config.test.yml and config.dist.yml

# to run beaver
$ go run beaver.go
$ go build beaver.go

# To run test cases
$ make ci
```

Then Create a PR with the master branch.

## Changelog

* Version 1.1.2:
```
Update Docs.
```

* Version 1.1.1:
```
Fix Dockerfile.
Expand Down
1 change: 1 addition & 0 deletions assets/charts/credits.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
These charts built using this tool https://www.draw.io/
Binary file added assets/charts/mixed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/charts/mixed.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<mxfile modified="2019-01-18T10:53:02.527Z" host="www.draw.io" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36" etag="vOh7c6oCOKuVLBgnAR3a" version="10.1.1" type="device"><diagram id="0d7cefc2-ccd6-e077-73ed-a8e48b0cddf6" name="Page-1">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</diagram></mxfile>
Binary file added assets/charts/multiple_nodes.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/charts/multiple_nodes.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<mxfile modified="2019-01-18T10:45:07.937Z" host="www.draw.io" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36" etag="Aoq8L6ZA0eaGgJ5KcNmr" version="10.1.1" type="device"><diagram id="0d7cefc2-ccd6-e077-73ed-a8e48b0cddf6" name="Page-1">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</diagram></mxfile>
Binary file added assets/charts/single_node.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 102d2c3

Please sign in to comment.