In the past few days, I’ve seen a number of people having trouble getting Lemmy set up on their own servers. That motivated me to create Lemmy-Easy-Deploy, a dead-simple solution to deploying Lemmy using Docker Compose under the hood.

To accommodate people new to Docker or self hosting, I’ve made it as simple as I possibly could. Edit the config file to specify your domain, then run the script. That’s it! No manual configuration is needed. Your self hosted Lemmy instance will be up and running in about a minute or less. Everything is taken care of for you. Random passwords are created for Lemmy’s microservices, and HTTPS is handled automatically by Caddy.

Updates are automatic too! Run the script again to detect and deploy updates to Lemmy automatically.

If you are an advanced user, plenty of config options are available. You can set this to compile Lemmy from source if you want, which is useful for trying out Release Candidate versions. You can also specify a Cloudflare API token, and if you do, HTTPS certificates will use the DNS challenge instead. This is helpful for Cloudflare proxy users, who can have issues with HTTPS certificates sometimes.

Try it out and let me know what you think!

https://github.com/ubergeek77/Lemmy-Easy-Deploy

  • D4NM3D
    link
    fedilink
    English
    11 year ago

    I unretired an old racknerd vps and got it running on there… works great!

    Just need to now figure out how to move it to something that can actually cope with it lol…

    Any ideas how to backup an instance and move it?

    • ubergeek77OP
      link
      fedilink
      English
      11 year ago

      Yes, you will want to copy the entirety of the Lemmy-Easy-Deploy folder recursively, including the live folder.

      However, all important data is also stored in Docker volumes on the system. There isn’t a great way to migrate Docker volumes between systems, but there are a few options. One I have not personally used, but seems to look good, is vackup:

      https://github.com/BretFisher/docker-vackup

      You’ll want to run docker volume ls on your current system, and make sure that when you migrate them to the new system, all the volume names are exactly the same. Then, if you run deploy.sh -f, it should pick everything up and deploy.

      Do note: if Docker Compose itself does not create the volume with the right tags, it will still work, but it will print some warnings to the console. Here is an issue discussing it and some potential hacks you can use to add the right tags:

      https://github.com/docker/compose/issues/10087

      Finally, if you need to re-create a volume on the new system with tags like the above issue mentions, you can try migrating data over between named volumes on the same system using this helpful oneliner (don’t forget to change the volume names in all the places in this command):

      https://www.commands.dev/workflows/rename_docker_volume

      In short, it’s a bit hacky, but it can be done.

      Good luck!