CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-verdaccio

A lightweight private npm proxy registry application with comprehensive package management, authentication, and web interface capabilities

Pending
Overview
Eval results
Files

server-management.mddocs/

Server Management

Core server creation and lifecycle management for running Verdaccio programmatically or via CLI.

Capabilities

Primary Server Factory

Creates a Verdaccio server instance for programmatic usage with flexible configuration options.

/**
 * Primary server factory function for programmatic usage
 * @param config - Configuration file path (string) or undefined for default configuration
 * @returns Promise resolving to HTTP/HTTPS server instance ready to listen
 */
function runServer(config?: string): Promise<any>;

Usage Examples:

import { runServer } from "verdaccio";

// Default configuration (looks for config.yaml in current directory)
const server = await runServer();
server.listen(4873, () => {
  console.log("Verdaccio started on http://localhost:4873");
});

// Custom configuration file
const serverFromFile = await runServer("./custom-config.yaml");
serverFromFile.listen(5000);

// Absolute path to configuration
const serverFromAbsPath = await runServer("/etc/verdaccio/config.yaml");
serverFromAbsPath.listen(4873);

Legacy Server Bootstrap

Legacy function for starting Verdaccio server (deprecated in favor of runServer).

/**
 * Legacy server bootstrap function (deprecated, use runServer instead)
 * @param config - Configuration object
 * @param cliListen - Listen address from CLI arguments
 * @param configPath - Path to configuration file
 * @param pkgVersion - Package version string
 * @param pkgName - Package name string
 * @param callback - Callback function called for each listen address
 */
function startVerdaccio(
  config: any,
  cliListen: string,
  configPath: string,
  pkgVersion: string,
  pkgName: string,
  callback: Callback
): void;

interface Callback {
  (webServer: any, addr: any, pkgName: string, pkgVersion: string): void;
}

Default Listen Callback

Default callback implementation for server listening (used with legacy startVerdaccio).

/**
 * Default callback implementation for server listening (deprecated)
 * @param webServer - Express application instance
 * @param addr - Listen address configuration
 * @param pkgName - Package name
 * @param pkgVersion - Package version
 */
function listenDefaultCallback(
  webServer: Application,
  addr: any,
  pkgName: string,
  pkgVersion: string
): void;

Server Factory Creation

Low-level server factory for creating HTTP/HTTPS server instances.

/**
 * Create HTTP/HTTPS server instance based on configuration
 * @param config - Verdaccio configuration object
 * @param addr - Address configuration object
 * @param app - Express application instance
 * @returns HTTP or HTTPS server instance
 */
function createServerFactory(config: Config, addr: any, app: any): any;

Experiments Display

Utility function for displaying experimental features information.

/**
 * Display information about enabled experimental features
 * @param flags - Experimental features configuration object
 */
function displayExperimentsInfoBox(flags: any): void;

Error Handling

Server management functions handle various error conditions:

  • Configuration errors: Invalid or missing configuration files
  • Port binding errors: Port already in use or permission issues
  • HTTPS certificate errors: Invalid certificate files or configuration
  • Storage initialization errors: Storage directory creation or permission issues

All server factory functions will throw descriptive errors for configuration and startup issues.

HTTPS Support

Verdaccio supports HTTPS with two configuration methods:

  1. Key and Certificate files:
const server = await runServer({
  https: {
    key: "/path/to/private.key",
    cert: "/path/to/certificate.crt",
    ca: "/path/to/ca.crt" // optional
  }
});
  1. PFX certificate:
const server = await runServer({
  https: {
    pfx: "/path/to/certificate.pfx",
    passphrase: "certificate-password" // optional
  }
});

Server Configuration

Key configuration options for server management:

  • listen: Host and port binding configuration
  • https: HTTPS certificate configuration
  • server.keepAliveTimeout: Keep-alive timeout in seconds
  • server.trustProxy: Trust proxy headers configuration

Install with Tessl CLI

npx tessl i tessl/npm-verdaccio

docs

cli.md

configuration.md

http-api.md

index.md

server-management.md

utilities.md

tile.json