Server setup

  • The tutorial launches a new AWS instance named Sky, because that name will later become the SSH shortcut. 22:43 22:57
  • The instance uses Ubuntu on ARM with a T4G.small, giving 2 GB RAM and 2 CPU cores. 23:13
  • A new key pair named UDCC is created, and the temporary security group is an allow-all group that will be tightened later. 23:31 23:49
  • Storage is set to 25 GB because the machine will hold five databases, logs, and multiple deployed applications. 23:49 24:17

Initial access

  • The downloaded PEM key is moved into ~/.ssh, then used with SSH as ubuntu@<public DNS or IP>. 24:36
  • The PEM key needs restrictive permissions, shown as chmod 400, before SSH will accept it. 25:07

Clone and install Docker

  • Weer is cloned from GitHub using the udcc branch so the course instructions keep working even as the production project evolves. 25:36 25:51
  • Docker is installed from the official Docker Ubuntu instructions, including Docker Compose. 26:23 26:55
  • The Docker setup commands mainly tell Ubuntu where to download Docker from before installing it. 27:18

Run Weer

  • The intended Docker path is clone the repository, run docker-run.sh, answer prompts, and let the script set up the app. 27:46 28:03
  • If the .env file is missing, the script prompts the user to copy .env.example to .env. 28:03
  • The main .env values discussed are port, Google OAuth client ID/secret, Redis URL, Postgres settings, USE_REDIS, and the cookie key. 28:21 28:40
  • The cookie key should be a random string of at least 32 characters. 29:06
  • Redis can be enabled by setting the relevant environment value to true. 28:49 29:06
  • The database setup prompt should be answered yes so the tables and seed data are created. 29:27 31:48

Docker services

  • The Docker Compose file defines four services: Redis, Postgres, the server application, and the janitor. 30:58
  • The Docker build compiles React, Sass, reusable/common packages, and the TypeScript server into JavaScript that Node.js can run. 30:58 31:22
  • When successful, the server runs on port 2080, connects to Redis and Postgres, and creates the Redis view consumer group. 32:07
  • Both the server and janitor connect to Redis and Postgres, so the connection logs appear for both processes. 32:27

Verification

  • Visiting the server public DNS on port 2080 loads Weer. 32:44
  • Shortening a link works, though the displayed short-link domain is not final until a proper domain is configured. 33:00 33:16
  • Google login requires real Google client ID and secret values; without them, login is not expected to work. 33:28
  • Docker is not expected to sacrifice much performance, and later benchmarks will compare Docker and non-Docker deployments. 33:45