Server setup
- The tutorial launches a new AWS instance named
Sky, because that name will later become the SSH shortcut.22:4322: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
UDCCis created, and the temporary security group is an allow-all group that will be tightened later.23:3123:49 - Storage is set to 25 GB because the machine will hold five databases, logs, and multiple deployed applications.
23:4924:17
Initial access
- The downloaded PEM key is moved into
~/.ssh, then used with SSH asubuntu@<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
udccbranch so the course instructions keep working even as the production project evolves.25:3625:51 - Docker is installed from the official Docker Ubuntu instructions, including Docker Compose.
26:2326: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:4628:03 - If the
.envfile is missing, the script prompts the user to copy.env.exampleto.env.28:03 - The main
.envvalues discussed are port, Google OAuth client ID/secret, Redis URL, Postgres settings,USE_REDIS, and the cookie key.28:2128: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:4929:06 - The database setup prompt should be answered yes so the tables and seed data are created.
29:2731: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:5831: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
2080loads Weer.32:44 - Shortening a link works, though the displayed short-link domain is not final until a proper domain is configured.
33:0033: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