Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/skirk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Skirk Proxy

on:
schedule:
- cron: '0 */5 * * *'
workflow_dispatch:

jobs:
skirk:
runs-on: ubuntu-latest
timeout-minutes: 350

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install skirk
run: |
curl -fsSL https://github.com/ShahabSL/Skirk/releases/latest/download/skirk-linux-amd64.tar.gz -o /tmp/skirk.tar.gz
mkdir -p /tmp/skirk-extract
tar -xzf /tmp/skirk.tar.gz -C /tmp/skirk-extract
sudo mv /tmp/skirk-extract/skirk /usr/local/bin/skirk

- name: Run skirk exit
run: |
echo '${{ secrets.EXIT_JSON }}' > /tmp/exit.json
skirk serve-exit --config /tmp/exit.json &

- name: Run skirk client
run: |
skirk serve-client --config '${{ secrets.CLIENT_SKIRK }}' --listen 127.0.0.1:18080 &
sleep infinity
104 changes: 104 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,110 @@ Each additional instance uses its own generated kit directory, service name,
Google OAuth/Drive mailbox, proxy settings, cleanup flow, and performance
tuning.

# SkirkUsingWorkflow

This repository shows how to set up and run a Skirk workflow using GitHub Actions and GitHub Codespaces.

<img width="1110" height="570" alt="image" src="https://github.com/user-attachments/assets/7cb3d1a5-c798-43ae-b542-e94b25d4aea7" />


## Requirements

* A GitHub account
* Access to GitHub Codespaces
* A private GitHub repository for the initial setup
* The Skirk client application

## Phase 1 — Initial Setup in GitHub Codespaces

1. Create or use a **private GitHub repository**.

2. Open the repository in **GitHub Codespaces**.

3. Follow the setup instructions from the following project:

Skirk Repository: [https://github.com/ShahabSL/Skirk](https://github.com/ShahabSL/Skirk)

4. After the setup is completed, download the `skirk-kit` folder.

5. Keep the following files from the folder:

* `client.json`
* `client.skirk`
* `exit.json`

---

## Phase 2 — Create the Workflow Repository

1. Create a new **public GitHub repository**.

2. You can use a name such as `SkirkUsingWorkflow`.

3. Open your repository and go to:

`Settings` → `Secrets and variables` → `Actions`

4. Create the following **Repository Secrets**:

### 1. CLIENT_JSON

* Name: `CLIENT_JSON`
* Value: Copy and paste the contents of `client.json`

### 2. CLIENT_SKIRK

* Name: `CLIENT_SKIRK`
* Value: Copy and paste the contents of `client.skirk`

### 3. EXIT_JSON

* Name: `EXIT_JSON`
* Value: Copy and paste the contents of `exit.json`

---

## Phase 3 — Add the GitHub Actions Workflow

1. In your `SkirkUsingWorkflow` repository, go to:

`Code` → `Add file` → `Create new file`

2. Create the following file:

```text
.github/workflows/skirk.yml
```

3. Copy the workflow content provided by this project into the file.
4. Commit and save the changes.

---

## Phase 4 — Run the Workflow

1. Open the `Actions` tab in your repository.
2. Select the workflow named `Skirk Proxy`.
3. Click `Run workflow`.

---

## Phase 5 — Use the Generated Client Configuration

1. Download and install the Skirk client application from:

Skirk Releases: [https://github.com/ShahabSL/Skirk/releases](https://github.com/ShahabSL/Skirk/releases)

2. Copy the generated Skirk client configuration into the application.

**Note: Disable the workflow whenever you do not need to run it using Skirk**
---

## Credits

Special thanks to ["people","ShahabSL","Creator of the Skirk project"] for creating the Skirk project.


## Documentation

- [Install Guide](docs/install.md)
Expand Down