{"id":23100417,"url":"https://github.com/marksowell/kali-linux-to-digitalocean","last_synced_at":"2026-01-30T03:47:46.574Z","repository":{"id":259379501,"uuid":"877713880","full_name":"marksowell/Kali-Linux-to-DigitalOcean","owner":"marksowell","description":"A GitHub Action to convert the Kali Linux Generic Cloud Image and upload it to Custom Images in DigitalOcean.","archived":false,"fork":false,"pushed_at":"2024-10-25T03:40:09.000Z","size":38,"stargazers_count":3,"open_issues_count":0,"forks_count":11,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T08:45:56.691Z","etag":null,"topics":["digitalocean","digitalocean-api","kali","kali-linux"],"latest_commit_sha":null,"homepage":"","language":null,"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/marksowell.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":"2024-10-24T05:49:11.000Z","updated_at":"2025-01-24T05:15:46.000Z","dependencies_parsed_at":"2024-10-26T15:18:26.771Z","dependency_job_id":null,"html_url":"https://github.com/marksowell/Kali-Linux-to-DigitalOcean","commit_stats":null,"previous_names":["marksowell/kali-generic-cloud-image-to-digitalocean","marksowell/kali-linux-to-digitalocean"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marksowell%2FKali-Linux-to-DigitalOcean","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marksowell%2FKali-Linux-to-DigitalOcean/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marksowell%2FKali-Linux-to-DigitalOcean/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marksowell%2FKali-Linux-to-DigitalOcean/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marksowell","download_url":"https://codeload.github.com/marksowell/Kali-Linux-to-DigitalOcean/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247078799,"owners_count":20879950,"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":["digitalocean","digitalocean-api","kali","kali-linux"],"created_at":"2024-12-16T23:32:36.209Z","updated_at":"2026-01-30T03:47:41.556Z","avatar_url":"https://github.com/marksowell.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kali Linux to DigitalOcean\n\nThis GitHub Action automates the process of downloading, converting, and uploading the latest **Kali Linux Generic Cloud Image** to **Custom Images in DigitalOcean**.\n\n## Features\n\n- Automatically downloads the latest Kali Linux Generic Cloud Image.\n- Converts and compresses the image for compatability with DigitalOcean.\n- Uploads the compressed image to DigitalOcean's Custom Images using the DigitalOcean API.\n- Versioning is maintained and incremented automatically for each upload.\n\n## Usage\n\n### 1. Fork the Repository\n\n1. Click the **Fork** button at the top of the GitHub repository page.\n2. Once forked you can use it directly from your account.\n\n### 2. Secrets Setup\n\nYou'll need to create the following secrets in your forked repository for the action to work:\n\n1. **`DIGITALOCEAN_ACCESS_TOKEN`**: Your DigitalOcean API token. You can generate it in your DigitalOcean API settings.\n    1. Create A New Personal Access Token and give the token a name.\n    2. Choose **Custom Scopes** then the only scope needed is **Image \u003e Create**.\n2. **`REGION`**: The DigitalOcean region where you'd like the image to be uploaded (e.g., `nyc3`, `sfo3`, etc.). The valid region slugs are listed in the DigitalOcean API documentation.\n\nTo add these secrets:\n\n1. Go to your forked repository on GitHub.\n2. Navigate to **Settings** \u003e **Secrets and variables** \u003e **Actions**.\n3. Click **New repository secret** and add `DIGITALOCEAN_ACCESS_TOKEN` and `REGION`.\n\n### 3. Workflow Permissions\n\nOnce you fork the repository, you'll need to update your **workflow permissions** to allow the action to commit and push changes:\n\n1. Go to **Settings \u003e Actions \u003e General** in your forked repository.\n2. Under **Workflow permissions**, select **\"Read and write permissions\"**.\n3. Check the box for **\"Allow GitHub Actions to create and approve pull requests\"**.\n\n### 4. Running the Workflow\n\nOnce your secrets and workflow permissions are set, you can manually trigger the workflow:\n\n1. Navigate to the **Actions** tab of your repository.\n2. Select **Kali Linux to DigitalOcean** from the left-hand sidebar.\n3. Click **Run workflow** under the **workflow_dispatch** section.\n\n\u003e [!WARNING]  \n\u003e **DigitalOcean Processing**: Occasionally, DigitalOcean's backend can take longer to process and validate the image, especially during peak times. It may take up to 10 minutes or more for the image to be marked as **Available**. If the image remains stuck in **Pending**, delete the image in DigitalOcean and try again, or try changing the region. To change the region, update the `REGION` secret in your GitHub repository to a different valid region (e.g., `nyc3`, `sfo3`).\n\n\u003e [!TIP]\n\u003e After the workflow completes, you can manually upload the `disk.raw.gz` file in the release files to DigitalOcean. This is useful if you want to manually upload the image without rerunning the workflow:\n\u003e\n\u003e 1. Go to **Backups \u0026 Snapshots** \u003e **Custom Images** in the DigitalOcean dashboard.\n\u003e 2. Choose **Import via URL** and provide the release URL for the `disk.raw.gz` file from your GitHub repository.\n\n## Creating a Droplet from the Custom Image\n\nAfter the image is available in DigitalOcean, you can create a droplet from it:\n\n1. Go to **Droplets** in your DigitalOcean dashboard.\n2. Select **Create Droplet**.\n3. Under **Choose an image**, select **Custom Images**.\n4. Select the Kali Linux image you uploaded.\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarksowell%2Fkali-linux-to-digitalocean","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarksowell%2Fkali-linux-to-digitalocean","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarksowell%2Fkali-linux-to-digitalocean/lists"}