summaryrefslogtreecommitdiff
path: root/README.md
blob: 8656951e10c56663642064f219324cede507f747 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# Geshem 🌧️

![https://geshem.space](https://i.imgur.com/tt5hFqg.png)

An interactive rain radar clone running on Mapbox GL, see it live at: [https://geshem.space](https://geshem.space)

The entire service is served off of static assets located in S3 buckets:

 - A static main index page, React-based JS bundle and other static assets that are uploaded upon deploy
 - Radar images that are collected and indexed every minute by a Python recurring task running on AWS Lambda

## Prerequisites

 - Node.js
 - Yarn
 - Serverless, for deploying the AWS Lambda task
 - AWS CLI, for static asset deployment to S3

## Dev

Install dependencies and run dev server:

```bash
$ yarn install
$ yarn start
```

### Deploy

Build the JS bundle:

```bash
$ yarn build
```

Deploy new static assets to S3:

```bash
$ yarn run deploystatic
```

### Cron Task

#### Deploy

```bash
$ yarn run deploycron
```

#### Invoke

For testing the cron task:

```bash
$ yarn run invokecron
```

## Architecture

For some architectural notes on the deployment process go read https://yuv.al/blog/an-architecture-for-periodically-updating-static-websites/