https://github.com/jakuboskera/guestbook
Guestbook is a simple cloud-native web application which allows visitors to leave a public comment without creating a user account
https://github.com/jakuboskera/guestbook
docker docker-compose flask flask-migrate flask-restx helm kubernetes postgresql python sqlalchemy
Last synced: 4 months ago
JSON representation
Guestbook is a simple cloud-native web application which allows visitors to leave a public comment without creating a user account
- Host: GitHub
- URL: https://github.com/jakuboskera/guestbook
- Owner: jakuboskera
- License: apache-2.0
- Created: 2021-10-02T19:30:51.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-05-03T19:08:58.000Z (about 3 years ago)
- Last Synced: 2023-05-03T20:58:38.293Z (about 3 years ago)
- Topics: docker, docker-compose, flask, flask-migrate, flask-restx, helm, kubernetes, postgresql, python, sqlalchemy
- Language: Python
- Homepage: https://guestbook.jakuboskera.dev
- Size: 1.1 MB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Guestbook is a simple cloud-native web application which allows visitors to
leave a public comment without creating a user account.
Application uses
[MVC architecture](https://www.giacomodebidda.com/posts/mvc-pattern-in-python-introduction-and-basicmodel/),
which is widely used software architectural pattern in GUI-based applications.
This application among other things, contains these endpoints:
- **API** (for interaction without UI) - [python-restx/flask-restx](https://github.com/python-restx/flask-restx),
- **Prometheus metrics** (for observability) - [rycus86/prometheus_flask_exporter](https://github.com/rycus86/prometheus_flask_exporter),
- **Health** (health of a application) - [ateliedocodigo/py-healthcheck](https://github.com/ateliedocodigo/py-healthcheck).
Live demo of Guestbook application is deployed in
[Fly.io](http://fly.io) ๐, **`public comments Welcome`**!๐ค:
https://guestbook.jakuboskera.dev
## ๐ TOC
- [๐ TOC](#-toc)
- [๐ Get started](#-get-started)
- [๐ Used technologies](#-used-technologies)
- [๐ Run in docker using docker-compose](#-run-in-docker-using-docker-compose)
- [โ ๏ธ Prerequisites](#๏ธ-prerequisites)
- [๐ Install](#-install)
- [๐งน Cleanup](#-cleanup)
- [๐ Run in Kubernetes](#-run-in-kubernetes)
- [Using Helm](#using-helm)
- [โ ๏ธ Prerequisites](#๏ธ-prerequisites-1)
- [๐ Install](#-install-1)
- [๐งน Cleanup](#-cleanup-1)
- [Using skaffold and Helm](#using-skaffold-and-helm)
- [โ ๏ธ Prerequisites](#๏ธ-prerequisites-2)
- [๐ Install](#-install-2)
- [๐งน Cleanup](#-cleanup-2)
## ๐ Get started
1. Clone this repo
```bash
git clone git@github.com:jakuboskera/guestbook.git
```
1. Navigate to a folder `guestbook`
```bash
cd guestbook
```
1. Issue `make` command to see available targets, which you can use
```bash
make
```
## ๐ Used technologies
## ๐ Run in docker using docker-compose
### โ ๏ธ Prerequisites
- docker-compose
### ๐ Install
```bash
make docker-run
```
### ๐งน Cleanup
```bash
make docker-cleanup
```
## ๐ Run in Kubernetes
Using Helm chart `guestbook` from Helm repository
.
### Using Helm
#### โ ๏ธ Prerequisites
- Kubernetes 1.12+
- Helm 3.1.0+
#### ๐ Install
```bash
make helm-install
```
#### ๐งน Cleanup
```bash
make helm-cleanup
```
### Using skaffold and Helm
Ideal for local Kubernetes development.
#### โ ๏ธ Prerequisites
- Kubernetes 1.12+
- Helm 3.1.0+
- skaffold
#### ๐ Install
Build, tag and deploy artifacts via Helm chart using skaffold.yaml
```bash
make skaffold-run
```
Build, tag and deploy artifacts via Helm chart using skaffold.yaml,
make port-forward to containers and write logs of containers to stdout
```bash
make skaffold-dev
```
#### ๐งน Cleanup
```bash
make skaffold-cleanup
```