---
title: pterodactyl
description: game server ui for docker management
showHero: false
author: wompmacho
date: '2024-05-04 20:00:25.298000+00:00'
lastmod: '2025-02-08'
tags: ['game-server', 'management', 'self-hosted']
---

## What is Pterodactyl?

[Pterodactyl](https://pterodactyl.io/) is a free, open-source game server management panel built with PHP,
React, and Go. Designed with security in mind, Pterodactyl runs all game servers
in isolated Docker containers while exposing a beautiful and intuitive UI to end
users.

## pterodactyl & ssl

ssl with pterodactyl is really annoying if you are using it behind a reverse
proxy (nginx) - might be easier to run this on its own server so you can just
use the default port 80 for web. reverse proxy is designed for normal web
traffic, not game servers.

If you are annoying like me and wanna put things on a single server and save
money... here is what you can do.

- [Creating SSL
  Certificates](https://pterodactyl.io/tutorials/creating_ssl_certificates.html#method-2:-acme.sh-(using-cloudflare-api))
- [Youtube Guide](https://www.youtube.com/watch?v=cbr8tddvAWw)
- [Webserver
  Configuration](https://pterodactyl.io/panel/1.0/webserver_configuration.html#nginx-with-ssl)
- [NGINX Specific
  Configuration](https://pterodactyl.io/panel/1.0/additional_configuration.html#nginx-specific-configuration)

  ```bash
  https://pterodactyl.io/panel/0.7/configuration.html
  # idk... couldn't get it to work
  # OpenSSL Self-Signed Certificate Command:
  openssl req -sha256 -addext "subjectAltName = DNS:games.local" -newkey rsa:4096 -nodes -keyout privkeyselfsigned.pem -x509 -days 3650 -out fullchainselfsigned.pem

  # nginx-proxy-manager with cloudflare ssl cert setup
  # proxy side should be http
  # do not force ssl on cert side
  # go to http after getting to the site

  # .env file
  /var/www/pterodactyl/.env
  APP_URL="http://domain"
  TRUSTED_PROXIES=*
  # you don't have to do this - i'd rather not
  PTERODACTYL_TELEMETRY_ENABLED=false
  RECAPTCHA_ENABLED=false

  # config.yml
  /etc/pterodactyl/config.yml
  # use auto config remote: http:

  # nginx pterodactyl.conf
  /etc/nginx/sites-enabled/pterodactyl.conf

  # add to proxy-manager special settings
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_redirect off;
  proxy_buffering off;
  proxy_request_buffering off;

  sudo systemctl restart nginx && systemctl restart wings
  ```
