An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          


๐Ÿ“˜ Guestbook


jakuboskera
jakuboskera
jakuboskera
jakuboskera

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
```