fontello-server

raw JSON →
1.1.29 verified Sat May 09 auth: no javascript maintenance

A self-hosted CDN server for Fontello icon fonts, currently at version 1.1.29. It allows uploading Fontello zip files and config.json via drag-and-drop or HTTP API, then serves the fonts at hashed URLs. Fonts are persisted in LevelDB. It runs on port 2016 and supports Docker deployment. Compared to using Fontello directly, this provides offline/local hosting, versioning via hashes, and a simple API for integration into CI/CD pipelines. The project appears to be in maintenance mode with no recent updates.

error Error: Cannot find module 'leveldown'
cause Missing native dependency for LevelDB.
fix
Install leveldown: npm install leveldown
error Error: listen EADDRINUSE :::2016
cause Port 2016 is already in use by another process.
fix
Stop the other process or change the port using Docker port mapping.
error Error: connect ECONNREFUSED 127.0.0.1:2016
cause The fontello-server is not running.
fix
Start the server with npm start or using node . from the installation directory.
deprecated Package has not been updated in years (last release 1.1.29). LevelDB and dependencies may have vulnerabilities.
fix Consider migrating to an alternative font hosting solution or maintaining a fork.
gotcha The server only runs on port 2016 by default; cannot be changed without using Docker port mapping or modifying the code.
fix Use Docker's -p option to map external port to 2016, or set environment variable PORT (if supported).
gotcha Uploading config.json via curl returns only the hash, not a JSON response. Some users expect JSON.
fix Use curl -s to get the hash directly, or wrap in a script to capture output.
gotcha Docker images are tagged with Node version (e.g., 6.9-alpine), which are outdated and insecure.
fix Rebuild the Docker image or use a newer base image. Or avoid Docker usage entirely.
npm install fontello-server
yarn add fontello-server
pnpm add fontello-server

Starts the fontello server on port 2016 with a local LevelDB store.

const server = require('fontello-server');

server.start({
  port: 2016,
  dbPath: './data',
  replCredentials: process.env.REPL_CREDENTIALS || ''
});

console.log('fontello-server running on http://localhost:2016');