Browse Source

feat: dockerize app

pull/7/head
Aldino kemal 4 years ago
parent
commit
faf7c4dc6d
  1. 14
      docker-compose.yml
  2. 23
      docker/golang.Dockerfile
  3. 0
      docs/openapi.yaml
  4. 21
      readme.md
  5. 0
      src/.air.toml
  6. 0
      src/config/settings.go
  7. 0
      src/controllers/app_controller.go
  8. 0
      src/controllers/send_controller.go
  9. 0
      src/controllers/user_controller.go
  10. 0
      src/go.mod
  11. 0
      src/go.sum
  12. 0
      src/main.go
  13. 0
      src/middleware/recovery.go
  14. 0
      src/services/app_service.go
  15. 0
      src/services/app_service_impl.go
  16. 0
      src/services/send_service.go
  17. 0
      src/services/send_service_impl.go
  18. 0
      src/services/user_service.go
  19. 0
      src/services/user_service_impl.go
  20. 0
      src/statics/images/qrcode/.gitignore
  21. 0
      src/statics/images/senditems/.gitignore
  22. 0
      src/structs/auth_struct.go
  23. 0
      src/structs/send_struct.go
  24. 0
      src/utils/errors.go
  25. 0
      src/utils/response.go
  26. 0
      src/utils/whatsapp.go
  27. 0
      src/validations/send_validation.go
  28. 0
      src/validations/send_validation_test.go
  29. 0
      src/validations/user_validation.go
  30. 0
      src/views/index.html

14
docker-compose.yml

@ -0,0 +1,14 @@
version: '3.2'
services:
whatsapp_go:
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10"
build:
context: .
dockerfile: ./docker/golang.Dockerfile
restart: 'always'
ports:
- "3000:3000"

23
docker/golang.Dockerfile

@ -0,0 +1,23 @@
############################
# STEP 1 build executable binary
############################
FROM golang:alpine AS builder
RUN apk update && apk add --no-cache vips-dev gcc musl-dev gcompat
WORKDIR /whatsapp
COPY ./src .
# Fetch dependencies.
RUN go mod download
# Build the binary.
RUN go build -o app
#############################
## STEP 2 build a smaller image
#############################
FROM alpine
RUN apk update && apk add --no-cache vips-dev
WORKDIR /whatsapp
# Copy compiled from builder.
COPY --from=builder /whatsapp .
# Run the binary.
ENTRYPOINT ["./app"]

0
openapi.yaml → docs/openapi.yaml

21
readme.md

@ -1,6 +1,6 @@
## Go Whatsapp API Multi Device Version
### Required
### Required (without docker)
- Mac OS:
- `brew install vips`
@ -14,13 +14,28 @@
### How to use
#### Basic
1. Clone this repo `git clone https://github.com/aldinokemal/go-whatsapp-web-multi-device`
2. run `go run main.go`
3. open `http://localhost:3000`
2. open via cmd/terminal
3. run `cd src`
4. run `go run main.go`
5. open `http://localhost:3000`
#### Docker (you don't need to install in required)
1. Clone this repo `git clone https://github.com/aldinokemal/go-whatsapp-web-multi-device`
2. open via cmd/terminal
3. run `docker-compose up -d --build`
4. open `http://localhost:3000`
## Production Mode (without config)
- `docker run --publish 3000:3000 --restart=always aldinokemal2104/go-whatsapp-web-multidevice`
You can fork or edit this source code !
### Current API
`You can check docs/openapi.yml for detail API`
| Feature | Menu | Method | URL | Payload |
|---------|-------------------------|--------|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

0
.air.toml → src/.air.toml

0
config/settings.go → src/config/settings.go

0
controllers/app_controller.go → src/controllers/app_controller.go

0
controllers/send_controller.go → src/controllers/send_controller.go

0
controllers/user_controller.go → src/controllers/user_controller.go

0
go.mod → src/go.mod

0
go.sum → src/go.sum

0
main.go → src/main.go

0
middleware/recovery.go → src/middleware/recovery.go

0
services/app_service.go → src/services/app_service.go

0
services/app_service_impl.go → src/services/app_service_impl.go

0
services/send_service.go → src/services/send_service.go

0
services/send_service_impl.go → src/services/send_service_impl.go

0
services/user_service.go → src/services/user_service.go

0
services/user_service_impl.go → src/services/user_service_impl.go

0
statics/images/qrcode/.gitignore → src/statics/images/qrcode/.gitignore

0
statics/images/senditems/.gitignore → src/statics/images/senditems/.gitignore

0
structs/auth_struct.go → src/structs/auth_struct.go

0
structs/send_struct.go → src/structs/send_struct.go

0
utils/errors.go → src/utils/errors.go

0
utils/response.go → src/utils/response.go

0
utils/whatsapp.go → src/utils/whatsapp.go

0
validations/send_validation.go → src/validations/send_validation.go

0
validations/send_validation_test.go → src/validations/send_validation_test.go

0
validations/user_validation.go → src/validations/user_validation.go

0
views/index.html → src/views/index.html

Loading…
Cancel
Save