{"id":21999967,"url":"https://github.com/rexlmanu/pterodactyl-upload-action","last_synced_at":"2025-06-21T16:38:16.741Z","repository":{"id":170205515,"uuid":"646321342","full_name":"rexlManu/pterodactyl-upload-action","owner":"rexlManu","description":"A GitHub Action for efficient multi-server file uploads to Pterodactyl with proxy support.","archived":false,"fork":false,"pushed_at":"2023-11-15T02:53:30.000Z","size":599,"stargazers_count":21,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-25T12:12:17.656Z","etag":null,"topics":["artifacts","deployment","github-actions","pterodactyl","upload"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rexlManu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-28T02:24:22.000Z","updated_at":"2025-03-02T02:44:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"9a2b780c-4297-4779-848d-d3930c90734e","html_url":"https://github.com/rexlManu/pterodactyl-upload-action","commit_stats":null,"previous_names":["rexlmanu/pterodactyl-upload-action"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexlManu%2Fpterodactyl-upload-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexlManu%2Fpterodactyl-upload-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexlManu%2Fpterodactyl-upload-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexlManu%2Fpterodactyl-upload-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rexlManu","download_url":"https://codeload.github.com/rexlManu/pterodactyl-upload-action/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251811706,"owners_count":21647755,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artifacts","deployment","github-actions","pterodactyl","upload"],"created_at":"2024-11-29T23:09:05.349Z","updated_at":"2025-05-01T02:25:14.270Z","avatar_url":"https://github.com/rexlManu.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pterodactyl Upload Action\n\n![GitHub release (latest by date)](https://img.shields.io/github/v/release/rexlmanu/pterodactyl-upload-action)\n![GitHub](https://img.shields.io/github/license/rexlmanu/pterodactyl-upload-action)\n\nThis GitHub Action allows you to upload files to multiple Pterodactyl servers with just one action, featuring socket support.\n\n## Usage\n\n## Api Key\n\nYou have to create a client api key in the pterodactyl panel. You can do this in the panel under `Account` -\u003e `API Credentials`.\n\n### Inputs\n\n1. `panel-host`: (**Required**) The host URL of the Pterodactyl panel.\n2. `api-key`: (**Required**) The API key for the Pterodactyl panel.\n3. `server-id`: ID of the target server.\n4. `server-ids`: IDs of the target servers (multiline).\n5. `source`: Source file to be uploaded.\n6. `sources`: Source files to be uploaded (multiline).\n7. `target`: Destination of the file on the server. Can be a file name (for a single source) or a directory name ending with a slash (for multiple files).\n8. `proxy`: Proxy to be used for upload (username:password@host:port).\n\nAll file inputs support glob patterns.\n\n### Example Workflow Configuration\n\n```yaml\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    name: Deploy to Pterodactyl\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n      - run: echo \"Hello world\" \u003e hello.txt\n      - uses: rexlmanu/pterodactyl-upload-action@v2.1\n        with:\n          panel-host: ${{ secrets.PANEL_HOST }}\n          api-key: ${{ secrets.API_KEY }}\n          server-id: \"5f095019\"\n          #   server-ids: |\n          #     5f095019\n          #     7f095019\n          source: \"hello.txt\"\n          #   sources: |\n          #     hello.txt\n          #     hello2.txt\n          target: \"./\"\n          # If you want to restart the servers after successful upload\n          # restart: true\n          # If you want to decompress the files after successful upload\n          # decompress-target: true\n```\n\n## File Decompression\n\n`decompress-target` allows decompression of archive files (`.zip, .tar, .tar.gz, .tgz, .rar`) after they are uploaded to the server. If you have multiple targets, it will decompress all valid compressed ones. If this option is not provided or set to false, files will be uploaded as is, without decompression.\n\nThe archive will be deleted after decompression.\n\n### Multiple File/Server Example\n\nUncomment lines for `server-ids`, `sources`, and `proxy` in the above example as necessary.\n\n## Configuration File\n\nAn optional `.pterodactyl-upload.json` file can be created in the root of your repository to define server(s), source file(s), and the target.\n\n### Example Configuration File\n\n```json\n{\n  \"server\": \"5f095019\",\n  \"servers\": [\"5f095019\", \"7f095019\"],\n  \"source\": \"hello.txt\",\n  \"sources\": [\"hello.txt\", \"hello2.txt\"],\n  \"target\": \"./\"\n}\n```\n\n#### Multiple different targets\n\nIf you need different targets for each file, you can provide a list of targets.\n\n```json\n{\n  \"targets\": {\n    \"source\": \"hello.txt\",\n    \"target\": \"./\"\n  }\n}\n```\n\n## License\n\nPterodactyl Upload Action is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frexlmanu%2Fpterodactyl-upload-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frexlmanu%2Fpterodactyl-upload-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frexlmanu%2Fpterodactyl-upload-action/lists"}