aws-gocljs

aws-gocljs

just ship web on aws

github.com/nathants/aws-gocljs

why

so you can just ship fullstack web on aws.

how

start with working implementations of everything, then iterate.

fast and reliable automation.

easy browser testing.

the tightest possible security policy, no other js can ever run.

what

a project scaffold for a fullstack webapp on aws with an infrastructure set ready-to-deploy with libaws.

the project scaffold contains:

a live demo is here.

lambda zip

the lambda zip contains only 3 files:

>> ls -lh | awk '{print $9, $5}' | column -t

favicon.png    2.7K # favicon
index.html.gz  296K # web app
main           15M  # go binary

the index.html.gz:

<!DOCTYPE html>
<html>
    <head>
      <meta charset="utf-8">
      <meta http-equiv="Content-Security-Policy" content="script-src 'sha256-${JS_SHA256}'">
      <link rel="icon" href="/favicon.png">
    </head>
    <body>
        <div id="app"></div>
        <script type="text/javascript">
          ${JS}
        </script>
    </body>
</html>

the lambda zip itself:

>> ls -lh | awk '{print $9, $5}'
lambda.zip 4.6M

demo

dependencies

use the included Dockerfile or install the following dependencies:

aws prerequisites

install

git clone https://github.com/nathants/aws-gocljs
cd aws-gocljs
cp env.sh.template env.sh # update values

usage

bash bin/check.sh         # lint
bash bin/preview.sh       # preview changes to aws infra
bash bin/ensure.sh        # ensure aws infra
bash bin/dev.sh           # iterate on backend and frontend
bash bin/logs.sh          # tail the logs
bash bin/delete.sh        # delete aws infra