Hello! I’ve recently been testing out PieFed (I followed the Docker install instructions), it’s actually working quite well… However, I’m a bit of a newbie system administrator, I was wondering if there was a guide or documentation available on how to back up/restore a PieFed instance installed this way? Being able to back up and restore the instance is the one stumbling block I need to get past in order to self host PieFed, so I would certainly appreciate any help that people can provide 😀 Thanks!

    • Phoenix1@piefed.socialOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      18 days ago

      Thanks, that should be simple to figure out if it’s just one step, although I’ve never dumped a database from a Docker image before…I’ll have to do some searching and see if I can figure it out!

      • hendrik@palaver.p3x.de
        link
        fedilink
        English
        arrow-up
        2
        ·
        18 days ago

        In addition to the DB, there’s also a media directory with a lot of stuff like images. I guess that should be saved as well. Not sure how that’s done with Docker but I’m sure it has some mechanism to back up volumes. It’s called “media” in the docker compose file, or “app/static/media/” in my non-containerized install.

        • Phoenix1@piefed.socialOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          18 days ago

          Unfortunately I haven’t been able to figure this out, I was able to write a script for Mastodon that automated the process of dumping the database, copying the system folder and so on, I was able to restore a test backup I made successfully as well. I only say that to indicate that I have at least some familiarity with the shell, but not much 😁 In the case of Mastodon it’s running on “bare metal” so to speak rather than Docker, so this is probably much easier for someone who is familiar with Docker!

          • Rimu@piefed.socialM
            link
            fedilink
            English
            arrow-up
            2
            ·
            18 days ago

            You could use PieFed in docker with the DB connection set in .env.docker in such a way that it connects to a database on the host. That’d be easier to get to.

  • wjs018@piefed.wjs018.xyz
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    18 days ago

    I haven’t had to restore from my backup in production yet, but I run two instances and just periodically rsync the mapped volumes to a backup folder. I also use S3 for my media, so it is really just the database that is critical.

    Doing dev work, when I know I am about to really fuck up my database doing an experiment, I will rsync myself a backup…blow everything up…tear down the docker stack and swap back in my database folder and it is good to go.

    • Phoenix1@piefed.socialOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 days ago

      I appreciate all of the advice, it’s really just my inexperience that’s a problem here. It sounds as if it would be a simple matter of dumping the database from the Docker image and backing up the appropriate directories, but I’m having a heck of a time figuring out how to do that exactly. I’ll keep trying though, but if any system admin out there could provide some concrete examples, I’d really appreciate it!

      • wjs018@piefed.wjs018.xyz
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        I am not much of a sysadmin either and have had to get help from some other instance admins in the past. Here is the exact process I go through to manually make and then restore a backup. I don’t have this automated since I just work in dev environments, but you could put this in a shell script and schedule it with cron or something like that.

        Here is how I make the backup (pgdata folder in my case):

        # Prerequisite: navigate to the pyfedi folder
        
        # Shut down the docker containers
        docker compose down
        
        # Wait for the containers to shut down...
        
        # Then make the backup of the db volume
        sudo rsync -a pgdata/ pgdata_backup
        

        And here is how I restore the backup if I mess up my db:

        # Again, need to be in the pyfedi folder
        
        # Shut down the docker containers
        docker compose down
        
        # Wait for the containers to shut down...
        
        # Delete the messed up db folder
        sudo rm -r pgdata
        
        # Rename the backup folder to swap it back in
        sudo mv pgdata_backup pgdata
        
        # Start the containers back up
        docker compose up -d
        
        • Phoenix1@piefed.socialOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 days ago

          I’d like to thank you very much for this, it’s easy to follow and it explains each of the steps well! I will go about turning this into a script for cron!