{"id":27751,"library":"fontello-server","title":"fontello-server","description":"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.","status":"maintenance","version":"1.1.29","language":"javascript","source_language":"en","source_url":"git://github.com/jameskyburz/fontello-server","tags":["javascript","fonts","fontello","server-base","leveldb","cdn"],"install":[{"cmd":"npm install fontello-server","lang":"bash","label":"npm"},{"cmd":"yarn add fontello-server","lang":"bash","label":"yarn"},{"cmd":"pnpm add fontello-server","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Used to mount LevelDB for file system-like access.","package":"leveldb-mount","optional":false}],"imports":[{"note":"This is a CommonJS module; ESM import will fail.","wrong":"import server from 'fontello-server'","symbol":"server","correct":"const server = require('fontello-server')"},{"note":"Exposes .start() method to launch the server.","wrong":"server()","symbol":"start","correct":"server.start()"},{"note":"No default export; use require to get the whole module.","wrong":"import fontelloServer from 'fontello-server';","symbol":"default export","correct":"const fontelloServer = require('fontello-server');"}],"quickstart":{"code":"const server = require('fontello-server');\n\nserver.start({\n  port: 2016,\n  dbPath: './data',\n  replCredentials: process.env.REPL_CREDENTIALS || ''\n});\n\nconsole.log('fontello-server running on http://localhost:2016');","lang":"javascript","description":"Starts the fontello server on port 2016 with a local LevelDB store."},"warnings":[{"fix":"Consider migrating to an alternative font hosting solution or maintaining a fork.","message":"Package has not been updated in years (last release 1.1.29). LevelDB and dependencies may have vulnerabilities.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Use Docker's -p option to map external port to 2016, or set environment variable PORT (if supported).","message":"The server only runs on port 2016 by default; cannot be changed without using Docker port mapping or modifying the code.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use curl -s to get the hash directly, or wrap in a script to capture output.","message":"Uploading config.json via curl returns only the hash, not a JSON response. Some users expect JSON.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Rebuild the Docker image or use a newer base image. Or avoid Docker usage entirely.","message":"Docker images are tagged with Node version (e.g., 6.9-alpine), which are outdated and insecure.","severity":"gotcha","affected_versions":">0.0.0"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Install leveldown: npm install leveldown","cause":"Missing native dependency for LevelDB.","error":"Error: Cannot find module 'leveldown'"},{"fix":"Stop the other process or change the port using Docker port mapping.","cause":"Port 2016 is already in use by another process.","error":"Error: listen EADDRINUSE :::2016"},{"fix":"Start the server with `npm start` or using `node .` from the installation directory.","cause":"The fontello-server is not running.","error":"Error: connect ECONNREFUSED 127.0.0.1:2016"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}