notbugAs an Amazon Associate I earn from qualifying purchases.
Want a good read? Try FreeBSD Mastery: Jails (IT Mastery Book 15)
Ukraine
Some details on the 2023-01-16 website outage.
We just rebooted with several updates: * new HMTLify code * no port maintainer is now highly visible (e.g. https://freshports.org/security/sssd/) * fixed search logic error when using plain/ text details at https://github.com/FreshPorts/freshports/releases/tag/2.2.34
How big is it

It was a few days ago that I was thinking about search engines crawling through this website. I began to wonder just how many web pages there are here. To calculate this total, it's not just a simple matter of counting files on disk. Most of the web pages are created from entries in the database. One recent evening, I started to design a formula to find out how many web pages there are. Roughly. This will not be 100% accurate, but it will be close.

Pages on disk

First, let's count the number of pages on disk:

$ ls *.php | wc -l
67
Number of categories

There is a page for each category:

# select count(*) from categories;
 count
-------
   121
(1 row)
Number of ports

There are ports, and there are deleted ports. I'll show both:

# select count(*) from ports_all where status = 'A';
 count
-------
 58483

# select count(*) from ports_all where status = 'D';
 count
-------
 21986
(1 row)
Number of files in the ports tree

There is a page for each file in the ports tree:

[dan@ngaio:/usr/ports] $ find . | wc -l
163850
[dan@ngaio:/usr/ports] $
Count last performed at Sat, 28 Jan 2023 04:03:00 GMT
Number of commits

There is a page for each commit:

# select count(*) from commit_log;
 count
-------
592854
(1 row)
Number of ports for each commit

For each commit, you can view the files modified by that commit for a particular port:

# select count(*) from commit_log_ports;
 count
-------
1359439
(1 row)
How many days?

For each day, there is a page showing the commits for that day. How many days do we have?

# select count(distinct commit_date) from commit_log;
 count
-------
  8266
(1 row)
How many users?

Each user has a page:

# select count(*) from users;
 count
-------
 14080
(1 row)
How many watch lists?

For each watch list, there is a page:

# select count(*) from watch_list;
 count
-------
 14538
(1 row)
Estimated total

That gives a grand total of 2,233,684 pages. On my last count, that's about 0.027720% of the web pages on Google1

Notes

  • These statistics are updated daily.
  • 1The number of Google pages used in this calculation is 8,058,044,651.
How much diskspace?

The total space used by the FreshPorts database is:

# select pg_database_size('freshports.org');
 pg_database_size
------------------
53,532,418,927
(1 row)

That's bytes...

This value might be easier to parse: 50 GB