Skip to content

Latest commit

 

History

History
135 lines (99 loc) · 8.17 KB

README.md

File metadata and controls

135 lines (99 loc) · 8.17 KB

Game production pipeline

User documentationAdmin documentationLicenseContact

Documentation hub to install and configure a game development pipeline (versioning, authentication, automatic build...) on self-host infrastructure.

Table Of Contents

Why

This repository serves as a centralized hub for documentation, capturing the setup and configuration processes for our game development pipeline. It's designed to store comprehensive guides on versioning, authentication, automated builds, and other critical components, referencing official documentation to ensure accuracy and reliability. By documenting our configurations, we ensure consistency and facilitate easy replication for future setups or sharing with friends interested in similar projects.

About The Project

We want our users to submit a change, create a review and have it trigger a build.
Game pipeline

For our pipeline, we will install several services :

  • Portainer : User-friendly Docker container management tool with a web-based interface.
  • Nginx Proxy Manager : User-friendly interface of a reverse proxy to expose your services easily and securely.
  • Helix Core : Version control and collaboration platform widely used for managing source code and digital assets.
  • Helix Authentication Service : Provides authentication and authorization services for securing access to Perforce applications.
  • Helix Swarm : Code review and collaboration platform integrated with Helix Core.
  • Helix Digital Asset Management : Solution for managing and versioning digital assets in a collaborative development environment.
  • Grafana : Open-source platform for creating interactive and customizable dashboards to visualize time-series data.
  • Prometheus : Open-source monitoring toolkit designed for collecting and processing time-series data.
  • Node Exporter : Prometheus exporter that collects system-level metrics from Linux/Unix hosts, providing valuable insights into CPU, memory, disk, and network usage.
  • Jenkins : Open-source automation server used for building, testing, and deploying software with support for continuous integration and delivery.

Screenshots

Portainer Interface P4V Interface

Helix Swarm Web Page Grafana Metrics Dashboard

Nginx Proxy Manager Web Page Jenkins Dashboard

System

Requirements

⚠️ For the moment, this guide has only been tested on Helix Products versions 2024.1.

In these guide, we install all our services on one server due to lack of resources, but our documentation offers instructions for installing and connecting services in a game development pipeline, without imposing a specific infrastructure setup. Users have the freedom to deploy services on one machine or across multiple servers, enabling them to customize their infrastructure according to their preferences and requirements.

At the moment, we have tested and operated our pipeline on :

  • OS : Debian 11
  • Processor : 2.4GHZ 8-Core or 3.2GHZ 4-Core
  • Memory : 16Go
  • Hard Disk : 200GB

The recommended configuration is :

  • OS : Any linux distribution
  • Processor : 2.4GHZ 8-Core or 3.2GHZ 4-Core
  • Memory : 8GO
  • Hard Disk : 64GB

And if you wish to configure automatic build, we suggest you use another server so as not to slow down perforce performance during a build. In these case, the recommended configuration for the build agent is :

  • OS : Windows 11
  • Processor : 2.4GHZ 8-Core or 3.2GHZ 4-Core
  • Memory : 8GO
  • Hard Disk : 128GB

You can consult the official hardware requirements for each service :

Containers Overview

Here is a list of all the containers that can be installed in this guide :

Service Name Public Ports
Nginx Proxy Manager ✔️
  • Web - 80 - TCP
  • Web Admin - 81 - TCP
  • Web - 443 - TCP
  • Helix Core - 1666 - TCP
Helix Core ✔️
  • Helix Core - 1666 - TCP
Helix Authentication Service ✔️
  • Web - 3000 - TCP
Helix Swarm ✔️
  • Web - 80 - TCP
  • Web - 443 - TCP
Portainer ✔️
  • Web Admin - 9443 - TCP
Jenkins Main ✔️
  • Web - 8080 - TCP
  • Agent - 50 000 - TCP
Jenkins Windows Agent ✔️
  • Web - 8006 - TCP
  • RDP - 3389 - TCP
  • RDP - 3389 - UDP
Grafana ✔️
  • Web Admin - 4000 - TCP
Prometheus ✔️
  • Web Admin - 9090 - TCP
Node Exporter
  • Scrap Metrics - 9100 - TCP
Redis Server
  • Webdis - 7379 - TCP

Installation

ℹ️ We also provide an user installation guide to install P4V Client and how to use Helix Swarm.

  1. Follow Docker and Portainer installation guide.
  2. (Optional) If you want to enhances security and reliability of the web server (force https, authentication on admin website...), follow the Nginx Proxy Manager installation guide.
  3. Follow Helix Core installation guide.
  4. Follow Helix Authentication installation guide.
  5. Follow Helix Swarm installation guide.
  6. Follow Jenkins installation guide.
  7. Follow Grafana and Prometheus installation guide.

License

Distributed under the Apache-2.0 License. See LICENSE for more information.

Contact