About
This site is a collection of free and open-source man pages. Its purpose is to provide convenient and stable access to man page content. For example, it has man pages for several distributions, it has permalinks, it interlinks man pages in various ways and allows linking into a specific line or section of a man page.
Contact
This page and the software behind this site is written by Georg Sauthoff. Don't hesitate to contact me if you have comments, questions or suggestions about this site.
Features
Selected features of this site:
- Permalinks - each man page shows a permalink which is a stable reference to its content. This is useful when citing a man page or parts of it. Stable means that you get the exact same content even if newer versions of that man page source are imported, either when a new distribution version is added or when an updated package (that provides the man page) is added.
- Short links - short links are easy to construct and
thus can be used for direct access to a man page. For example, to access the
strcopy()man page in Fedora 29: /f29/3/strcpy — or to access theopenman page in the highest prioritized section: /f29/open - Overview pages - there are pages that list all the section of a distribution or all the pages inside a section, such as /f29/3 (all pages in Section 3 in Fedora 29) and /f29 (all sections in Fedora 29). This allows for better indexing and quick in-browser searches.
- Inter-section links - for some names there are man pages in multiple sections. Since sometimes it's easy to end up in the wrong section or to be surprised that there are other man pages of the same name in other sections the navigation column contains links to man pages of the same name in other sections.
- Inter-distribution links - there also links between man pages of the same name in other distributions. This might be convenient to quickly check the availability of an API in another system or distribution version.
- Reverse-links - i.e. what links here
- Responsive layout - the HTML pages use CSS Flexible Box layout such that the man pages are decently viewable on different screen sizes, e.g. also on smartphones.
- No JavaScript - omitting JavaScript helps with load times and saves some cycles on the client side. Some frontend frameworks come with some good design defaults, an easy to use grid and responsive design but add some hundred kilobytes including some JavaScript. The JavaScript might be there for some extra features or to implement responsive layout in legacy browsers. Thus, there are basically only downsides on using JavaScript in a site like this.
Technology Stack
The site's content is stored in a Postgresql database. The loader
that imports man pages into the database is written in Python,
using SQLAlchemy Core expressions for database operations.
The actual site software is written in Go, using just the
pq Postgres driver
and the gziphandler package as
non-standard dependencies. That means the Go code implements a
HTTP server (using net/http) that implements
a URL multiplexer, selects from the database and executes
some nested Go HTML templates.
The Go server is put behind an
NGINX reverse proxy such
that
popular pages are served from a cache and to allow for seamless updates.
See Also
- Announcing MANPATH.be (2019-06-07) - a Blog article by the creator of this site that gives some perspective on the motivation behind this project and its execution.
- History of UNIX Manpages
- The obligatory xkcd comics: RTFM, Manuals and Man Page
Related Services
There are many browsable man page repositories available. The following details some of the differences of the more popular ones with this site.
All of the compared sites are missing some semi-advanced features like permalinks, inter