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


    Cloudron Forum

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular

    Solved Pixelfed, Federated Image Sharing

    App Wishlist
    14
    48
    1925
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • yusf
      yusf last edited by girish

      https://pixelfed.org/

      A service very much like Instagram, but federated. There seems to be quite some enthusiasm around ActivityPub-based projects in general, also including Prismo, Anfora and Funkwhale.

      1 Reply Last reply Reply Quote 18
      • heliostatic
        heliostatic last edited by

        Yes please!

        1 Reply Last reply Reply Quote 0
        • W
          will last edited by

          pinging for this as well. Having a suite of self hosted federated apps would be awesome!

          murgero 1 Reply Last reply Reply Quote 1
          • murgero
            murgero App Dev @will last edited by murgero

            @will If you look at my thread history, you will find a tutorial on how to install this on the LAMP app for use right now in Cloudron 🙂

            Edit: here is the tutorial: https://forum.cloudron.io/post/5246

            --
            https://urgero.org
            ~ Professional Nerd. Freelance Programmer. ~
            Matrix: @murgero:urgero.org

            W scooke 2 Replies Last reply Reply Quote 5
            • W
              will @murgero last edited by

              @murgero Awesome, thanks!

              1 Reply Last reply Reply Quote 1
              • scooke
                scooke @murgero last edited by

                @murgero said in Pixelfed, Federated Image Sharing:

                https://forum.cloudron.io/post/5246

                Cool! Will give it a try.

                A life lived in fear is a life half-lived

                1 Reply Last reply Reply Quote 1
                • E
                  echokos last edited by

                  I’m surprised this hasn’t gained more traction.

                  1 Reply Last reply Reply Quote 2
                  • ?
                    A Former User last edited by

                    Pixelfed is recommended by both PRISM Break and PrivacyTools
                    https://prism-break.org/en/all/#media-publishing
                    https://www.privacytools.io/providers/social-networks/#social

                    1 Reply Last reply Reply Quote 3
                    • doodlemania2
                      doodlemania2 App Dev last edited by

                      All - I have begun packaging this based on instructions found here as well as basing it off of PHP Lamp. It's still VERY rough (IE, doesn't fully build yet), but would appreciate some eyes on it.

                      https://git.cloudron.io/doodlemania2/pixelfed

                      Currently, I'm trying to decide whether the initial setup goes in Dockerfile (would think so) or in start.sh in the uninitialized section. It's been a VERY long while since I attempted to package something, so am more than a little rusty 😉

                      Also, my run.sh is doing an artisan migrate force on each run - thinking that is a good thing cause run wouldn't know if the container updated, but maybe there's another pattern somewhere that is better.

                      cc: @girish

                      murgero 1 Reply Last reply Reply Quote 6
                      • murgero
                        murgero App Dev @doodlemania2 last edited by

                        @doodlemania2 Using start.sh is not a good idea since the code is in a readonly filesystem - Gotta do the build and most the setup in Dockerfile during packaging.

                        --
                        https://urgero.org
                        ~ Professional Nerd. Freelance Programmer. ~
                        Matrix: @murgero:urgero.org

                        doodlemania2 1 Reply Last reply Reply Quote 2
                        • doodlemania2
                          doodlemania2 App Dev @murgero last edited by

                          @murgero the app lives in data, not code, so it should be okay, but I'm open to putting it in the Dockerfile anyways to make initial startup faster. One of the challenges is that upstream doesn't do releases, we're just pulling from a branch. Will ponder some more on it though.

                          murgero 1 Reply Last reply Reply Quote 1
                          • murgero
                            murgero App Dev @doodlemania2 last edited by murgero

                            @doodlemania2 EDIT: Nevermind - I see now how you have to set it up. The only change I would make is instead of copying from /app/code/pkg, I would just put the source in /app/data/ so the user can dynamically update their instance.

                            --
                            https://urgero.org
                            ~ Professional Nerd. Freelance Programmer. ~
                            Matrix: @murgero:urgero.org

                            1 Reply Last reply Reply Quote 0
                            • doodlemania2
                              doodlemania2 App Dev last edited by

                              So, /app/data isn't available to work with during docker build, so it has to be in startup.sh, but once the app gets published, it will stay current via CR's processes and of course, end customers are able to modify /app/data as they see fit via terminal.

                              One thing I'm struggling with (almost fixed), is how to copy everything from pkg over to the /app/data inclusive of dot files and folders, otherwise, artisan gets fussy. More soon!

                              murgero 1 Reply Last reply Reply Quote 2
                              • murgero
                                murgero App Dev @doodlemania2 last edited by

                                @doodlemania2 Yes it is, just put this at the top of Dockerfile:

                                RUN mkdir -p /app/data
                                

                                --
                                https://urgero.org
                                ~ Professional Nerd. Freelance Programmer. ~
                                Matrix: @murgero:urgero.org

                                1 Reply Last reply Reply Quote 1
                                • doodlemania2
                                  doodlemania2 App Dev last edited by

                                  Just a quick update to those watching this space. I've got the app loading the DB and getting up and running now. Last things to deal with are:

                                  1. An apache error that throws out a 403, probably my .htaccess
                                  2. Moving the logs to /run
                                  3. Try one more time to leverage /app/code but at least this way works!
                                  1 Reply Last reply Reply Quote 5
                                  • doodlemania2
                                    doodlemania2 App Dev last edited by

                                    The app is finished packaging and works pretty well! Final Cloudron specific tweaks like tests, medialinks, etc and then I guess it can publish. If you want it now, you can grab it from my repo: https://git.cloudron.io/doodlemania2/pixelfed and do cloudron install 🙂

                                    murgero S B 3 Replies Last reply Reply Quote 3
                                    • murgero
                                      murgero App Dev @doodlemania2 last edited by

                                      @doodlemania2 How does it handle cloudron server reboots? Has this been tested? It wont try to reinstall pixelfed will it 😉

                                      Do you have documentation on how to update the code on new releases of pixelfed?

                                      --
                                      https://urgero.org
                                      ~ Professional Nerd. Freelance Programmer. ~
                                      Matrix: @murgero:urgero.org

                                      1 Reply Last reply Reply Quote 0
                                      • doodlemania2
                                        doodlemania2 App Dev last edited by

                                        It's destined to be a standard app for Cloudron so will support server reboots, etc. Some tweaks will need to be made by the CR teams for it to move into the app store but will work with them on those over the coming days.

                                        1 Reply Last reply Reply Quote 5
                                        • S
                                          stantropics @doodlemania2 last edited by

                                          @doodlemania2 Awesome, thank you so much! I would love to test it, but do you know if there is any way to "migrate" once its release officially in the appstore?

                                          murgero 1 Reply Last reply Reply Quote 0
                                          • murgero
                                            murgero App Dev @stantropics last edited by

                                            @stantropics You would need to backup and restore the database and public files (like user uploads since PixelFed is an image hosting service like IG)

                                            --
                                            https://urgero.org
                                            ~ Professional Nerd. Freelance Programmer. ~
                                            Matrix: @murgero:urgero.org

                                            1 Reply Last reply Reply Quote 0
                                            • doodlemania2
                                              doodlemania2 App Dev last edited by

                                              Correct, also make sure to do a backup of the database. The app as it is now supports the in built cloudron backup, so it SHOULD work for you, but no promises 🙂

                                              1 Reply Last reply Reply Quote 0
                                              • ?
                                                A Former User last edited by

                                                Pixelfed can be accessed on Android from Fedilab --- a multifunctional client to access the distributed Fediverse
                                                https://f-droid.org/en/packages/fr.gouv.etalab.mastodon/

                                                murgero 1 Reply Last reply Reply Quote 1
                                                • murgero
                                                  murgero App Dev @Guest last edited by

                                                  @Hillside502 Fedilab is a decent client too - used it for a while when I was still in the AP scene. Works great on Pleroma too I heard?

                                                  --
                                                  https://urgero.org
                                                  ~ Professional Nerd. Freelance Programmer. ~
                                                  Matrix: @murgero:urgero.org

                                                  ? 1 Reply Last reply Reply Quote 0
                                                  • ?
                                                    A Former User @murgero last edited by

                                                    @murgero AP?

                                                    jdaviescoates murgero 2 Replies Last reply Reply Quote 0
                                                    • jdaviescoates
                                                      jdaviescoates @Guest last edited by

                                                      @Hillside502 said in Pixelfed, Federated Image Sharing:

                                                      AP?

                                                      I'd guess ActivityPub

                                                      I use Cloudron with Gandi & Hetzner

                                                      1 Reply Last reply Reply Quote 0
                                                      • murgero
                                                        murgero App Dev @Guest last edited by

                                                        @Hillside502 @jdaviescoates is correct - AP is short for ActivityPub (the backend for communication in Mastodon, and a supported protocol in Pixelfed 🙂 )

                                                        --
                                                        https://urgero.org
                                                        ~ Professional Nerd. Freelance Programmer. ~
                                                        Matrix: @murgero:urgero.org

                                                        1 Reply Last reply Reply Quote 1
                                                        • B
                                                          blavkm @doodlemania2 last edited by

                                                          @doodlemania2

                                                          Hi, I am not a expert but I understand many things and I am learning everyday, can you guide me how to use your package on Cloudron? or point me where to look?

                                                          Thanks in advice, and thanks to @murgero that point me out about your package.

                                                          1 Reply Last reply Reply Quote 1
                                                          • doodlemania2
                                                            doodlemania2 App Dev last edited by

                                                            You can clone the repo locally and deploy it with the Cloudron CLI: https://cloudron.io/documentation/custom-apps/cli/#installing

                                                            B scooke 2 Replies Last reply Reply Quote 4
                                                            • B
                                                              blavkm @doodlemania2 last edited by

                                                              @doodlemania2 thanks

                                                              1 Reply Last reply Reply Quote 2
                                                              • S
                                                                stantropics last edited by

                                                                Thanks to @doodlemania2, @mehdi, @girish and everybody who has worked on this so far - it looks pretty good and I cannot wait to have it as an official app.

                                                                Just wanted to share my current experience and my thoughts with the community.
                                                                While testing it I found there are two aspects that can be improved:

                                                                1. Federation does not work and even configuring it in .env to
                                                                ACTIVITY_PUB=true
                                                                REMOTE_FOLLOW=true
                                                                ACTIVITYPUB_INBOX=true
                                                                ACTIVITYPUB_SHAREDINBOX=true
                                                                

                                                                doesn't seem to make it work. I'm tinkering with it but haven't found a solution so far.

                                                                1. .env should be placed somewhere under /app/data so it can be edited by the user (e.g. for changing the instance name, activating/deactivating ActivityPub, setting max filesize etc.).

                                                                Unfortunately, something like

                                                                COPY .env /app/data/storage/config/.env
                                                                RUN ln -fs /app/data/storage/config/.env /app/code/pkg/.env
                                                                

                                                                in the Dockerfile does not work. Pixelfed can't load the config correctly as it throws errors during startup.

                                                                S mehdi 2 Replies Last reply Reply Quote 1
                                                                • S
                                                                  stantropics @stantropics last edited by

                                                                  I solved issue number one today using those config parameters for AP:

                                                                  ## Activity Pub
                                                                  ACTIVITY_PUB=true
                                                                  AP_REMOTE_FOLLOW=true
                                                                  AP_INBOX=true
                                                                  AP_SHAREDINBOX=true
                                                                  AP_OUTBOX=true
                                                                  ATOM_FEEDS=true
                                                                  NODEINFO=true
                                                                  WEBFINGER=true
                                                                  

                                                                  Furthermore I got the information that in ordner to make federation work you need to follow a person from another instance and a person of this instance need to follow you so the other instance knows about yours.

                                                                  1 Reply Last reply Reply Quote 2
                                                                  • girish
                                                                    girish Staff last edited by

                                                                    @stantropics +1, will you be submitted a PR to @doodlemania2 's repo?

                                                                    I am just finishing up metabase, I can look into getting pixelfed published after that.

                                                                    S 1 Reply Last reply Reply Quote 2
                                                                    • mehdi
                                                                      mehdi App Dev @stantropics last edited by

                                                                      @stantropics said in Pixelfed, Federated Image Sharing:

                                                                      Unfortunately, something like
                                                                      COPY .env /app/data/storage/config/.env
                                                                      RUN ln -fs /app/data/storage/config/.env /app/code/pkg/.env

                                                                      in the Dockerfile does not work. Pixelfed can't load the config correctly as it throws errors during startup.

                                                                      That is normal. As /app/data is a volume, it does not exist yet during build time, it is only there at runtime. So you cannot put stuff there in the dockerfile and expect it to be there. You can, however, do just the ln part, and do the copy as a cp in start.sh.

                                                                      1 Reply Last reply Reply Quote 0
                                                                      • S
                                                                        stantropics @girish last edited by stantropics

                                                                        @girish said in Pixelfed, Federated Image Sharing:

                                                                        @stantropics +1, will you be submitted a PR to @doodlemania2 's repo?

                                                                        This is now done. 🙂

                                                                        @mehdi said in Pixelfed, Federated Image Sharing:

                                                                        That is normal. As /app/data is a volume, it does not exist yet during build time, it is only there at runtime. So you cannot put stuff there in the dockerfile and expect it to be there. You can, however, do just the ln part, and do the copy as a cp in start.sh.

                                                                        Makes sense! However, the code does work. When I do a cat /app/code/pkg/.env inside the apps terminal (in recovery mode as it won't start up) it prints the entire and correct config.
                                                                        I have created this issue to work on it:
                                                                        https://git.cloudron.io/doodlemania2/pixelfed/-/issues/1

                                                                        If someone can help to move the config I would appreaciate it. 🙂

                                                                        girish 1 Reply Last reply Reply Quote 1
                                                                        • girish
                                                                          girish Staff @stantropics last edited by

                                                                          @stantropics said in Pixelfed, Federated Image Sharing:

                                                                          However, the code does work

                                                                          Yes, that's because docker has a "feature" that if it copies files from the docker image into a volume on first run. So, if you put files in /app/data in Dockerfile, it gets copied over on first run into the /app/data volume. For cloudron packages, we don't use this feature (by convention) since this feature is kind of arcane.

                                                                          1 Reply Last reply Reply Quote 0
                                                                          • S
                                                                            stantropics last edited by stantropics

                                                                            The genius @mehdi helped to finally get the config-problems solved. I have put everything in a MR under https://git.cloudron.io/doodlemania2/pixelfed/-/merge_requests/4

                                                                            • Config rework
                                                                            • Activity Pub activation
                                                                            • Move config to /app/data

                                                                            Now let's get this official 🙂

                                                                            1 Reply Last reply Reply Quote 1
                                                                            • scooke
                                                                              scooke @doodlemania2 last edited by

                                                                              @doodlemania2 Just did it, worked well, thanks. But it seems to start out with 256MB of ram, and crashes right away. Anyway to have it start with more ram?

                                                                              A life lived in fear is a life half-lived

                                                                              S 1 Reply Last reply Reply Quote 0
                                                                              • S
                                                                                stantropics @scooke last edited by

                                                                                @scooke Latest MR is not merged yet. I am increasing RAM in this one:
                                                                                https://git.cloudron.io/doodlemania2/pixelfed/-/merge_requests/4/diffs?commit_id=bba93ea1da4da8c83388014361ea85db120b1bb3

                                                                                However, my first test shows that it is still not enought. For me, this only happens after setup. After this it runs smooth, even with 256MB of RAM.

                                                                                scooke 1 Reply Last reply Reply Quote 1
                                                                                • scooke
                                                                                  scooke @stantropics last edited by

                                                                                  @stantropics Interesting, yes, I noticed the same thing. But I increased the ram anyway to 2048.

                                                                                  A life lived in fear is a life half-lived

                                                                                  S 1 Reply Last reply Reply Quote 0
                                                                                  • S
                                                                                    stantropics @scooke last edited by

                                                                                    @scooke That is what I do, but it might not be possible for users with smallers instances. 🙂

                                                                                    scooke 1 Reply Last reply Reply Quote 1
                                                                                    • scooke
                                                                                      scooke @stantropics last edited by

                                                                                      @stantropics true

                                                                                      A life lived in fear is a life half-lived

                                                                                      1 Reply Last reply Reply Quote 0
                                                                                      • girish
                                                                                        girish Staff last edited by

                                                                                        Thanks a lot 🙂 I will take a look soonish. Looks like all the hard works is done!

                                                                                        1 Reply Last reply Reply Quote 1
                                                                                        • doodlemania2
                                                                                          doodlemania2 App Dev last edited by

                                                                                          I've merged that in @stantropics ... @girish may not accept it for production given it uses /app/data, but maybe! 🙂

                                                                                          1 Reply Last reply Reply Quote 2
                                                                                          • M
                                                                                            mattp last edited by

                                                                                            Hi, based on this thread it seems PixelFed might be headed to the App Store? If yes, is there a ballpark on timing? I'm stoked to add this but trying to decide whether I should wait for the App Store or do it manually now.

                                                                                            murgero 1 Reply Last reply Reply Quote 1
                                                                                            • doodlemania2
                                                                                              doodlemania2 App Dev last edited by

                                                                                              Yep! I hear they are working on it soonish. +@girish FYI 🙂

                                                                                              girish 1 Reply Last reply Reply Quote 3
                                                                                              • murgero
                                                                                                murgero App Dev @mattp last edited by

                                                                                                @mattp Honestly I'd wait. If you need ActivityPub right now, Nextcloud has an addon you can install to enable it. Which would allow you to speak to friendica, Matodon, pleroma, etc etc.

                                                                                                Then once this is in the appstore, you can move your data.

                                                                                                --
                                                                                                https://urgero.org
                                                                                                ~ Professional Nerd. Freelance Programmer. ~
                                                                                                Matrix: @murgero:urgero.org

                                                                                                1 Reply Last reply Reply Quote 3
                                                                                                • girish
                                                                                                  girish Staff @doodlemania2 last edited by

                                                                                                  @doodlemania2 I have started the work here https://git.cloudron.io/cloudron/pixelfed-app

                                                                                                  1 Reply Last reply Reply Quote 3
                                                                                                  • girish
                                                                                                    girish Staff last edited by girish

                                                                                                    Pixelfed is now published in unstable 🙂 Thanks a lot @doodlemania2 , I will lock this thread. I have created a category for pixelfed under apps.

                                                                                                    1 Reply Last reply Reply Quote 5
                                                                                                    • First post
                                                                                                      Last post
                                                                                                    Powered by NodeBB