infra/readme.md

106 lines
2.9 KiB
Markdown
Raw Normal View History

2021-11-28 23:25:50 +00:00
# Project Athens
## Preamble
2022-10-22 22:25:25 +00:00
This is the infrastructure that many of my own personal projects live in, such
as personal websites and services that I expose for myself & friends.
2021-11-28 23:25:50 +00:00
## Section 1. Abstract
Project Athens is an effort to collate my web based projects onto a more
manageable infrastructure. The goal is to provide some structure that makes
the operations & management easier as previously I had projects on
GCP, AWS, IONOS and others.
## Section 2. The Hosts/Services
### Docker Host
This _internal_ host will serve to host some containerized applications:
* Lewdlad - [Repo Link](https://gitlab.com/shockrah/left-coast-server-bot)
This is the Left Coast communities server management bot. It's in charge
of managing _another VPC_ of game servers which currently serves a community
of just over 100 people. This bot sits outside the VPC however because it
uses Lambda based API for control.
* Musical Maurice - [Link to Muse Discord Bot](https://github.com/codetheweb/muse)
This is the Left Coast Discord community's music bot. We used to use Groovy
however due to the recent DMCA's we have began to host our own music bot.
* Personal Clippable Instance - [Repo Link](https://gitlab.com/shockrah/clippable)
This is my own personal Clippable instance where I try to post fun/interesting
clips.
### Static Nginx Server
This host is serving a few different pages that I use for my own online persona:
* Blog - [link](https://shockrah.xyz)
* Portfolio - [link](https://resume.shockrah.xyz)
* Freechat Reference - [link](https://freechat.shockrah.xyz)
At some point this link may become stale as the official docs are currently
being constructed and will be hosted under its own domain.
### Ansible Host/Jump Host
This is the dev box that I use to patch services running in the VPC.
Typically this server is only up when requested to reduce attack surface.
### Web Reverse Proxy
This server sits between the internal _Static Nginx server_ and the internal
_Docker host_. Many of my websites live in a subdomain so this server
diverts traffic to the appropriate internal server.
## Section 3. Codenames
_Below are the codenames which are used to references major parts of _Project
Athens_.
| Codename | Role/Purpose |
|:--------:|:------------:|
| Alpha | Docker Host |
| Beta | Nginx Host |
2022-09-22 18:11:36 +00:00
| Crete |Private Subnet|
2021-11-28 23:25:50 +00:00
| Demeter | EIP for NAT |
2022-09-22 18:11:36 +00:00
| Athens | Project Name |
2021-11-28 23:25:50 +00:00
## Section 4. Network Layout
### Crete
Network: `10.0.1.0/24`
2022-10-22 22:25:25 +00:00
The public subnet (which is the only subnet this VPC has).
2021-11-28 23:25:50 +00:00
Mostly web services however there are a few chat bots which connect to the
internet via NAT gateway.
### Olympus
Public Subnet wherein all members have an Elastic IP.
### Demeter
EIP which is used for the NAT gateway allocated to Olympus. This is used by
members of the Crete subnet for internet access(patching / system updates).
### Addressing
| Name | IP |
|:----:|:--:|
| Alpha| 10.0.1.10 |
| Beta | 10.0.1.11 |