Download Latest Version Release v2.0.0 - Changes configuration defaults _ template source code.tar.gz (755.0 kB)
Email in envelope

Get an email when there's a new version of PrivateBin

Home / 2.0.0
Name Modified Size InfoDownloads / Week
Parent folder
PrivateBin-2.0.0.tar.gz.asc 2025-07-28 833 Bytes
PrivateBin-2.0.0.zip.asc 2025-07-28 833 Bytes
README.md 2025-07-28 7.3 kB
Release v2.0.0 - Changes configuration defaults _ template source code.tar.gz 2025-07-28 755.0 kB
Release v2.0.0 - Changes configuration defaults _ template source code.zip 2025-07-28 913.2 kB
Totals: 5 Items   1.7 MB 4

This release changes configuration defaults including switching the template and removing legacy features.

The most notable change is the switch of the default template to bootstrap5. We switched to use the Jdenticons library by default for the comment creator icons, as it doesn't require the GD library. And we changed the user interface to display SI-prefixes instead of binary bytes for data sizes, to be more consistent with sizes displayed in current operating systems, i.e. 1024 bytes now will be displayed as 1.02 kB instead of 1.00 kiB and refer to "documents" instead of "pastes".

The page template and compatibility to pre-v1.3 pastes, including ZeroBin ones, got removed. The v2 paste format which is still currently used, got introduced in release 1.3 in July 2019. This allows dropping further unused database columns, as those were artifacts of the v1 pastes and not used anymore with the v2 ones.

Update procedure

The minimum required PHP version was increased from 7.3 to 7.4.

If you have created your own cfg/conf.php file, please check the following entries and update them accordingly:

  • section [main], key template: If set to page replace this with bootstrap5 or one of the bootstrap variants (see cfg/conf.sample.php).
  • section [main], key icon: If commented and you prefer the look of the blocky identicon over triangular jdenticon, uncomment the value and set it back to identicon.
  • section [model], key class: If set to privatebin_data replace this with Filesystem and if set to privatebin_db or zerobin_db replace this with Database.

If you are using the Database model class and your database user is not privileged to perform schema changes, you have to manually drop the postdate, opendiscussion, burnafterreading, attachment and attachmentname columns of the paste table and the nickname column from the comment table. If you are using SQLite before 3.35.0, which doesn't support dropping columns, you must initialize a new empty database file and either manually migrate the data or start from scratch.

As usual, you can download the archive for a manual upgrade and can find more details in the installation instructions.

We also offer a container images using the nginx web server with php-fpm and one using the nginx unit application server, that include the recommended secure setup with the non-essential files and data outside of the web servers document root.

Optionally, you can use the bin/administration scripts' two new features to check if any v1 pastes still exist on your instance using the --statistics flag and then delete them using the --delete-v1 flag:

$ bin/administration --help
Usage:
  administration [--delete <document id> | --delete-all | --delete-v1 |
                  --empty-dirs | --help | --list-ids | --purge | --statistics]

Options:
[...]
  --delete-v1       deletes all unsupported v1 documents
[...]
  -s, --statistics  reads all stored documents and reports statistics
$ bin/administration --statistics
[... check for lines starting with "Unsupported v1 document " and the conclusion showing any "Legacy v1" ...]
$ bin/administration --delete-v1

Changes since version 1.7.8

  • ADDED: Error logging in database and filesystem backend (#1554)
  • ADDED: Statistics on v1 pastes in administration script and option to delete them
  • CHANGED: Removed page template (#265)
  • CHANGED: Removed support for ZeroBin & v1 pastes - since release 1.3 the v2 format is used (#551)
  • CHANGED: Removed use of base64 & rawinflate libraries (#551)
  • CHANGED: Removed support for privatebin_data, privatebin_db & zerobin_db model class configurations, must be replaced with Filesystem or Database in cfg/conf.php, if still present
  • CHANGED: Removed unused columns in database schema of tables paste & comment
  • CHANGED: Jdenticons are now used as the default icons
  • CHANGED: Upgrading libraries to: base-x 5.0.1, bootstrap 5.3.7, jdenticon 2.0.0 & kjua 0.10.0
  • CHANGED: Minimum required PHP version is 7.4, due to a change in the jdenticon library
  • CHANGED: Set bootstrap5 template as default for PrivateBin (#1572)
  • CHANGED: Switched from binary bytes to SI-units (#1565)
  • CHANGED: Replaced the term "paste" with the more generic "document" (#397)
  • FIXED: Name mismatches in attached files (#1584)
  • FIXED: Unable to paste attachments from clipboard (#1589)
  • FIXED: Configuration combinations test errors

Help wanted & greatly appreciated

Apart from the large tasks that require deeper insight and time, there are also smaller issues were help is wanted, topics open to debate and of course many languages that still remain to be translated. We are also still looking for additional long term maintainers among our frequent issue helpers.

What can we offer you in return for your help?

  • We can offer you our mentorship, if this is your first time participating as a maintainer of an open source software project. We can guide you through submitting your first pull requests and work with you to ensure your change fulfils the communities quality standards, gets merged and makes it into a release.
  • Your work gets publicly credited. This can help you build up a resume, showing off your growing skill set, in programming as well as your soft skills.
  • PrivateBin is a smaller project. If you'd like to learn how to participate and contribute in an open source git project, this should be less overwhelming than larger projects.
  • We do have a decent unit test code coverage, so it is an environment forgiving of mistakes. You may still introduce logical flaws or issues in new features, not yet covered in the tests, but you can rely on the tests preventing any regressions in other areas.
  • You don't have to be proficient in multiple programming languages, there are a lot of things to improve within either the JavaScript or PHP areas that don't need you to understand the other side, beyond their shared API.
  • It can be an opportunity to learn about continuous integration tools to automate tasks like tests, security scans, etc.

If you are interested in helping with any of these points, we have prepared a development guide including design goals, code structure and tools to get you started. For any questions, you can chat with the maintainers in the discussion area or reach us via email.

Source: README.md, updated 2025-07-28