2022-10-30 13:47:06 +00:00

55 lines
20 KiB
HTML

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Building Wings | Pterodactyl</title>
<meta name="generator" content="VuePress 1.8.2">
<link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon.png">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="mask-icon" href="/favicons/safari-pinned-tab.svg" color="#0e4688">
<link rel="manifest" href="/favicons/site.webmanifest">
<link rel="shortcut icon" href="/favicons/favicon.ico">
<meta name="description" content="Pterodactyl is an 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.">
<meta name="msapplication-config" content="/favicons/browserconfig.xml">
<meta name="theme-color" content="#0e4688">
<link rel="preload" href="/assets/css/0.styles.b3d0dfa6.css" as="style"><link rel="preload" href="/assets/js/app.7c3f5311.js" as="script"><link rel="preload" href="/assets/js/4.40ea9a9d.js" as="script"><link rel="preload" href="/assets/js/1.79a56ae5.js" as="script"><link rel="preload" href="/assets/js/34.08d0de59.js" as="script"><link rel="prefetch" href="/assets/js/10.27cec751.js"><link rel="prefetch" href="/assets/js/11.27ba30b0.js"><link rel="prefetch" href="/assets/js/12.29206997.js"><link rel="prefetch" href="/assets/js/13.bd04c4ec.js"><link rel="prefetch" href="/assets/js/14.d448db4e.js"><link rel="prefetch" href="/assets/js/15.a6802091.js"><link rel="prefetch" href="/assets/js/16.f2dea920.js"><link rel="prefetch" href="/assets/js/17.99a727ea.js"><link rel="prefetch" href="/assets/js/18.fcb158a9.js"><link rel="prefetch" href="/assets/js/19.029b8520.js"><link rel="prefetch" href="/assets/js/2.21e1a937.js"><link rel="prefetch" href="/assets/js/20.178448b6.js"><link rel="prefetch" href="/assets/js/21.40b46144.js"><link rel="prefetch" href="/assets/js/22.f9353e9f.js"><link rel="prefetch" href="/assets/js/23.15d6f9c5.js"><link rel="prefetch" href="/assets/js/24.8ac4a935.js"><link rel="prefetch" href="/assets/js/25.0d90b696.js"><link rel="prefetch" href="/assets/js/26.199e42e5.js"><link rel="prefetch" href="/assets/js/27.53b2955f.js"><link rel="prefetch" href="/assets/js/28.b1cca863.js"><link rel="prefetch" href="/assets/js/29.34880c0e.js"><link rel="prefetch" href="/assets/js/30.6cc47499.js"><link rel="prefetch" href="/assets/js/31.d561e4f4.js"><link rel="prefetch" href="/assets/js/32.5ec9cc12.js"><link rel="prefetch" href="/assets/js/33.48c3e849.js"><link rel="prefetch" href="/assets/js/35.226da989.js"><link rel="prefetch" href="/assets/js/36.b9c41633.js"><link rel="prefetch" href="/assets/js/37.8e7964de.js"><link rel="prefetch" href="/assets/js/38.ea3ffaf8.js"><link rel="prefetch" href="/assets/js/39.5d85947d.js"><link rel="prefetch" href="/assets/js/40.a78ec0ad.js"><link rel="prefetch" href="/assets/js/41.738df04c.js"><link rel="prefetch" href="/assets/js/42.a8778d05.js"><link rel="prefetch" href="/assets/js/43.25886c53.js"><link rel="prefetch" href="/assets/js/44.1b22667c.js"><link rel="prefetch" href="/assets/js/45.14943dc6.js"><link rel="prefetch" href="/assets/js/46.0fcb43fb.js"><link rel="prefetch" href="/assets/js/47.3af19f15.js"><link rel="prefetch" href="/assets/js/48.b52bf3e1.js"><link rel="prefetch" href="/assets/js/49.8d6a6c8f.js"><link rel="prefetch" href="/assets/js/5.407df260.js"><link rel="prefetch" href="/assets/js/50.e5e4cbbf.js"><link rel="prefetch" href="/assets/js/51.1e3a5853.js"><link rel="prefetch" href="/assets/js/52.5e2e1e53.js"><link rel="prefetch" href="/assets/js/53.aaf29ed5.js"><link rel="prefetch" href="/assets/js/54.5fc704a0.js"><link rel="prefetch" href="/assets/js/55.393a224a.js"><link rel="prefetch" href="/assets/js/56.3a4538a1.js"><link rel="prefetch" href="/assets/js/57.6745899a.js"><link rel="prefetch" href="/assets/js/58.45f04b3b.js"><link rel="prefetch" href="/assets/js/59.11a05d73.js"><link rel="prefetch" href="/assets/js/6.8999fd8a.js"><link rel="prefetch" href="/assets/js/60.7d880736.js"><link rel="prefetch" href="/assets/js/61.d018466a.js"><link rel="prefetch" href="/assets/js/62.24f07f38.js"><link rel="prefetch" href="/assets/js/63.a2063940.js"><link rel="prefetch" href="/assets/js/64.153c7b4c.js"><link rel="prefetch" href="/assets/js/65.00530c72.js"><link rel="prefetch" href="/assets/js/66.520504f3.js"><link rel="prefetch" href="/assets/js/67.b6bf9549.js"><link rel="prefetch" href="/assets/js/68.c00a35c5.js"><link rel="prefetch" href="/assets/js/69.5949dd7c.js"><link rel="prefetch" href="/assets/js/7.9f1ce256.js"><link rel="prefetch" href="/assets/js/70.b8d47119.js"><link rel="prefetch" href="/assets/js/71.f48a1b65.js"><link rel="prefetch" href="/assets/js/72.c3387ba5.js"><link rel="prefetch" href="/assets/js/73.3c0e5aad.js"><link rel="prefetch" href="/assets/js/74.c44472e4.js"><link rel="prefetch" href="/assets/js/75.61db1f51.js"><link rel="prefetch" href="/assets/js/76.585f5d41.js"><link rel="prefetch" href="/assets/js/77.995dfb5e.js"><link rel="prefetch" href="/assets/js/78.1dc5cc37.js"><link rel="prefetch" href="/assets/js/8.f62ead52.js"><link rel="prefetch" href="/assets/js/9.7af626f7.js">
<link rel="stylesheet" href="/assets/css/0.styles.b3d0dfa6.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div><div class="fixed h-12 w-full z-50 top-0"><div class="h-12 w-full bg-black flex items-center justify-center px-4"><p class="text-grey-lightest font-semibold">
Stand with Ukraine 🇺🇦 
<a href="https://www.savethechildren.org/us/where-we-work/ukraine" target="_blank" rel="noindex nofollow noopener" class="text-blue-lighter">Donate</a> <a href="https://razomforukraine.org/" target="_blank" rel="noindex nofollow noopener" class="text-blue-lighter">Today.</a></p></div></div> <div class="theme-container mt-12"><header class="nav"><div class="sidebar-button block md:hidden flex-no-shrink"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <div class="logo-container"><a href="/" class="home-link router-link-active"><img src="/logos/pterry.svg" class="logo"> <span class="site-name hidden md:inline can-hide">Pterodactyl</span></a></div> <div class="w-full"><div class="flex"><div class="search-box"><input aria-label="Search" placeholder="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links flex-no-shrink hidden md:flex"><div class="nav-item"><a href="/project/introduction.html" class="nav-link">Documentation
</a></div><div class="nav-item"><a href="/community/about.html" class="nav-link">Community Guides
</a></div><div class="nav-item"><a href="https://discord.gg/pterodactyl" target="_blank" rel="noopener noreferrer" class="nav-link external">
Get Help
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://dashflo.net/docs/api/pterodactyl/v1/" target="_blank" rel="noopener noreferrer" class="nav-link external">
API
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <div class="nav-item"><a href="https://github.com/pterodactyl/panel" target="_blank" rel="noopener noreferrer" class="nav-link">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div></nav></div></div></header> <div class="sidebar-mask"></div> <div class="sidebar"><nav class="nav-links flex-no-shrink block md:hidden"><div class="nav-item"><a href="/project/introduction.html" class="nav-link">Documentation
</a></div><div class="nav-item"><a href="/community/about.html" class="nav-link">Community Guides
</a></div><div class="nav-item"><a href="https://discord.gg/pterodactyl" target="_blank" rel="noopener noreferrer" class="nav-link external">
Get Help
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://dashflo.net/docs/api/pterodactyl/v1/" target="_blank" rel="noopener noreferrer" class="nav-link external">
API
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <div class="nav-item"><a href="https://github.com/pterodactyl/panel" target="_blank" rel="noopener noreferrer" class="nav-link">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div></nav> <ul class="sidebar-links"><li><div class="sidebar-group first"><p class="sidebar-heading"><span>Community Guides</span> <!----> <!----></p> <ul class="sidebar-group-items"><li><a href="/community/about.html" class="sidebar-link">Community Guides and Tutorials</a></li></ul></div></li><li><div class="sidebar-group"><p class="sidebar-heading"><span>Panel Installation</span> <!----> <!----></p> <ul class="sidebar-group-items"><li><a href="/community/installation-guides/panel/centos7.html" class="sidebar-link">CentOS 7</a></li><li><a href="/community/installation-guides/panel/centos8.html" class="sidebar-link">CentOS 8, Rocky Linux 8, AlmaLinux 8</a></li><li><a href="/community/installation-guides/panel/debian10.html" class="sidebar-link">Debian 10</a></li><li><a href="/community/installation-guides/panel/debian11.html" class="sidebar-link">Debian 11</a></li></ul></div></li><li><div class="sidebar-group"><p class="sidebar-heading"><span>Wings Installation</span> <!----> <!----></p> <ul class="sidebar-group-items"><li><a href="/community/installation-guides/wings/centos7.html" class="sidebar-link">CentOS 7</a></li><li><a href="/community/installation-guides/wings/centos8.html" class="sidebar-link">CentOS 8, Rocky Linux 8, AlmaLinux 8</a></li><li><a href="/community/installation-guides/wings/debian10.html" class="sidebar-link">Debian 10</a></li><li><a href="/community/installation-guides/wings/debian11.html" class="sidebar-link">Debian 11</a></li></ul></div></li><li><div class="sidebar-group"><p class="sidebar-heading"><span>Creating Eggs</span> <!----> <!----></p> <ul class="sidebar-group-items"><li><a href="/community/config/eggs/creating_a_custom_egg.html" class="sidebar-link">Creating a Custom Egg</a></li><li><a href="/community/config/eggs/creating_a_custom_image.html" class="sidebar-link">Creating a Custom Docker Image</a></li></ul></div></li><li><div class="sidebar-group"><p class="sidebar-heading"><span>Game Configuration</span> <!----> <!----></p> <ul class="sidebar-group-items"><li><a href="/community/games/minecraft.html" class="sidebar-link">Minecraft</a></li></ul></div></li><li><div class="sidebar-group"><p class="sidebar-heading"><span>Tutorials</span> <!----> <!----></p> <ul class="sidebar-group-items"><li><a href="/community/config/nodes/add_node.html" class="sidebar-link">Creating a New Node</a></li><li><a href="/community/tutorials/artisan.html" class="sidebar-link">Artisan CLI</a></li></ul></div></li><li><div class="sidebar-group"><p class="sidebar-heading open"><span>Customization</span> <!----> <!----></p> <ul class="sidebar-group-items"><li><a href="/community/customization/panel.html" class="sidebar-link">Building Panel Assets</a></li><li><a href="/community/customization/wings.html" aria-current="page" class="active sidebar-link">Building Wings</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/community/customization/wings.html#build-requirements" class="sidebar-link">Build Requirements</a></li><li class="sidebar-sub-header"><a href="/community/customization/wings.html#building" class="sidebar-link">Building</a></li><li class="sidebar-sub-header"><a href="/community/customization/wings.html#install-the-new-binary" class="sidebar-link">Install the new binary</a></li><li class="sidebar-sub-header"><a href="/community/customization/wings.html#troubleshooting" class="sidebar-link">Troubleshooting</a></li></ul></li></ul></div></li></ul> </div> <div class="page"> <div class="content content__default"><h1 id="building-wings"><a href="#building-wings" class="header-anchor">#</a> Building Wings</h1> <div class="custom-block warning"><p class="custom-block-title">WARNING</p> <p>Do <strong>not</strong> run the following steps on your production nodes.</p></div> <p>Wings is written in Go. This makes it very easy to modify and compile it on your own, and distribute your own binaries.
This guide will cover the steps necessary to build it yourself.</p> <p>It will not, however, explain where to look for certain aspects of Wings and which changes are necessary to achieve specific results. Knowledge of the Go language is required if you want to modify it.</p> <p>Building Go programs is very easy, and the same also applies to Wings. Go is cross-platform, but Wings only supports Linux at the moment. The easiest way to compile it for Linux is to run the commands on a Linux machine.</p> <h2 id="build-requirements"><a href="#build-requirements" class="header-anchor">#</a> Build Requirements</h2> <p>An up to date version of Go is required to compile Wings. The minimum version can be found at the top of the <a href="https://github.com/pterodactyl/wings/blob/develop/go.mod" target="_blank" rel="noopener noreferrer">go.mod<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> file. See the <a href="https://golang.org/doc/install" target="_blank" rel="noopener noreferrer">official instructions<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> for help with installing Go.</p> <h2 id="building"><a href="#building" class="header-anchor">#</a> Building</h2> <p>Execute the following command in your local clone of the repository to compile Wings into a binary.</p> <div class="language-bash extra-class"><pre class="language-bash"><code>go build
</code></pre></div><p>You should now have a <code>wings</code> binary file in your wings directory.</p> <h2 id="install-the-new-binary"><a href="#install-the-new-binary" class="header-anchor">#</a> Install the new binary</h2> <div class="custom-block tip"><p class="custom-block-title">Root required</p> <p>Some the following commands require root permissions. Prepend them with <code>sudo</code> if you are not logged in as root.</p></div> <ol><li>Backup the current installation of wings</li></ol> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">mv</span> /usr/local/bin/wings /usr/local/bin/wings-backup
</code></pre></div><ol start="2"><li>Place the new binary in <code>/usr/local/bin</code></li></ol> <div class="language- extra-class"><pre class="language-text"><code>cp ./wings /usr/local/bin
</code></pre></div><ol start="3"><li>Restart wings</li></ol> <div class="language- extra-class"><pre class="language-text"><code>systemctl restart wings
</code></pre></div><h2 id="troubleshooting"><a href="#troubleshooting" class="header-anchor">#</a> Troubleshooting</h2> <p>If the wings service does not start properly, you can try to start Wings in a console window.</p> <div class="language- extra-class"><pre class="language-text"><code>wings --debug
</code></pre></div><p>Remember to stop the system service before, and re-enable it afterwards.</p> <div class="language- extra-class"><pre class="language-text"><code>systemctl stop wings
systemctl start wings
</code></pre></div></div> <div class="page-edit"><div class="edit-link"><a href="https://github.com/pterodactyl/documentation/edit/master/community/customization/wings.md" target="_blank" rel="noopener noreferrer">Help us improve this page.</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <!----></div> <div class="page-nav"><p class="inner"></p> <div class="prev"><span>
<a href="/community/customization/panel.html">Building Panel Assets</a></span></div> <div class="next"><!----></div></div> </div></div></div><div class="global-ui"></div></div>
<script src="/assets/js/app.7c3f5311.js" defer></script><script src="/assets/js/4.40ea9a9d.js" defer></script><script src="/assets/js/1.79a56ae5.js" defer></script><script src="/assets/js/34.08d0de59.js" defer></script>
</body>
</html>