summaryrefslogtreecommitdiff
path: root/README.md
blob: 57d85cf6dde0b7709df5436c688b510c2879ad33 (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
# Geshem 🌧️

<img src="public/screenshot.png" height="600" align="right">

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

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

## Prerequisites

- Node.js
- Yarn
- Serverless, for deploying the AWS Lambda task

## Dev

Install dependencies and run dev server:

```bash
$ npm install
$ DANGEROUSLY_DISABLE_HOST_CHECK=true npm start
```

### Deploy

Deployment is handled transparently via Vercel.

### Cron Task

#### Dev

```bash
$ cd cron
$ pipenv install
```

#### Deploy

```bash
$ npm run deploycron
```

#### Invoke

For testing the cron task:

```bash
$ npm run invokecron
```