diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f0cf6e7 --- /dev/null +++ b/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" \ No newline at end of file diff --git a/docker/golang.Dockerfile b/docker/golang.Dockerfile new file mode 100644 index 0000000..0a7a6f7 --- /dev/null +++ b/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"] \ No newline at end of file diff --git a/openapi.yaml b/docs/openapi.yaml similarity index 100% rename from openapi.yaml rename to docs/openapi.yaml diff --git a/readme.md b/readme.md index e3bdb5d..dda5b6d 100644 --- a/readme.md +++ b/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 | |---------|-------------------------|--------|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/.air.toml b/src/.air.toml similarity index 100% rename from .air.toml rename to src/.air.toml diff --git a/config/settings.go b/src/config/settings.go similarity index 100% rename from config/settings.go rename to src/config/settings.go diff --git a/controllers/app_controller.go b/src/controllers/app_controller.go similarity index 100% rename from controllers/app_controller.go rename to src/controllers/app_controller.go diff --git a/controllers/send_controller.go b/src/controllers/send_controller.go similarity index 100% rename from controllers/send_controller.go rename to src/controllers/send_controller.go diff --git a/controllers/user_controller.go b/src/controllers/user_controller.go similarity index 100% rename from controllers/user_controller.go rename to src/controllers/user_controller.go diff --git a/go.mod b/src/go.mod similarity index 100% rename from go.mod rename to src/go.mod diff --git a/go.sum b/src/go.sum similarity index 100% rename from go.sum rename to src/go.sum diff --git a/main.go b/src/main.go similarity index 100% rename from main.go rename to src/main.go diff --git a/middleware/recovery.go b/src/middleware/recovery.go similarity index 100% rename from middleware/recovery.go rename to src/middleware/recovery.go diff --git a/services/app_service.go b/src/services/app_service.go similarity index 100% rename from services/app_service.go rename to src/services/app_service.go diff --git a/services/app_service_impl.go b/src/services/app_service_impl.go similarity index 100% rename from services/app_service_impl.go rename to src/services/app_service_impl.go diff --git a/services/send_service.go b/src/services/send_service.go similarity index 100% rename from services/send_service.go rename to src/services/send_service.go diff --git a/services/send_service_impl.go b/src/services/send_service_impl.go similarity index 100% rename from services/send_service_impl.go rename to src/services/send_service_impl.go diff --git a/services/user_service.go b/src/services/user_service.go similarity index 100% rename from services/user_service.go rename to src/services/user_service.go diff --git a/services/user_service_impl.go b/src/services/user_service_impl.go similarity index 100% rename from services/user_service_impl.go rename to src/services/user_service_impl.go diff --git a/statics/images/qrcode/.gitignore b/src/statics/images/qrcode/.gitignore similarity index 100% rename from statics/images/qrcode/.gitignore rename to src/statics/images/qrcode/.gitignore diff --git a/statics/images/senditems/.gitignore b/src/statics/images/senditems/.gitignore similarity index 100% rename from statics/images/senditems/.gitignore rename to src/statics/images/senditems/.gitignore diff --git a/structs/auth_struct.go b/src/structs/auth_struct.go similarity index 100% rename from structs/auth_struct.go rename to src/structs/auth_struct.go diff --git a/structs/send_struct.go b/src/structs/send_struct.go similarity index 100% rename from structs/send_struct.go rename to src/structs/send_struct.go diff --git a/utils/errors.go b/src/utils/errors.go similarity index 100% rename from utils/errors.go rename to src/utils/errors.go diff --git a/utils/response.go b/src/utils/response.go similarity index 100% rename from utils/response.go rename to src/utils/response.go diff --git a/utils/whatsapp.go b/src/utils/whatsapp.go similarity index 100% rename from utils/whatsapp.go rename to src/utils/whatsapp.go diff --git a/validations/send_validation.go b/src/validations/send_validation.go similarity index 100% rename from validations/send_validation.go rename to src/validations/send_validation.go diff --git a/validations/send_validation_test.go b/src/validations/send_validation_test.go similarity index 100% rename from validations/send_validation_test.go rename to src/validations/send_validation_test.go diff --git a/validations/user_validation.go b/src/validations/user_validation.go similarity index 100% rename from validations/user_validation.go rename to src/validations/user_validation.go diff --git a/views/index.html b/src/views/index.html similarity index 100% rename from views/index.html rename to src/views/index.html