File:Project_Gutenberg_logo.svg · Wikimedia Commons · See Wikimedia Commons
Also known as PG, Gutenberg, gutenberg.org, Gutenberg Project, Project Gutenberg: Fine Literature Digitally Re-Published
volunteer effort to digitize and archive books
Project Gutenberg is a volunteer effort to digitize and archive books, making them available in digital form. It matters because it preserves written works and provides free public access to literature that might otherwise be difficult or expensive to obtain.
AI-generated from the Wikipedia summary — may contain errors.
This is the source content, database, and other internal files used for building the gutenberg.org website. If you wish to experiment you can develop and run the site on your local machine. latest covers.html is not tracked by git. There are two ways to run a development environment. In either situation, as you edit files, the server should notice and automatically build the changes into the site without a restart. There is a Docker environment that requires no installation or dependencies (aside from Docker itself). Make sure your gutenbergsite directory is shared with Docker ( [settings] Resources File sharing ) Then run this: If you are new to Github and git repositories, please first read the Github Quick Start guide. We use Jekyll to convert pages from github-flavored markdown to HTML, applying our styles. The static files are generated directly on the Project Gutenberg site. Use the designated username to edit files and generate the site. To make it easier to track where things are, we use the same structure and filenames as the live site. For example, site/about/index.md will correspond to about/index.html for the live site. However, the actual filename and path is in the markdown file (the first lines at the top of the .md files): Jekyll does not build the directory structure you use, instead it follows the metadata at the top of the markdown files. Use the keep files variable in Jekyll's config.yml for anything that is not part of the gutenbergsite repo but is maintained separately in $BASEDIR/html . This includes symlinks. Anything with usernames, passwords, codes, or other private information should not be added to the gutenbergsite repo. $BASEDIR : the path where we maintain the site. $BASEDIR/gutenbergsite : the git-maintained content $BASEDIR/html : the path on the server that the web server uses as its DOCUMENT ROOT . $BASEDIR/gutenbergdev : corresponding place for the dev server. Most pages for the live site (i.e., under $BASEDIR/html ) should exist under $BASEDIR/gutenbergsite . Any exceptions will be noted in $BASEDIR/gutenbergsite/ config.yml (the Jekyll configuration file). $EBCBIN/cron-jekyll.sh (runs jekyll) This is run hourly by cron. It does not do the git pull. $EBCBIN/dev-jekyll.sh (pulls and runs the dev branch jekyll targeting the dev server directory) $EBCBIN/prod-jekyll.sh (pulls and runs the master branch jekyll targeting the prod server directory) Any changes to files under gutenbergsite should be checked in via git. But please don't edit files on the production server! Changes should be made via github.com Pages that will be converted from markdown to HTML (and have our header/footer added) are in $BASEDIR/gutenbergsite/site (www) or $BASEDIR/gutenbergdev/site (dev). The non-jekyll pages take a few minutes to build. There are more than a hundred pages which query the database and/or process log files: $EBCBIN/make-static-pages (builds non-jekyll pages) This script runs twice a day. $EBCBIN/make-static-pages-dev (does the same for the dev branch targeting the directory used for the dev site) Some of the code that makes the PG website pages was developed as early as 2010, using PHP, Perl and a bit of Python. We are currently building scaffolding to make the page generation and testing less ad hoc and more consistent with modern devops. make-static-pages sets the environment and runs make-by-pages.php from this repo. The "score" pages are made by cron-analog (called by make-static-pages), which uses download data to determine the most popular books. The "Pretty Pictures" page is currently in rehab. It used a google API which was recently turned off, over 12 years after its announced deprecation! This is free and unencumbered software released into the public domain. Read more in the LICENSE file.
~19 min read
Project Gutenberg (PG) is a volunteer effort to digitize and archive cultural works, as well as to "encourage the creation and distribution of eBooks." It was founded in 1971 by American writer Michael S. Hart and is the oldest digital library. Most of the items in its collection are the full texts of books or individual stories in the public domain. All files can be accessed for free under an open format layout, available on almost any computer. As of 22 March 2026, Project Gutenberg had reached nearly 78,000 items in its collection of free eBooks.
The releases are available in plain text as well as other formats, such as HTML, EPUB, and MOBI. Most releases are in the English language, but many non-English works are also available. There are multiple affiliated projects that provide additional content, including region- and language-specific works. Project Gutenberg is closely affiliated with Distributed Proofreaders, an Internet-based community for proofreading scanned texts.
Excerpt from the source-code README · 5,746 chars · not written by Vinony
569F-N738: The Project Gutenberg eBook of De Re Metallica, b…
View at Internet Archive →via archive.org
via Wikidata · CC0
via Wikidata sitelinks · CC0
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).