A self-hosted mini-PaaS (Platform as a Service) built with Vue/React/Nuxt/Next, Node.js (Fastify/Express/Hono), Docker, and lots of enthusiasm to simplify deployments.
PortForge is an open-source project aiming to provide a simple, self-hosted platform to deploy applications from Git repositories (initially via Dockerfiles, later potentially Buildpacks) onto your own server. It's intended to automate and simplify the process from "code push" to "running application with HTTPS". Inspired by tools like Coolify or Dokku, but started as a learning project with a focus on a specific tech stack.
- Manage Applications/Services
- Deploy directly from Git repositories (via clone + build)
- Support for Dockerfile-based builds
- (Later) Support for Buildpacks (e.g., Nixpacks)
- Automatic Reverse Proxy (Caddy/Traefik) with HTTPS (Let's Encrypt)
- GitHub Integration (OAuth for repo selection, Webhooks for auto-deploy)
- Environment Variable / Secrets Management
- Display build and runtime logs
- Simple User Interface (Vue.js/React/Nuxt/Next)
- Frontend: Vue.js / React / Next / Nuxt with TypeScript
- Backend: Node.js and TypeScript
- Database: MongoDB / PostgreSQL
- Core Technology: Docker
- Reverse Proxy: Caddy (or Traefik)
- Monorepo Management: pnpm Workspaces
- (Planned) Buildpacks: Nixpacks (or Paketo Buildpacks)
- (Planned) Real-time Logs: Socket.IO
🚧 Work in Progress / Alpha 🚧
Caution
PortForge is under active development. Core features are being implemented and may change. Not recommended for productive use!
Note
Instructions will be provided at a later date.
Thanks to all that contributed to the project. Feel free to help and improve.
This project is licensed under the GNU Affero General Public License v3.0.
See the LICENSE file for the full license text.