Skip to content
Merged
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
45 changes: 37 additions & 8 deletions .github/workflows/deploy-website.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
name: Deploy website

on:
# Always on product-channel and develop pushes so download.data.ts rebuilds when
# beta/stable merges land (those merges often do not touch website/**).
push:
branches:
- develop
paths:
- 'website/**'
- 'wiki/images/**'
- 'docs/api/**'
- 'docs/styles/**'
- 'docs/fonts/**'
- '.github/workflows/deploy-website.yml'
- beta
- stable
pull_request:
branches:
- develop
Expand All @@ -21,6 +18,8 @@ on:
- 'docs/styles/**'
- 'docs/fonts/**'
- '.github/workflows/deploy-website.yml'
# Human-published releases. Actions GITHUB_TOKEN `gh release create` does not
# cascade this event — release.yml also dispatches this workflow after assets.
release:
types: [published]
workflow_dispatch:
Expand Down Expand Up @@ -77,14 +76,44 @@ jobs:
echo "Warning: docs/api missing; API pages will not be published"
fi

# GitHub Pages + VitePress cleanUrls: /download sometimes keeps a stale
# object while /download.html updates. Publish both shapes so the nav link works.
- name: Mirror cleanUrls HTML as index.html
shell: bash
run: |
set -euo pipefail
dist=website/.vitepress/dist
for f in "$dist"/*.html; do
base="$(basename "$f" .html)"
[[ "$base" == "index" || "$base" == "404" ]] && continue
mkdir -p "$dist/$base"
cp -f "$f" "$dist/$base/index.html"
done
# Nested docs pages
if [ -d "$dist/docs" ]; then
find "$dist/docs" -name '*.html' ! -name 'index.html' ! -name '404.html' | while read -r f; do
base="$(basename "$f" .html)"
dir="$(dirname "$f")"
mkdir -p "$dir/$base"
cp -f "$f" "$dir/$base/index.html"
done
fi

- name: Upload Pages artifact
if: github.event_name != 'pull_request'
uses: actions/upload-pages-artifact@v3
with:
path: website/.vitepress/dist

deploy:
if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/develop' || github.event_name == 'release' || github.event_name == 'workflow_dispatch')
if: >
github.event_name != 'pull_request' && (
github.ref == 'refs/heads/develop' ||
github.ref == 'refs/heads/beta' ||
github.ref == 'refs/heads/stable' ||
github.event_name == 'release' ||
github.event_name == 'workflow_dispatch'
)
needs: build
runs-on: ubuntu-latest
permissions:
Expand Down
24 changes: 24 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,13 @@ jobs:
dotnet publish src/Titanium.Inspector/Titanium.Inspector.csproj -c Release -r $rid --self-contained true -o $out
./tools/packaging/bundle-http3-native.ps1 -Rid $rid -PublishDir $out
Copy-Item -Force tools/packaging/THIRD-PARTY-INSPECTOR.txt (Join-Path $out "THIRD-PARTY-INSPECTOR.txt")
Copy-Item -Force src/Titanium.Inspector/Assets/app.ico (Join-Path $out "app.ico")
if ($rid -like 'linux*') {
Copy-Item -Force tools/packaging/linux/install.sh, tools/packaging/linux/uninstall.sh, tools/packaging/linux/TitaniumInspector.desktop.in $out
}
if ($rid -like 'osx*') {
Copy-Item -Force tools/packaging/osx/install-app.sh, tools/packaging/osx/uninstall-app.sh $out
}
if ($IsWindows) {
Compress-Archive -Path "$out/*" -DestinationPath "TitaniumInspector-$rid.zip"
} else {
Expand Down Expand Up @@ -330,6 +337,7 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: write
actions: write
steps:
- uses: actions/checkout@v6
with:
Expand Down Expand Up @@ -444,3 +452,19 @@ jobs:
fi
rm -f "$NOTES_FILE"
fi

- name: Refresh website download links
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_CHANNEL: ${{ needs.resolve-version.outputs.channel }}
run: |
set -euo pipefail
# GITHUB_TOKEN `gh release create` does not fire `release: published` for
# other workflows. Rebuild Pages so download.data.ts sees new zip/MSI assets.
REF=develop
case "$RELEASE_CHANNEL" in
beta) REF=beta ;;
stable) REF=stable ;;
esac
echo "Dispatching deploy-website.yml --ref $REF (channel=$RELEASE_CHANNEL)"
gh workflow run deploy-website.yml --ref "$REF"
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -231,4 +231,6 @@ website/.vitepress/cache/

# HTTP/3 native download cache (CI / local packaging)
tools/packaging/.cache/
# WiX extension cache from `dotnet wix extension add`
tools/packaging/wix/.wix/

6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ A lightweight, high-performance HTTP(S) proxy — reverse / edge CLI, desktop In
| **Titanium.Cli** (`titanium` / `twp`) | Standalone reverse / edge proxy for any stack: `run`, `test`, `version`, `update` | [Download (Windows, Linux & Mac)](https://titaniumproxy.com/download#cli) |
| **Titanium Inspector** | Desktop MITM debugger (session grid, inspectors, AutoResponder, breakpoints, HAR) | [Download (Windows, Linux & Mac)](https://titaniumproxy.com/download#inspector) |
| **Titanium.Plus** | Optional advanced features: control plane, ops, observability, and dashboard | After installing CLI, run `titanium update --plus` |
| **Titanium.Web.Proxy** | Core library. Embed a MITM and/or reverse proxy in a .NET app | [NuGet](https://www.nuget.org/packages/Titanium.Web.Proxy/7.0.2-beta) (`dotnet add package Titanium.Web.Proxy --prerelease`) |
| **Titanium.Web.Proxy** | Core library. Embed a MITM and/or reverse proxy in a .NET app | [NuGet](https://www.nuget.org/packages/Titanium.Web.Proxy/7.0.3-beta) (`dotnet add package Titanium.Web.Proxy --prerelease`) |

CLI and Plus target reverse-proxy / edge workloads (routing, load balancing, health, discovery) on Windows, Linux, and macOS. Inspector is the MITM debugging product. The Core library is the embed path for .NET. Requires .NET 10 or later.

Expand All @@ -67,7 +67,7 @@ On Windows, **winget is stable-only**:
winget install justcoding121.TitaniumCli
```

For **beta**, download self-contained zips from [Download](https://titaniumproxy.com/download) / [GitHub Releases](https://github.com/justcoding121/titanium-web-proxy/releases) when a product release includes `Titanium.Cli-*.zip` assets (e.g. `v7.0.2-beta`). Extract and run:
For **beta**, download self-contained zips from [Download](https://titaniumproxy.com/download) / [GitHub Releases](https://github.com/justcoding121/titanium-web-proxy/releases) when a product release includes `Titanium.Cli-*.zip` assets (e.g. `v7.0.3-beta`). Extract and run:

```shell
titanium run -c twp.yaml
Expand All @@ -82,7 +82,7 @@ Optional Plus: run `titanium update --plus` (add `--channel beta` for prerelease

### Titanium Inspector

Prefer [Download](https://titaniumproxy.com/download). On Windows, winget id `justcoding121.TitaniumInspector` is **stable-only**; MSI / portable zip for beta come from the product `v*` release (e.g. `v7.0.2-beta`). Start interception from the Capture menu, install the root CA, then toggle system proxy.
Prefer [Download](https://titaniumproxy.com/download). On Windows, winget id `justcoding121.TitaniumInspector` is **stable-only**; MSI / portable zip for beta come from the product `v*` release (e.g. `v7.0.3-beta`). Start interception from the Capture menu, install the root CA, then toggle system proxy.

## Quick start

Expand Down
2 changes: 1 addition & 1 deletion src/Titanium.Cli/Titanium.Cli.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<SignAssembly>false</SignAssembly>
<VersionPrefix>7.0.2</VersionPrefix>
<VersionPrefix>7.0.3</VersionPrefix>
<Authors>Jehonathan Thomas</Authors>
<Description>Titanium Web Proxy CLI (titanium / twp).</Description>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
Expand Down
Loading
Loading