Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Pixelfed



  • @scooke said in Pixelfed:

    It seems broken that I have to log in to someone else's Pixelfed instance to Like an image though

    You're doing it wrong. ActivityPub doesn't work like that - The issue here is federation is broken.

    There is no requirement to register and login to another server to send a like on an image in activitypub.


  • Staff

    @murgero said in Pixelfed:

    The issue here is federation is broken

    Do you know what is needed in the Cloudron package to fix this? Or is this an upstream app issue? I couldn't really find any information about pixelfed + federation on their site. If there is a link, I would love to see it.



  • @murgero Ok, so normally I could click on a Follower, see their images, and simply press Heart, like Instagram? That makes more sense. But without that, PF as it is on Cloudron is for viewing only. I wish I could code and help out, add that missing federation bit.



  • @girish I think webfinger on the root domain may help out here. But I am not 100% versed in ActivityPub. That said, there is a reported federation issue when using activitypub upstream: https://github.com/pixelfed/pixelfed/issues/2221



  • I can see some traffic and some errors in my horizon based on what @murgero linked to. No idea how to fix, but at least we have errors to work off of!

    My error is saying there is inbound issue from @hyper@social.mobiledads.live (the person I've followed). Here is the log (sorry it is big).

    Symfony\Component\HttpKernel\Exception\HttpException: Invalid object in /app/code/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:1015
    Stack trace:
    #0 /app/code/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(46): Illuminate\Foundation\Application->abort(400, 'Invalid object', Array)
    #1 /app/code/app/Util/ActivityPub/Helpers.php(240): abort(400, 'Invalid object')
    #2 /app/code/app/Util/ActivityPub/Inbox.php(135): App\Util\ActivityPub\Helpers::statusFirstOrFetch('https://social....', true)
    #3 /app/code/app/Util/ActivityPub/Inbox.php(117): App\Util\ActivityPub\Inbox->handleNoteReply()
    #4 /app/code/app/Util/ActivityPub/Inbox.php(50): App\Util\ActivityPub\Inbox->handleCreateActivity()
    #5 /app/code/app/Util/ActivityPub/Inbox.php(42): App\Util\ActivityPub\Inbox->handleVerb()
    #6 /app/code/app/Jobs/InboxPipeline/InboxWorker.php(43): App\Util\ActivityPub\Inbox->handle()
    #7 [internal function]: App\Jobs\InboxPipeline\InboxWorker->handle()
    #8 /app/code/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(32): call_user_func_array(Array, Array)
    #9 /app/code/vendor/laravel/framework/src/Illuminate/Container/Util.php(36): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
    #10 /app/code/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(90): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
    #11 /app/code/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(34): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
    #12 /app/code/vendor/laravel/framework/src/Illuminate/Container/Container.php(590): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
    #13 /app/code/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(94): Illuminate\Container\Container->call(Array)
    #14 /app/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}(Object(App\Jobs\InboxPipeline\InboxWorker))
    #15 /app/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(App\Jobs\InboxPipeline\InboxWorker))
    #16 /app/code/vendor/laravel/framework/src/Illuminate/Bus/Dispatcher.php(98): Illuminate\Pipeline\Pipeline->then(Object(Closure))
    #17 /app/code/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(83): Illuminate\Bus\Dispatcher->dispatchNow(Object(App\Jobs\InboxPipeline\InboxWorker), false)
    #18 /app/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Queue\CallQueuedHandler->Illuminate\Queue\{closure}(Object(App\Jobs\InboxPipeline\InboxWorker))
    #19 /app/code/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(App\Jobs\InboxPipeline\InboxWorker))
    #20 /app/code/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(85): Illuminate\Pipeline\Pipeline->then(Object(Closure))
    #21 /app/code/vendor/laravel/framework/src/Illuminate/Queue/CallQueuedHandler.php(59): Illuminate\Queue\CallQueuedHandler->dispatchThroughMiddleware(Object(Illuminate\Queue\Jobs\RedisJob), Object(App\Jobs\InboxPipeline\InboxWorker))
    #22 /app/code/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(88): Illuminate\Queue\CallQueuedHandler->call(Object(Illuminate\Queue\Jobs\RedisJob), Array)
    #23 /app/code/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(354): Illuminate\Queue\Jobs\Job->fire()
    #24 /app/code/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(300): Illuminate\Queue\Worker->process('redis', Object(Illuminate\Queue\Jobs\RedisJob), Object(Illuminate\Queue\WorkerOptions))
    #25 /app/code/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(134): Illuminate\Queue\Worker->runJob(Object(Illuminate\Queue\Jobs\RedisJob), 'redis', Object(Illuminate\Queue\WorkerOptions))
    #26 /app/code/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(112): Illuminate\Queue\Worker->daemon('redis', 'default', Object(Illuminate\Queue\WorkerOptions))
    #27 /app/code/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(96): Illuminate\Queue\Console\WorkCommand->runWorker('redis', 'default')
    #28 /app/code/vendor/laravel/horizon/src/Console/WorkCommand.php(46): Illuminate\Queue\Console\WorkCommand->handle()
    #29 [internal function]: Laravel\Horizon\Console\WorkCommand->handle()
    #30 /app/code/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(32): call_user_func_array(Array, Array)
    #31 /app/code/vendor/laravel/framework/src/Illuminate/Container/Util.php(36): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
    #32 /app/code/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(90): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
    #33 /app/code/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(34): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
    #34 /app/code/vendor/laravel/framework/src/Illuminate/Container/Container.php(590): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
    #35 /app/code/vendor/laravel/framework/src/Illuminate/Console/Command.php(202): Illuminate\Container\Container->call(Array)
    #36 /app/code/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
    #37 /app/code/vendor/laravel/framework/src/Illuminate/Console/Command.php(189): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
    #38 /app/code/vendor/symfony/console/Application.php(1011): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #39 /app/code/vendor/symfony/console/Application.php(272): Symfony\Component\Console\Application->doRunCommand(Object(Laravel\Horizon\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #40 /app/code/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #41 /app/code/vendor/laravel/framework/src/Illuminate/Console/Application.php(93): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #42 /app/code/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(131): Illuminate\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #43 /app/code/artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #44 {main}
    Data
    {
    headers: {
    host: [
    "pixels.thedoodleproject.net"
    ],
    x-forwarded-for: [
    "192.99.10.87"
    ],
    x-forwarded-host: [
    "pixels.thedoodleproject.net"
    ],
    x-forwarded-port: [
    "443"
    ],
    x-forwarded-proto: [
    "https"
    ],
    x-forwarded-ssl: [
    "on"
    ],
    connection: [
    "close"
    ],
    content-length: [
    "2290"
    ],
    user-agent: [
    "http.rb/4.3.0 (Mastodon/3.1.3; +https://social.mobiledads.live/)"
    ],
    date: [
    "Fri, 19 Jun 2020 19:58:41 GMT"
    ],
    accept-encoding: [
    "gzip"
    ],
    digest: [
    "SHA-256=40Q8xJRc0kzr0bIczPgBonDpqKiwJpD5K3npBCqhVmo="
    ],
    content-type: [
    "application/activity+json"
    ],
    signature: [
    "keyId="https://social.mobiledads.live/users/hyper#main-key",algorithm="rsa-sha256",headers="(request-target) host date digest content-type",signature="nXTzozY1aOyBKrMqaIB9kkwdminzCFqXfW5mAY7MAKpCz95OiIkSReOpknLzgdynxIu/LKs5e+vP8Jd1yaTidaOC9w7QDpeIqhsL82kx3rlfVohXuEkYq1sMnZeJnrT6yk4XU6Y0qado2W7ttHs7RwnukdrAvPQ3DSOJnDgaUN8OkWoY1INasipubHl2narkvxdIWr9HWR1InqJXzOXANULpAEnQUr0nKTrhZ2TdHCwy7Hp99L1WdX5VDAzYHO1YiTTYyCpH8RNGiw9WHhKjWvltF8Wy/CmVg1Mg679UNPd8AhQZAfPiMdgaiKF8M/Fzn/ZC5/MT37uapsgCwZhQuQ==""
    ]
    },
    profile: {
    class: "App\Profile",
    id: 178923258836553730,
    relations: [
    ],
    connection: "mysql"
    },
    payload: {
    @context: [
    "https://www.w3.org/ns/activitystreams",
    {
    ostatus: "http://ostatus.org#",
    atomUri: "ostatus:atomUri",
    inReplyToAtomUri: "ostatus:inReplyToAtomUri",
    conversation: "ostatus:conversation",
    sensitive: "as:sensitive",
    toot: "http://joinmastodon.org/ns#",
    votersCount: "toot:votersCount"
    }
    ],
    id: "https://social.mobiledads.live/users/hyper/statuses/104372418627220354/activity",
    type: "Create",
    actor: "https://social.mobiledads.live/users/hyper",
    published: "2020-06-19T19:58:39Z",
    to: [
    "https://social.mobiledads.live/users/hyper/followers"
    ],
    cc: [
    "https://pixels.thedoodleproject.net/users/doodlemania"
    ],
    object: {
    id: "https://social.mobiledads.live/users/hyper/statuses/104372418627220354",
    type: "Note",
    summary: null,
    inReplyTo: "https://pixels.thedoodleproject.net/p/doodlemania/179416655951171584",
    published: "2020-06-19T19:58:39Z",
    url: "https://social.mobiledads.live/@hyper/104372418627220354",
    attributedTo: "https://social.mobiledads.live/users/hyper",
    to: [
    "https://social.mobiledads.live/users/hyper/followers"
    ],
    cc: [
    "https://pixels.thedoodleproject.net/users/doodlemania"
    ],
    sensitive: false,
    atomUri: "https://social.mobiledads.live/users/hyper/statuses/104372418627220354",
    inReplyToAtomUri: "https://pixels.thedoodleproject.net/p/doodlemania/179416655951171584",
    conversation: "tag:social.mobiledads.live,2020-06-19:objectId=14924:objectType=Conversation",
    content: "<p><span class="h-card"><a href="https://pixels.thedoodleproject.net/doodlemania" class="u-url mention">@<span>doodlemania</span></a></span> Oh I can see this!</p>",
    contentMap: {
    en: "<p><span class="h-card"><a href="https://pixels.thedoodleproject.net/doodlemania" class="u-url mention">@<span>doodlemania</span></a></span> Oh I can see this!</p>"
    },
    attachment: [
    ],
    tag: [
    {
    type: "Mention",
    href: "https://pixels.thedoodleproject.net/users/doodlemania",
    name: "@doodlemania@pixels.thedoodleproject.net"
    }
    ],
    replies: {
    id: "https://social.mobiledads.live/users/hyper/statuses/104372418627220354/replies",
    type: "Collection",
    first: {
    type: "CollectionPage",
    next: "https://social.mobiledads.live/users/hyper/statuses/104372418627220354/replies?only_other_accounts=true&page=true",
    partOf: "https://social.mobiledads.live/users/hyper/statuses/104372418627220354/replies",
    items: [
    ]
    }
    }
    }
    },
    timeout: 5,
    tries: 1,
    job: null,
    connection: null,
    queue: null,
    chainConnection: null,
    chainQueue: null,
    delay: null,
    middleware: [
    ],
    chained: [
    ]
    }
    


  • After reading this, it says that @murgero CAN see something, so outbound is good.
    Also, I see in my instance, not that message, but he DID like the pic!
    a27f43e5-79e9-48f1-b26d-53be2b76676c-image.png



  • @doodlemania2 Yes I did reply to the pic saying I saw it, and gave a like too - hopefully good for catching something in the logs 🙂



  • have been digging, the only thing i see at the moment was from horizon (listed above). i think it might be needing a well known or something, still researching



  • i installed a mastodon instance and am going to try to "talk between them" to speed debugging up some ... just an FYI to any watchers out there.



  • Looks like federation works here. Some people are following me, those should see some pictures.
    @doodlemania2 Let me know if I can help debugging.



  • @stantropics Not able to see anyone else's posts but my own. Still tinkering with stuff but would appreciate any assistance!



  • @doodlemania2 said in Pixelfed:

    social.mobiledads.live

    How to change the logo?



  • I seem to be up and going - I'm "Tooting" and "Pixelfedding" between my two instances on different servers. All appears well. cc: @girish



  • @blavkm said in Pixelfed:

    social.mobiledads.live

    This seems to have the clearest explanation, especially the parts near the bottom: https://discourse.joinmastodon.org/t/how-to-replace-logos/1553/15

    But since this is becoming more of a Mastodon thread rather than purely Pixelfed, maybe you could repost as a new topic.


  • Staff

    @doodlemania2 So the package is good to marked as stable as-is? Any notes for the documentation?



  • I'm going to capture a few more notes just to make sure and might even throw together an FAQ - will offer a PR to the POSTINSTALL.md stuff ASAP!



  • @girish - this is ready! Only last minute change you might consider is moving .env to /app/data like other apps recently.


  • Staff

    @doodlemania2 Did you make a PR? I am not seeing it at https://git.cloudron.io/cloudron/pixelfed-app/-/merge_requests

    Also pixelfed already has a file at /add/data/env.production.



  • might have committed directly to master teehee


  • Staff

    @doodlemania2 Ah, thanks a lot! I will make a new release shortly.


Log in to reply