Photo Sharing. For Everyone.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Go to file
Anil Kulkarni dbd2e17728
Ensure the cloud url is used when publishing a status to activitypub
Posting is done in two steps - first the media is uploaded and that begins a processing pipeline. When the media is finally
processed, the media pipeline sets the cdn_url to the final image (in the cloud if configured).
At any time, the user can click post. This begins a separate NewStatusPipeline to deliver the status over ActivityPub.
This causes a race. If the NewStatusPipeline runs before the media finishes processing, then the status is delivered with
the un-processed (and un-optimized images). If pixelfed is set to use cloud storage, then the ActivityPub message also incorrectly
uses the local media.

This commit fixes the race condition by waiting for all the media to be processed before sending the message over ActivityPub.
A new publish_delayed column is set per-post, indicating whether the
status should be delayed until all media is processed.

Then, the NewStatusPipeline is called twice per post -
When the media finishes processing and when the status is posted.

Both times, the pipeline will check to see if it's valid to post
If so, the pipeline will try to set publish_delayed to false
and only if it is the first time doing so, will it publish the post
11 months ago
.ddev fix shellcheck error 3 years ago
.github Update 3.feature-request.yml 1 year ago
.vscode many small fixes and improvements 3 years ago
app Ensure the cloud url is used when publishing a status to activitypub 11 months ago
bootstrap
config Update instance config 1 year ago
database Add migration to fix Story view_count default 1 year ago
docker Update docker readme, closes #5909 1 year ago
public Update compiled assets 1 year ago
resources Merge pull request #6170 from pfefferle/add/atom-icon 1 year ago
routes Update API routes 1 year ago
storage Add Autospam Advanced Detection 3 years ago
tests Use pest for tests 1 year ago
.dockerignore sync ignore files 3 years ago
.editorconfig fix spacing 3 years ago
.env.docker Staging (#5674) 2 years ago
.env.example Staging (#5674) 2 years ago
.env.testing ignore some shellchecks for .env files 3 years ago
.gitattributes Update .gitattributes to collapse diffs on generated files 3 years ago
.gitignore add PHPUnit cache to .gitignore 2 years ago
.hadolint.yaml ignore hadolint rule DL3029 3 years ago
.markdownlint.json migration docs 3 years ago
.node-version chore: adds node version 4 years ago
.shellcheckrc tweaking configs 3 years ago
CHANGELOG.md Update changelog 1 year ago
CODEOWNERS add CODEOWNERS 3 years ago
CODE_OF_CONDUCT.md
CONTRIBUTING.md Update CONTRIBUTING.md 2 years ago
Dockerfile Staging (#5674) 2 years ago
LICENSE
README.md Update README.md 1 year ago
SECURITY.md Create SECURITY.md 5 years ago
artisan
composer.json Use pest for tests 1 year ago
composer.lock Update composer 1 year ago
crowdin.yml Update Crowdin configuration file 5 years ago
docker-compose.migrate.yml `version` is obsolete 2 years ago
docker-compose.yml Update docker-compose.yml 2 years ago
funding.json Update funding.json 2 years ago
goss.yaml many small fixes and improvements 3 years ago
package-lock.json Update npm deps 1 year ago
package.json Update npm deps 1 year ago
phpunit.xml Update phpunit 1 year ago
server.php
webpack.mix.js translate custom filter 1 year ago

README.md

Pixelfed logo

Latest Stable Version License Total Pixelfed users from FediDB

Introduction

Photo sharing the way it should be. Pixelfed lets your casual shots and creative photography find their audience naturally, without algorithmic barriers. Join millions of people sharing across the fediverse.

Pixelfed web user interface in light mode

Official Documentation

Documentation for Pixelfed can be found on the Pixelfed documentation website.

Run on YunoHost

Install on YunoHost

Pixelfed app for YunoHost. See the package source code

License

Pixelfed is open-sourced software licensed under the AGPL license.

Communication

The ways you can communicate on the project are below. Before interacting, please read through the Code Of Conduct.

Pixelfed Sponsors

We would like to extend our thanks to the following sponsors for funding Pixelfed development. If you are interested in becoming a sponsor, please visit the Pixelfed Patreon Page

This project is supported by: