{"id":124017,"date":"2026-06-07T09:59:32","date_gmt":"2026-06-07T06:59:32","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/portel\/"},"modified":"2026-06-07T09:59:32","modified_gmt":"2026-06-07T06:59:32","slug":"portel","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/portel\/","title":{"rendered":"Portel"},"content":{"rendered":"<div align=\"center\">\n  <img decoding=\"async\" src=\"https:\/\/github.com\/Skullmc1\/Portel\/raw\/main\/images\/Heading.png\" alt=\"Portel Logo\" width=\"800\"\/>\n<\/div>\n<p>## Websites hosted directly on Minecraft servers<\/p>\n<p>Portel is a Minecraft plugin that allows you to host a simple website directly from your server. It starts a lightweight web server that serves files from a folder within the plugin&#8217;s configuration directory.<\/p>\n<p>## Why use Portel?<\/p>\n<p>&#8211;   **Simplicity:** Portel is designed to be easy to use. Simply drop the plugin into your server&#8217;s `plugins` folder and you&#8217;re ready to go. No complex setup or configuration required.<br \/>\n&#8211;   **Performance:** Portel is built to be lightweight and efficient. It uses Java&#8217;s built-in HTTP server to minimize resource usage, ensuring that your server&#8217;s performance is not affected.<br \/>\n&#8211;   **Customization:** Portel gives you full control over your website. You can create your own HTML, CSS, and JavaScript files to build a unique website that reflects your server&#8217;s identity. You can also create custom error pages for 403, 404, and 429 errors.<br \/>\n&#8211;   **Security:** Portel includes a whitelist\/blacklist system to control access to your website. It also has a path-traversal protection and a rate-limiting feature to prevent abuse.<br \/>\n&#8211;   **Real-time updates:** Changes to your website files are reflected in real-time with automatic **Hot-Reloading**.<br \/>\n&#8211;   **No external hosting required:** Host your website directly on your Minecraft server, eliminating the need for a separate web hosting service.<\/p>\n<p>## Configuration<\/p>\n<p>The configuration file is located at `plugins\/Portel\/config.yml`.<\/p>\n<p>&#8220;`yaml<br \/>\nport: 8080<br \/>\nwebsocket-port: 8081<br \/>\nindex-file: index.html<br \/>\n# Automatically clear cache when files in web\/ directory are modified.<br \/>\nhot-reloading: true<\/p>\n<p>ssl:<br \/>\n  enabled: false<br \/>\n  keystore-path: &#8220;keystore.jks&#8221;<br \/>\n  keystore-password: &#8220;password&#8221;<\/p>\n<p>websocket:<br \/>\n  # Enable web users to send messages to the Minecraft server<br \/>\n  allow-web-to-game-chat: true<br \/>\n  # Formatting for web-to-game messages<br \/>\n  chat-prefix: &#8220;[Web] &#8221;<br \/>\n  prefix-color: &#8220;DARK_PURPLE&#8221;<br \/>\n  message-color: &#8220;LIGHT_PURPLE&#8221;<\/p>\n<p>logging:<br \/>\n  # Enable console logging<br \/>\n  console: true<br \/>\n  # Enable IP logging to a file<br \/>\n  ip: true<br \/>\n  # File name for IP logging<br \/>\n  ip-log-file: &#8220;ips.log&#8221;<br \/>\n&#8220;`<\/p>\n<p>## Commands<\/p>\n<p>&#8211;   `\/portel help` &#8211; Shows the interactive help message.<br \/>\n&#8211;   `\/portel restart` &#8211; Restarts the web server.<br \/>\n    &#8211;   Permission: `portel.restart`<br \/>\n&#8211;   `\/portel reload` &#8211; Reloads the configuration.<br \/>\n    &#8211;   Permission: `portel.reload`<br \/>\n&#8211;   `\/portel version` &#8211; Displays the current version.<br \/>\n&#8211;   `\/portel whitelist <add\/remove\/list\/on\/off> [ip]` &#8211; Manage IP access.<br \/>\n    &#8211;   Permission: `portel.admin`<\/p>\n<p>## Guides<\/p>\n<p>&#8211;   WebSocket Support &#8211; Learn how to use the real-time chat feature.<br \/>\n&#8211;   PlaceholderAPI Support &#8211; Integrate dynamic server information into your web pages.<br \/>\n&#8211;   HTTPS\/SSL Support &#8211; Secure your web server with SSL certificates.<\/p>\n<p>## Building from source<\/p>\n<p>To build the plugin from source, you will need to have Java 21 and Gradle installed.<\/p>\n<p>1.  Clone the repository: `git clone https:\/\/github.com\/Skullmc1\/Portel.git`<br \/>\n2.  Navigate to the project directory: `cd Portel`<br \/>\n3.  Build the plugin: `.\/gradlew shadowJar`<\/p>\n<p>The compiled `.jar` file will be located in the `build\/libs` directory.<\/p>\n<p>## Contributing<\/p>\n<p>Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or create a pull request.<\/p>\n<p>## License<\/p>\n<p>This project is licensed under the MIT License &#8211; see the [LICENSE](LICENSE) file for details.<\/p>\n<div align=\"center\">\n  <img decoding=\"async\" src=\"https:\/\/github.com\/Skullmc1\/Portel\/raw\/main\/images\/ingame.png\" alt=\"Portel Logo\" width=\"800\"\/>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Host a simple website in you&#8217;re minecraft server.<\/p>\n","protected":false},"featured_media":124018,"template":"","meta":{"_minecraft_slug":"portel","_minecraft_project_id":"KXDQZwc3","_minecraft_author":"Qcee","_minecraft_license":"MIT","_minecraft_downloads":77,"_minecraft_follows":3,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"portel.zip","_minecraft_size_bytes":6877105,"_minecraft_version_count":6,"_minecraft_updated_at":"2026-05-15T20:18:59.690608Z","_minecraft_date_created":"2025-11-09T07:37:09.452885Z","_minecraft_date_modified":"2026-03-15T10:47:53.939027Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/portel","_minecraft_icon_attachment_id":124018,"_minecraft_imported_at":"2026-06-07T06:59:32+00:00","_minecraft_import_hash":"2392c571cb3c79c1a92231f9ae4f798a","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,126,127,128,867,129,92],"mod_loader":[130,132,133,134],"minecraft_version":[62,37,40,41,73,74,38,78,79,80,81,82],"class_list":["post-124017","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-management","mod_category-paper","mod_category-purpur","mod_category-social","mod_category-spigot","mod_category-utility","mod_loader-bukkit","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Portel - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/portel\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Portel - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Host a simple website in you&#039;re minecraft server.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/portel\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta property=\"og:image\" content=\"https:\/\/github.com\/Skullmc1\/Portel\/raw\/main\/images\/Heading.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/portel\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/portel\\\/\",\"name\":\"Portel - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/portel\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/portel\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/portel-icon-1c566ddda7d146a64268d2e606d13438e07c1dba_96.webp\",\"datePublished\":\"2026-06-07T06:59:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/portel\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/portel\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/portel\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/portel-icon-1c566ddda7d146a64268d2e606d13438e07c1dba_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/portel-icon-1c566ddda7d146a64268d2e606d13438e07c1dba_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/portel\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Portel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Portel - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/portel\/","og_locale":"en_US","og_type":"article","og_title":"Portel - Minecraft","og_description":"Host a simple website in you're minecraft server.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/portel\/","og_site_name":"Minecraft","og_image":[{"url":"https:\/\/github.com\/Skullmc1\/Portel\/raw\/main\/images\/Heading.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/portel\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/portel\/","name":"Portel - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/portel\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/portel\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/portel-icon-1c566ddda7d146a64268d2e606d13438e07c1dba_96.webp","datePublished":"2026-06-07T06:59:32+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/portel\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/portel\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/portel\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/portel-icon-1c566ddda7d146a64268d2e606d13438e07c1dba_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/portel-icon-1c566ddda7d146a64268d2e606d13438e07c1dba_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/portel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"Portel"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/124017","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/124018"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=124017"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=124017"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=124017"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=124017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}