Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/arieljimenez/pybanca
The infrastructure behind the lottery app.
https://github.com/arieljimenez/pybanca
docker-container elm japronto mariadb python restful-api webpack wsgi
Last synced: 16 days ago
JSON representation
The infrastructure behind the lottery app.
- Host: GitHub
- URL: https://github.com/arieljimenez/pybanca
- Owner: arieljimenez
- Created: 2018-03-05T02:00:35.000Z (almost 7 years ago)
- Default Branch: develop
- Last Pushed: 2018-03-20T05:09:53.000Z (almost 7 years ago)
- Last Synced: 2024-11-12T06:12:41.002Z (3 months ago)
- Topics: docker-container, elm, japronto, mariadb, python, restful-api, webpack, wsgi
- Language: Shell
- Homepage:
- Size: 17.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# pyBanca Infrastructure
>Infraestructure behind the app.
## STACK (wip)
- [Elmlang](http://elm-lang.org/) for the frontend. Runing at port **80**.
- [Japronto](https://github.com/squeaky-pl/japronto) for the WSGI/API service. Runing at port **8080** proxy-served by port **8000**.
- SQLAlchemy as ORM.
- MariaDB as RDBMS. Runing at port **8336**.## CI
- Jenkins (EDIT: will have his own container)
- Travis (more research needed)### Deployment (pipeline perhaps)
- We will have a Docker container with Alpine runing our WSGI python backend.
- The backend will serve an `index.html` that calls an `index.js` where our **Elm** app lives.
- First, give the webpack order to compile the elm files and prepare them for production.
- And later, do the **thing**.## Environment
- Alpine docker container (with gcc libs)
- python 3.6.3 && 2.7.14: needed for webpack 3 plugnins (updating to webpack 4 will solve this)
- nodejs v8.9.3
- webpack 3.10.0
- elm 0.18
- mariadb## Dev dependencies
- Linux :^)
- [Docker](https://github.com/arieljimenez/configx/blob/Elementary/apps/docker.sh)
- Some visual database modeler, like [MySQL Workbench](https://www.mysql.com/products/workbench/).
- A text editor: VS Code, Vim, Sublime or Atom. (yes, ordered by likeness).
- A terminal (_with zsh perhaps?_)
- Good intentions :)### TODO
- Config files (thinking in the 12 factor apps).
- Chosing IaaS: heroku or google.
- **Hint:** we cab user heroku as our **staging** and google compute engine as **production**.
- Do a stress test: lets see if that of **1.2** millons of *request* are true.
- Update Webpack to 4.
- Facture the stack in microservices.
- Research about python watcher.### Q/A
- **Q:** _Why ignore the package-lock.json?_
- this introduces more conflicts and problems than resolve ([ref](https://stackoverflow.com/questions/44297803/package-lock-json-role)).
- **How to update/deploy a new image?**
- `$ docker commit ${CONTAINER_NAME} ${USER}/${DESIRED_IMAGE_NAME}:${DESIRED_TAG}`
- `$ docker push ${USER}/${DESIRED_IMAGE_NAME}:${DESIRED_TAG}`
- update the init.sh.