portal-connect
Deprecated alias of the portal-connect skill, which moved to the portal-tunnel plugin. Use when the user asks to reach, call,…
Create an Oracle Cloud Infrastructure (OCI) compute instance for a Portal relay, including Always Free Ampere A1 shapes, open the VCN and host firewall for the relay ports, attach a stable public IP, and hand the host to portal-relay for deployment. Use when the user wants to
Claude Code
$ npx -y skills add gosuda/portal-tunnel --skill portal-relay-oracle --agent claude-code
Codex
$ npx skills add gosuda/portal-tunnel --skill portal-relay-oracle -a codex -y
Cursor
$ npx skills add gosuda/portal-tunnel --skill portal-relay-oracle -a cursor -y
Gemini CLI
$ npx skills add gosuda/portal-tunnel --skill portal-relay-oracle -a gemini-cli -y
GitHub Copilot
$ npx skills add gosuda/portal-tunnel --skill portal-relay-oracle -a github-copilot -y
OpenCode
$ npx skills add gosuda/portal-tunnel --skill portal-relay-oracle -a opencode -y
Windsurf
$ npx skills add gosuda/portal-tunnel --skill portal-relay-oracle -a windsurf -y
name: portal-relay-oracle description: Create an Oracle Cloud Infrastructure (OCI) compute instance for a Portal relay, including Always Free Ampere A1 shapes, open the VCN and host firewall for the relay ports, attach a stable public IP, and hand the host to portal-relay for deployment. Use when the user wants to run a Portal relay on Oracle Cloud or OCI, or asks to use an Oracle free-tier VM as a relay. Do not use for a host that already exists (portal-relay), for DNS changes at Cloudflare (portal-relay-cloudflare), or for other clouds. license: MIT
This skill creates and opens the host. `portal-relay` deploys the relay on it. Follow [`../portal-relay/references/provider-contract.md`](../portal-relay/references/provider-contract.md) (the `portal-relay` skill's contract in this same plugin; the path is relative to this file, so it matches the installed version and needs no network) for the phase order, credential rules, and approval rules. This file adds only what is specific to OCI.
When no profile works in this environment, ask the user to run `oci session authenticate --region <region> --profile-name <profile>` on a machine with a browser. The session expires; `oci session refresh --profile <profile>` extends it. Session files created on the user's laptop are not present in a remote sandbox; do not report the session as available there.
Collect and show, then wait for approval:
1. Create the NSG and add rules with `oci network nsg rules add --nsg-id <nsg> --security-rules file://rules.json`; each rule is `direction: INGRESS`, `protocol` `6` (TCP) or `17` (UDP), `source` `0.0.0.0/0` (or the operator's address for SSH), and `tcpOptions`/`udpOptions.destinationPortRange`. 2. Launch: `oci compute instance launch -c <compartment> --availability-domain <ad> --shape <shape> --shape-config <json> --image-id <image> --subnet-id <subnet> --nsg-ids '["<nsg>"]' --assign-public-ip false --ssh-authorized-keys-file <pub> --display-name <name>`, then attach the reserved public IP to the instance's primary private IP. "Out of host capacity" for A1 is common: report it and offer another availability domain or a later retry. Never loop launches without approval. 3. Open the host firewall. OCI Ubuntu images ship iptables rules that reject inbound traffic except SSH, so the NSG alone is not enough. Over SSH, insert `ACCEPT` rules for the same ports before the `REJECT` rule in `/etc/iptables/rules.v4`, apply them, and persist them with `netfilter-persistent save`. Show the exact rules before changing them.
Then continue with the `portal-relay` skill from **Verify the host**, not from **Deploy**: a fresh image may lack Docker and Compose v2, and that step checks and, with approval, installs them. Use this host's public address as the glue address. The NS and glue records come before **Deploy**, at the common skill's **Delegate DNS** step, because the relay's first start needs them to issue its certificate; the DS comes after **Deploy**, at **Publish the DS**. Report the instance, NSG, and reserved IP; whether the shape is inside the Always Free limits; and rollback: `oci compute instance terminate --instance-id <id>` (boot volume handling stated explicitly), then delete the NSG and release the reserved IP.
Expose local services through self-hosted or public relays.No port forwarding. No inbound firewall rules. No manual DNS setup. No accounts.
Deprecated alias of the portal-connect skill, which moved to the portal-tunnel plugin. Use when the user asks to reach, call,…
Deprecated alias of the portal-expose skill, which moved to the portal-tunnel plugin. Use when the user asks to expose, preview,…
Deprecated alias of the portal-relay skill, which moved to the portal-relay plugin. Use when the user asks to run, self-host, or…
Operate a running Portal relay through its admin and policy API - sign in with the relay ADMIN_TOKEN without exposing it, list…
Create an AWS host for a Portal relay - an EC2 instance with a security group and an Elastic IP, or a Lightsail instance with its…
Configure a Cloudflare-hosted parent zone for a Portal relay - the NS delegation of the relay subdomain to the relay's embedded…
Use when running, building, or managing Linux containers on macOS, or when a task involves Docker, docker compose, Lima, Colima,…
Operate FrontendExtension (FE) resources in frontend-forge: create, update, rebuild, inspect package artifacts, download…
Entry point for AI-agent work on AWS: pick a runtime, plan a migration for existing workloads, and build an executable POC — one…
Build, debug, or review Cloudflare Agents SDK applications using the agents package.