projectsend.org

Changelog

ProjectSend 2.1.0

Updating, mostly: a Check now button that says what it found, an update that ends somewhere, one command to update a self-hosted install — and the first official Docker image

Updating, mostly. ProjectSend now tells you when there is a new version, ends an update somewhere rather than just stopping, and — on a server you run yourself — reduces the whole procedure to one command that asks before each step. This is also the first release published as an official Docker image.

Added

Ask for an Update the Moment You Want to Know

ProjectSend checks once a day on its own, which is no help to somebody who has just read that a release fixes the thing biting them. There is now a Check now button, and it says what it found rather than only that it ran.

Updating Ends Somewhere

The first time an administrator opens ProjectSend after an update, they land on a page saying which version they are now on and what came with it — and pointing at ProjectSend's Discord, which is where release news and help actually live.

A First Run That Shows You Around

A brand-new installation greets its administrator once, with a short list of the things worth doing before real files go in. Steps tick themselves off as you do them.

About Says When This Installation Was Last Updated

And to which version. It is the answer to "when did this change?", asked after something looks different or by whoever inherited the server.

The Database Stops Quietly Filling Up

Permanently failed emails and already-read notifications both grew forever. Both now have a retention window you set under Housekeeping on the Scheduler screen, with a nightly purge that honours it — thirty days and ninety by default, and 0 to keep everything. Unread notifications are never deleted, whatever their age.

The Update Is in the Activity Log

Filterable like everything else. Until now the biggest change that can happen to an installation was the one thing its history did not record.

One Command to Update, and It Asks First

(Self-hosted) sudo ./update.sh is the whole procedure: it offers to back up, verifies what it downloaded, and stops rather than guessing. Its useful options — take the backup for me, just tell me what would happen — are one click away on the update screen, and UPDATE.md documents the whole thing.

Changed

The Browser Tab Takes Its Name from Your Site

Not from the build, and from the moment the page starts drawing rather than once it has loaded.

Each Edition Points at Its Own Home

And hosted customers are no longer asked to donate to something they already pay for.

The Scheduler Screen Names Its Tasks in Your Language

Ten of them were English on an otherwise translated page.

Fixed

A Deleted Folder, File or Group No Longer Takes Its Name with It

Deleting any of the three left the name reserved for good: creating another with that name failed with "The slug has already been taken", naming a conflict with a row the interface will not show you, and there was no way to release it. Deleting now hands the name back, and names held by things you deleted earlier are released when you update. (#1645)

The Legacy Migration Tool Installs with the Command the Guide Gives You

It is published now, so composer require projectsend/v1-migration-tool works as written on any installation, with nothing to add to your composer.json. The guide also says plainly what a zip or Docker install can and cannot do — see the upgrade notes.

A Non-Standard Port No Longer Disappears from Links

In email and on public pages.

An Update No Longer Stops Over a Symlink's Ownership

And the official image runs nginx as the user php-fpm writes as.

Translations Shipped by a Package Now Reach the Screen That Wrote Them

Upgrade Notes

Nothing is required beyond the usual update. No new configuration, no new permissions to grant. The one database change runs itself.

There is now an official Docker image, projectsend/projectsend. If you have been building from a clone, you can switch to it: it ships with its dependencies and frontend already compiled, so it needs neither Composer nor Node. compose.example.yaml in docker/production/ is a working starting point.

Migrating from ProjectSend Legacy? Read the first step of the migration guide before you start. It now differs by how you installed: a release zip and the official Docker image have no /system/migrate screen, because the frontend they ship was built before the tool existed, and the projectsend:migrate:* commands are the whole interface there. Nothing about the migration itself is missing.

Reporting a security issue now has a front door: the Report a vulnerability button on the repository's Security tab, or contact@projectsend.org. See SECURITY.md.