Skip to content
Snippets Groups Projects
README.md 3.88 KiB

Technical Documentation

This repo contains technical documentation about the infrastructure of Rising Tide Games. It will expand to include documentation on the implementation of Rising Tide's tech and products.

Infrastructure

Overview

The current Rising Tide infrastructure is mostly hosted on a single machine running docker containers. This server is on its own VLAN and is connected to a Ubiquiti Unifi switch on a 1 Gbps port. The server is assigned a DNS entry that points to a Pi-Hole running on the local network. The network also hosts a Raspberry Pi 4 Wireguard VPN server. Connecting to the Wireguard server allows access to all networks on site.

Hardware

The following is a listing of the hardware used for the Rising Tide infrastructure.

graph TD
    A[WAN] --> |1 Gbps - Symmetric| B[Ubiquiti USG]
    G[GSuite] --> B
    H[DNS] --> |risingtide.games| B
    B --> C[Ubiquiti Switch]
    C --> D[Pi-Hole DNS]
    C --> E[Wireguard VPN]
    C --> |VLAN - 1 Gbps| F[Server]
    D & E --> F

Server

  • AMD Ryzen 3700x
  • 64 GB 3600 Mhz DDR4
  • 1 TB NVME
  • 1 Gbps Intel ethernet
  • Arch Linux OS - headless
  • 1500VA/1000W UPS

Network

  • Ubiquiti USG
  • Ubiquiti Switch - 1 Gbps ports
  • Raspberry Pi 2 - Pi-Hole DNS
  • Raspberry Pi 4b with 1 Gbps ethernet and POE adapter - Wireguard VPN

Software

The following are the software services being run on the server.

graph TD
    A[Nginx Reverse Proxy] --> |code.risingtide.games| B[Gitlab]
    A --> |risingtide.games| C[Nginx Web Server]
    A --> |influxdb.risingtide.games| D[InfluxDB]
    A --> |grafana.risingtide.games| E[Grafana]
    D --> E
    F[Telegraf] --> D
    A --> F
    G[Gitlab Runners] --> A
    H[*.risingtide.games] --> A
    B --> I[Webhook]
    J[Power Monitor] --> |influxdb.risingtide.games| A
    A --> |forums.risingtide.games| K[Discourse]

Docker Services

Docker services are all in a single docker compose file.

  • Nginx - Reverse Proxy
  • Gitlab - Source control at code.risingtide.games
  • Nginx - Web server for risingtide.games
  • Gitlab Runners - Continuous Integration/Deployment
  • Webhook - Pushes web site updates to live folder
  • InfluxDB 2.0 - Time series database
  • Telegraf - Collects metrics, formats, and sends them to InfluxDB
  • Grafana - Metrics visualization
  • Discourse - Community forums

External Docker Services

These docker services are running on machines other than the main server. The reasoning for this is provided below.