Skip to content

trainvent/portopener

Repository files navigation

PortOpener

PortOpener is a one-page concept site for a Trainvent startup idea.

The idea: make router port forwarding scriptable for server setup flows, instead of forcing people through router admin panels such as fritz.box and other vendor UIs.

Example command:

sudo order-portforward <router-username> <router-password> <port>/<protocol>

The site is built with vinext and deployed as a static export on GitLab Pages.

Project Purpose

This is not a shipping product page for a released tool.

It presents PortOpener as an idea for:

  • automating port forwarding during server installation
  • simplifying homelab and self-hosted service setup
  • reducing router UI friction for inbound networking tasks
  • expanding later into broader local network automation features

Local Development

Install dependencies:

npm ci

Start the vinext dev server:

npm run dev

Build the static Pages output:

npm run build

Preview the production build with vinext:

npm run start

Legacy Next.js scripts are still available if needed:

npm run dev:next
npm run build:next
npm run start:next

GitLab Pages

GitLab Pages is configured in .gitlab-ci.yml.

The pipeline:

  • installs dependencies with npm ci
  • runs npm run build
  • publishes dist/client

This works because vinext builds the site as a static export for this project.

Important Config

Base Path Note

If this project is deployed on GitLab Pages under a project path instead of a custom domain, you may need to set basePath in next.config.mjs.

Example:

const nextConfig = {
  output: "export",
  basePath: "/portopener-website",
};

export default nextConfig;

If the site is served from its own domain or from a root-level Pages domain, this is usually not necessary.

Contact

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors