My Golang First Pet project
.
├── app
│ ├── controllers
│ │ ├── chat.go
│ │ ├── index.go
│ │ └── qrcode.go
│ ├── models
│ │ ├── client.go
│ │ ├── message.go
│ │ └── room.go
│ ├── route
│ │ └── route.go
│ ├── shared
│ └── views
│ ├── layouts
│ │ ├── footer.gohtml
│ │ └── header.gohtml
│ ├── pages
│ │ ├── chat.gohtml
│ │ └── qrcode.gohtml
│ └── view.go
├── config
│ └── config.go
├── config.yml.example
├── deployment
│ └── local-mac
│ └── docker-compose.yml
├── Dockerfile
├── go.mod
├── go.sum
├── LICENSE
├── main.go
├── README.md
├── static
│ ├── js
│ │ ├── chat.js
│ │ └── jquery.min.js
│ └── style
│ └── chatbox.css
├── tree.txt
└── utils
├── http
│ └── http.go
├── logger
│ └── logger.go
├── math
│ └── math.go
└── network
└── network.go
- Create config file
cp ./config.yml.example ./config.yml
- Edit values of some variables in config.yml
host: <server_ip>
port: <server_port>
lifetime: <lifetime_of_an_message>
- On host machine (not containerized)
go run main.go
- Containerize using Docker
cd ./deployment/local-mac
docker-compose up --build