The Official Command Line Interface and Scaffolding Engine for Webiu Community Portals.
Webiu is an open-source community portal platform designed to help organizations showcase open-source projects, display member portfolios, coordinate Google Summer of Code (GSoC) activities, manage publications, and aggregate community contributions.
The platform is architected as a fullstack monorepo consisting of:
- Frontend Interface (
webiu-ui): Built with modern Angular, providing responsive layouts, theme accent customization, dynamic component rendering, and client-side data binding. - Backend API Service (
webiu-server): Built with NestJS, offering REST endpoints, GraphQL queries, authentication middleware, and database connectivity.
Setting up a complete community portal manually requires cloning repositories, configuring database connection strings, managing environment variables across client and server environments, and setting up Docker containers.
The create-webiu CLI automates this end-to-end workflow into an interactive prompt wizard that scaffolds, builds, configures, and deploys your custom Webiu portal within minutes.
Follow these instructions to create and launch a new Webiu portal on your local machine.
Install the CLI globally on your system using npm:
npm install -g create-webiuRun the interactive setup wizard:
webiu initAlternatively, specify a target directory name directly:
webiu init --name my-community-portalDuring initialization, the CLI will guide you through an interactive setup wizard in your terminal:
- Project Directory Name: Name of the folder where the portal will be generated.
- Organization Name: The display name of your organization.
- Organization Type: Choose from Open Source Community, Non-Profit Organization, Startup / Personal Project, or Custom / Blank Setup.
- GitHub Organization / Username: GitHub handle used to pull repository metadata and contributors automatically.
- Database Strategy: Select between Local Docker PostgreSQL container (automatic setup) or Remote PostgreSQL URL.
- Theme Accent Color: Choose a primary branding color swatch (Ocean Blue, Emerald Green, Deep Purple, Sunset Crimson, Amber Gold, or Rose Pink).
- Navbar Section Selector: Interactively check which portal sections to enable (Projects, Publications, Contributors, Community, Opportunities, GSoC).
- Admin Setup: Configure administrator account credentials.
cd my-community-portalInstall required node modules for both the frontend UI and backend server:
cd webiu-server && npm install && cd ../webiu-ui && npm install && cd ..Launch both frontend and backend development servers concurrently:
webiu devOnce running, access your local application at:
- Frontend Application UI: http://localhost:4200
- Backend API Service: http://localhost:5050 (or http://localhost:3000)
If you prefer not to install the CLI globally, execute any command directly using npx:
npx create-webiu init # Replaces: webiu init
npx create-webiu dev # Replaces: webiu dev
npx create-webiu build # Replaces: webiu build
npx create-webiu config # Replaces: webiu config
npx create-webiu deploy # Replaces: webiu deploy
npx create-webiu docker:up # Replaces: webiu docker:up
npx create-webiu docker:down # Replaces: webiu docker:down
npx create-webiu help # Replaces: webiu helpThe CLI operates through a structured four-phase pipeline:
┌───────────────────────────────────────────────────────────────────────────────────┐
│ 1. INITIALIZATION PHASE (webiu init) │
│ - Interactive terminal prompt wizard collects portal parameters │
│ - Displays real-time live configuration summary card │
└───────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────┐
│ 2. SCAFFOLDING & INJECTION PHASE │
│ - Clones repository structure and template files │
│ - Injects root .env, webiu-server/.env, and webiu-ui/src/assets/config.json │
│ - Configures database credentials and theme accent styling │
└───────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────┐
│ 3. DEVELOPMENT & TESTING PHASE (webiu dev / webiu docker:up) │
│ - Validates database connectivity and Docker container status │
│ - Concurrently runs Angular (port 4200) and NestJS (port 5050) with hot reload │
└───────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────────────────────────────┐
│ 4. DEPLOYMENT PHASE (webiu deploy) │
│ - Scaffolds tailored Infrastructure-as-Code manifests │
│ - Supports Render, Railway, Vercel, and Production Docker Compose │
└───────────────────────────────────────────────────────────────────────────────────┘
Usage: webiu [command] [options]
Commands:
init Interactively initialize a new Webiu portal project
dev Start local development servers (Frontend + Backend concurrently)
build Build production assets for both webiu-ui and webiu-server
config Re-configure organization metadata, branding, DB, or admin credentials
deploy Launch interactive deployment generator for Render, Railway, Vercel, or Docker
docker:up Start local Docker containers (PostgreSQL database)
docker:down Stop and remove local Docker containers
help Display detailed command usage and instructions
Options:
-V, --version Output the current CLI version
-h, --help Display help information
Initializes a new Webiu portal application. Displays an interactive terminal setup wizard with real-time live summary updates and generates the project structure with configured environment files.
Executes pre-flight checks (database connectivity and Docker daemon state) and starts both Angular frontend (http://localhost:4200) and NestJS backend (http://localhost:5050) in parallel using hot-reloading development servers.
Triggers production compilation for both webiu-ui and webiu-server, placing optimized build artifacts ready for production deployment.
Launches the re-configuration utility on an existing Webiu project. Allows updating organization details, theme accent colors, active navbar sections, database connection settings, and admin passwords without re-cloning or re-scaffolding.
Generates platform-specific Infrastructure-as-Code deployment configurations based on interactive prompts.
Supported Deployment Targets:
- Render: Generates
render.yamlblueprint file for single-click fullstack web service and database deployment. - Railway: Generates
railway.jsoninfrastructure configuration. - Vercel + Render Hybrid: Generates
vercel.jsonfor hosting the Angular frontend on Vercel while connecting to NestJS hosted on Render. - Self-Hosted Docker: Generates
docker-compose.prod.ymlconfigured with an Nginx reverse proxy and containerized PostgreSQL database.
Spins up local PostgreSQL database containers in detached mode using Docker Compose.
Stops and removes local Docker database containers.
- Creator and Lead Architect: Tarunya Kesharwani
- Maintainer Organization: Ceylon Computer Science Institute (C2SI)
This project is licensed under the MIT License. See the LICENSE file for details.
