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.
Common errors
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. Warnings
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.
Install
npm install fontello-server yarn add fontello-server pnpm add fontello-server Imports
- server wrong
import server from 'fontello-server'correctconst server = require('fontello-server') - start wrong
server()correctserver.start() - default export wrong
import fontelloServer from 'fontello-server';correctconst fontelloServer = require('fontello-server');
Quickstart
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');