https://github.com/xtrinch/go-react-todo
Todo REST API written in Go, React frontend client, setup using docker & docker-compose.
https://github.com/xtrinch/go-react-todo
docker go react todo-app
Last synced: about 1 month ago
JSON representation
Todo REST API written in Go, React frontend client, setup using docker & docker-compose.
- Host: GitHub
- URL: https://github.com/xtrinch/go-react-todo
- Owner: xtrinch
- License: gpl-2.0
- Created: 2016-08-29T18:51:08.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-09-13T11:26:16.000Z (7 months ago)
- Last Synced: 2025-02-27T09:12:40.930Z (about 2 months ago)
- Topics: docker, go, react, todo-app
- Language: JavaScript
- Homepage:
- Size: 12.5 MB
- Stars: 39
- Watchers: 5
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-react-todo
- Todo REST API in Go
- React frontend client with Redux.
- Setup with docker & docker-compose.Database library for postgres is [Gorp](https://github.com/go-gorp/gorp),
livereloading goes to [codegangsta/Gin](https://github.com/codegangsta/gin),
HTTP framework used is [gin-gonic/gin](https://github.com/gin-gonic/gin).Docker-compose file contains the definition for three containers -
database (postgres), backend (Go) and frontend (React).## Requirements
- docker
- docker-compose## Development setup:
$ docker-compose up
Find your docker-machine IP by running
$ docker-machine env default
Go todo API (backend) can be accessed at port 8080, webpack-dev-server
(react frontend) at 9000.
Requests from webpack-dev-server are proxied to the Go container by
webpack conifig.
Live reloading is provided by codegangsta/Gin.## Production setup:
In production livereloading of Go code and a frontend container are not needed. There are now only three containers: postgres database, go backend and a nginx container. A separate docker-compose file is used, as seen below. Run the following scripts in your cloned git directory:
# will create build/ directory in ../nginx/, where it is then
# mounted into nginx container to be served as static files
$ cd client/ && npm run-script build
$ cd ../ && docker-compose -f docker-compose.prod.yml up -dYou server container will be listening at port 8002 as exposed in docker-compose.prod.yml.
## API endpoints
- **GET** api/v1/todos/
- **GET** api/v1/todos/:id
- **POST** api/v1/todos
- **PUT** api/v1/todos/:id
- **DELETE** api/v1/todos/:id