106 lines
2.9 KiB
Markdown
106 lines
2.9 KiB
Markdown
# Project Athens
|
|
|
|
## Preamble
|
|
|
|
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.
|
|
|
|
## 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 |
|
|
| Crete |Private Subnet|
|
|
| Demeter | EIP for NAT |
|
|
| Athens | Project Name |
|
|
|
|
|
|
## Section 4. Network Layout
|
|
|
|
### Crete
|
|
|
|
Network: `10.0.1.0/24`
|
|
|
|
The public subnet (which is the only subnet this VPC has).
|
|
|
|
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 |
|
|
|
|
|
|
|