We've all been waiting to go paperless for a couple of decades now (wonderful, tactile, recyclable magazines notwithstanding), but still those slivers of pulp persist. This isn't so much a problem for us as individuals. We can manage the occasional important piece of paper with a scanner or smartphone photograph and perhaps a local NAS or remote drive for long-term storage. If we're happy to forgo some privacy, a cloud service can scan and host those files to make them searchable. If not, then a self-hosted version of Nextcloud is another good option. But none of these scale particularly well, and they're not built specifically to manage sets of scanned, printed documentation over a long period of time. Which is what Paperless-ngx has been built to do.

Paperless-ngx is a document management system for scanned documents that can handle a busy non-paperless office's worth of pages. It's a respectful fork of a long established project called Paperless-ng, and like its progenitor, runs as a web-accessed server. This is important because it means you have complete control over where your documents are stored and how they're accessed, albeit with the overhead of having to run the background service yourself. Another great feature is that it is account- and group-based, like Linux, which means different users can have their own accounts and belong to one or more groups. A whole series of permissions can be added or revoked to limit access to specific sets of documentation. Most importantly, Paperless-ngx performs optical character recognition on your document collections so you can easily search for any text across multiple documents.

Paperless-ngx has been written with Django and is brilliant at archiving and accessing printed documents, especially in an office environment.

Installation is relatively easy, especially if you choose to go the Docker route, but both this method and a native Linux installation are excellently documented. There are also several ways to get a document into Paperless-ngx. The most practical is a physical scanner that can either save to a mutually accessible network location or is connected locally to your server where it can save documents to a shared directory. But there are other options too, including uploads via the web interface, via an accompanying Android app, or even by sending documents to a preconfigured IMAP email address. There's also an excellent REST API for integration with your own tools and for potentially automating the scanning and archiving. Paperless-ngx will pick up these documents automatically, run them through an OCR process, archive a version as a PDF, and then add any matching tags or correspondents it recognizes to the eventual database entry. Only then do documents become accessible from the web interface.

This is where Paperless-ngx really shines, because its user interface is fast and responsive, even when dealing with a huge number of documents. One or more can be opened at the same time, and they become small tabs in the left pane, letting you go back to the dashboard. Using an external viewer is a configuration option away, and the latest release has overhauled the look and feel of the whole experience. The only slight downside is that none of your documents nor the database are encrypted, which means it's up to you to find a solution if you need to safeguard the contents of your collection. There are obviously plenty of Linux solutions to this problem, but it's something to consider if Paperless-ngx becomes the hub of your office's document management, as it should.

Project Website

You can either upload files manually with the web interface, via a scanner, through an Android app, or even by sending an email.

Train simulator

Libre TrainSim

There are two things at work here with Libre TrainSim. The first is obviously that trains, and model trains, are hugely popular with a certain geeky crowd in ways not unlike Linux fandom. The second is that ambient games are becoming increasingly popular. These are the kind of games that don't require quick thinking or sugar-rush reactions and instead let you relax or listen to music while keeping yourself occupied. Libre TrainSim is that kind of game, although it's also a game with a lot of depth. For players who simply wish to experience TrainSim, the easiest way to get started is by loading up the game and loading up the training track (pun intended). You'll soon find yourself behind the controls of a 3D virtual train with a virtual view of the trees, track, and rails in front of you. The graphics are simplistic but also effective at conveying the same field of view real drivers must have. You can also switch from the first-person driver view to a fully rendered external view of the entire train.

The training mode will guide you through the basics of starting and stopping the train, and prompt you to stick to the timetable. This information is contained in a small panel on the right. You have extra buttons for lights, doors, and – the most important thing – sounding the horn! You also have to learn how to obey signals and various speed limits. Libre TrainSim was originally created by a student in their spare time with the Godot games engine, but the project now has a small team of developers behind it, all working to add new trains, tracks, routes, and functions to the editor and background functionality. You can do all this yourself too, and there's some excellent documentation that accompanies the project and explains how to create your own tracks, trains, scenery, and even how to contribute the logic for routes and services with a little Godot scripting.

Project Website

The austere 3D graphics in Libre TrainSim lend a genuine sense of serious training and practice to the game.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More