Skip to content

Nil369/SkyPort

Repository files navigation

SKY_PORT_LOGO_BANNER_1

SkyPort

The Lightweight Developer Cloud OS

Self-hosted infrastructure for developers who want a calm, modern control plane on a small VPS—without sacrificing ambition.

Modern infrastructure management with:

  • Browser terminal
  • File manager
  • Git deployments
  • PM2 process management
  • Docker orchestration
  • Real-time monitoring
  • Developer-first UI

Built for small VPS (512MB - 1GB RAM) instances without sacrificing power.

Docker-based workloads are recommended on VPS instances with 2GB+ RAM for the best experience.



📸 Screenshots

Overview Projects
Deployments Docker Management
Code Editor File Explorer
Terminal (Dark) Terminal (Light)
PM2 Process Management Domain Management
System Metrics (CPU) System Metrics (Memory)
Marketplace Marketplace Install
Team Management Cluster / VPS Management
SSH Remote Server Profile Management
Admin Panel
Skyport CLI 🔥 Skyport TUI 🧑‍💻

Tech stack

Layer Technologies
API Go, Fiber, REST, WebSockets (metrics stream)
Data SQLite, GORM
Frontend React, TypeScript, Vite
Metrics gopsutil (host metrics — in development)

Development setup

Prerequisites

  • Go 1.22+
  • Node.js 20+ (or current LTS) and npm for the frontend

Clone the repository and open two terminals (API + UI).


Environment variables

Copy .env.example to backend/.env and adjust values.

Variable Purpose
SKYPORT_HOST / SKYPORT_PORT HTTP bind address
SKYPORT_DB_PATH SQLite file path
SKYPORT_ENV development · production · test
SKYPORT_LOG_LEVEL debug · info · warn · error
SKYPORT_SHUTDOWN_TIMEOUT_SEC Graceful shutdown budget (seconds)
SKYPORT_METRICS_DISK_PATH Optional disk mount for usage stats
JWT_EXPIRES JWT access token TTL in seconds (default 604800 = 7 days)
APP_* / JWT_SECRET Reserved for frontend + future auth alignment

See .env.example for the full list and comments.


Running the backend

cd backend
cp ../.env.example .env   # optional; edit SKYPORT_PORT etc.
go run ./cmd/server

The server prints a local URL (e.g. http://127.0.0.1:<port>/api/v1/health). Ensure the port in the browser matches SKYPORT_PORT.

Swagger UI:

  • http://127.0.0.1:8080/docs/index.html
  • Generate/refresh OpenAPI docs before commits:
cd backend
make docs

Build a binary

cd backend
go build -o bin/skyport-server ./cmd/server
./bin/skyport-server    # Linux/macOS
# bin\skyport-server.exe on Windows

Cross-platform release builds:

cd backend
make build-all               # binaries only
make build-all-with-docs     # regenerate swagger + binaries

Platform scripts:

  • Linux/macOS: GENERATE_DOCS=1 sh ./scripts/build.sh
  • PowerShell: $env:GENERATE_DOCS="1"; ./scripts/build.ps1
  • CMD: set GENERATE_DOCS=1 && scripts\build.bat

Running the frontend

cd frontend
npm install
npm run dev

Vite defaults to its own port (often 5173). The UI is not yet a full dashboard; expect placeholder screens until monitoring and layout land.


💳 Credits

SkyPort is initiated and maintained by Akash Halder (Nil369), Founder of Akash Halder Technologia as the brand home for the project.

Thank you to everyone who files issues, sends patches, and self-hosts early builds—you shape what SkyPort becomes.


📄License

Copyright © Nil369, Founder of Akash Halder Technologia and contributors.

Licensed under the GNU Affero General Public License v3.0. See LICENSE.


🙏 Support the project

If SkyPort saves you time or infra cost:

  • Star the repo and watch releases.
  • Share honest feedback (what hurts on a 512MB box matters).
  • Contribute docs, translations, or code.
  • When Pro/Enterprise exists, consider them if you need commercial licensing or priority support—the community edition remains the AGPL backbone.