this post was submitted on 10 Jun 2023
88 points (100.0% liked)

Lemmy

12524 readers
18 users here now

Everything about Lemmy; bugs, gripes, praises, and advocacy.

For discussion about the lemmy.ml instance, go to !meta@lemmy.ml.

founded 4 years ago
MODERATORS
 

I am a software developer by craft and a linux system admin by hobby. I cannot commit to moderating and managing my own instance, but I would be glad to help someone with the technical aspects.

The most common complaint I saw in Reddit and here about switching to Lemmy is the difficulty of setting it up, so I thought I would help bridge this gap.

While I have never hosted my own instance before, I already checked the setup guide and it looks pretty simple to me, so I am confident I can do it. Please feel free to comment or DM.

It would be great if you can comment general questions. I can then respond to you here and maybe others will see it and know how to host their own instances too.

top 32 comments
sorted by: hot top controversial new old
[–] FatherZen@lemmy.one 7 points 1 year ago (1 children)

An up to date step by step instruction for docker, ansible, or scratch setup would be a fantastic step in the right direction. I'm not a complete moron, but I feel the current guides are lacking. There's a lot of assumptions on the admins knowledge of the associated systems beforehand. As someone else said, the first to make a turnkey solution... hot dog. Would absolutely blast adoption into space.

[–] foispan@terefere.eu 2 points 1 year ago (1 children)

What was it you were struggling with? I found the guide to be straightforward, but I also have a tech background similar to OP

load more comments (1 replies)
[–] Barbarian@sh.itjust.works 5 points 1 year ago* (last edited 1 year ago) (1 children)

I feel like there's a lot of money on the table for the first person to set up a turnkey hosting platform for Lemmy. Something like MoltenHosting but for Lemmy instead of Foundry.

[–] maegul@lemmy.ml 6 points 1 year ago

There’s similar things for mastodon and a project currently in alpha/beta for multiple platforms, incl Lemmy, called spacehost.

See mastodon post here https://mastodon.social/@atomicpoet/109905703584075719

See their main rep on the fediverse here: https://atomicpoet.org/users/atomicpoet and https://calckey.social/@atomicpoet (@atomicpoet@calckey.social @atomicpoet@atomicpoet.org).

They also admin calckey.social.

[–] arkcom@kbin.social 4 points 1 year ago

Something that would help a lot of selfhoster types would be prebuild docker images and a good example docker compose. (something kbin could also use)

Depending on how much Lemmy get's hugged to death I might take you up on this. Thanks!

[–] tookmyname@lemmy.ml 3 points 1 year ago

You’re awesome

[–] fuser@quex.cc 3 points 1 year ago (1 children)

Hi there - thanks for posting. I’m serving lemmy (ansible install) on nginx from Ubuntu 22.04 and I’m seeing this weird problem sometimes where the submit button is not enabled on the “create post” form. Sometimes it works but then it inexplicably stubbornly refuses to - I am not seeing any apparent error show up in the console, nothing in the lemmy or nginx logs (naturally, because the HTML form isn’t submitting to the server because the submit button's disabled). Happens in different browsers, tried restarting nginx, rebooting, nothing seems to fix it. Now, my addled brain does recall seeing something about Ubuntu 22.04 having some issues with Lemmy and perhaps that’s what I’m seeing - it’s just weird and I’ve never seen a web app do this before - any ideas? The url is quex.cc and you’re welcome to test there if you like, but I'm really just looking for any suggestions for investigation before I start thinking about moving to a different OS.

[–] foispan@terefere.eu 5 points 1 year ago (1 children)

Open a bug ticket on the lemmy-ui Github. Every issue should be tracked

[–] fuser@quex.cc 2 points 1 year ago (1 children)

yes, good suggestion, thank you - although before I do I'm going to spend a bit of time to see if I can isolate the problem - I just tested it from a mobile device and the local PC browser and it's working now. I used the exact same url, text and everything to create the post and I didn't change anything - didn't reboot, didn't even restart the browser. Except for the fact that it's intermittent, it looks like some kind of js or css problem, but I need to replicate it and if I do that, I'll probably be able to figure it out.

[–] fuser@quex.cc 1 points 1 year ago

I realize how stupid I'll sound admitting this, but I think the problem was that I wasn't selecting the "community" in the pulldown, so the submit button wasn't enabled.

[–] chromozone@lemmy.chromozone.dev 2 points 1 year ago* (last edited 1 year ago)

The thing I struggled with the most was adapting the provided docker-compose.yml for my Caddy setup.

I am using caddy-docker-proxy, which I absolutely love but their documentation is not the greatest for matchers.

If anyone else wants a super basic Lemmy instance running on Caddy with their domain on Cloudflare here is a docker-compose.yml

Please make sure you update your lemmy.hjson hostname field to match the domain you used in the docker-compose.yml for the caddy labels

If you're not using Cloudflare you can replace build: . (and not use the Dockerfile I provided below) in the caddy service with image: lucaslorentz/caddy-docker-proxy:ci-alpine (and remove the caddy.acme_dns label) and I believe it will fall back to Let'sEncrypt

version: "3.9"

services:
  caddy:
    container_name: caddy
    build: .
    depends_on:
      - lemmy-ui
      - pictrs
    ports:
      - 80:80
      - 443:443
    environment:
      CADDY_INGRESS_NETWORKS: caddy
    networks:
      - caddy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /opt/docker/caddy/data:/data
      - /opt/docker/caddy/config:/config
    labels:
      caddy.log.format: console
      caddy.acme_dns: cloudflare YOUR_CLOUDFLARE_API_TOKEN
    restart: unless-stopped
  lemmy:
    container_name: lemmy
    image: dessalines/lemmy:0.17.3
    depends_on:
      - postgres
      - pictrs
    environment:
      RUST_LOG: "warn,lemmy_server=info,lemmy_api=info,lemmy_api_common=info,lemmy_api_crud=info,lemmy_apub=info,lemmy_db_schema=info,lemmy_db_views=info,lemmy_db_views_actor=info,lemmy_db_views_moderator=info,lemmy_routes=info,lemmy_utils=info,lemmy_websocket=info"
    networks:
      - caddy
    volumes:
      - /opt/docker/lemmy/lemmy.hjson:/config/config.hjson:ro
    labels:
      caddy: "your.domain.com"
      caddy.@lemmy: path_regexp ^/(api|pictrs|feeds|nodeinfo|\.well-known)/.*$
      caddy.@post: method POST
      caddy.@accept: header Accept application/*
      caddy.reverse_proxy_1: "@lemmy {{upstreams 8536}}"
      caddy.reverse_proxy_2: "@post {{upstreams 8536}}"
      caddy.reverse_proxy_3: "@accept {{upstreams 8536}}"
    restart: unless-stopped
  lemmy-ui:
    container_name: lemmy-ui
    image: dessalines/lemmy-ui:0.17.3
    depends_on:
      - lemmy
    environment:
      LEMMY_UI_LEMMY_INTERNAL_HOST: lemmy:8536
      LEMMY_UI_LEMMY_EXTERNAL_HOST: localhost:1234
      LEMMY_HTTPS: true
    networks:
      - caddy
    labels:
      caddy: "your.domain.com"
      caddy.reverse_proxy: "{{upstreams 1234}}"
    restart: unless-stopped
  pictrs:
    container_name: pictrs
    image: asonix/pictrs:0.3.1
    environment:
      PICTRS__API_KEY: API_KEY
    user: 991:991
    volumes:
      - /opt/docker/pictrs:/mnt
    networks:
      - caddy
  postgres:
    container_name: postgres
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: lemmy
      POSTGRES_USER: lemmy
      POSTGRES_PASSWORD: password
    volumes:
      - /opt/docker/postgres:/var/lib/postgresql/data
    networks:
      - caddy
    restart: unless-stopped

networks:
  caddy:
    external: true

Here is the Dockerfile used for the caddy container:

ARG CADDY_VERSION=2.6.4

FROM caddy:${CADDY_VERSION}-builder AS builder

RUN xcaddy build \
    --with github.com/lucaslorentz/caddy-docker-proxy/v2@v2.8.4 \
    --with github.com/caddy-dns/cloudflare

FROM caddy:${CADDY_VERSION}-alpine

RUN apk add --no-cache tzdata

COPY --from=builder /usr/bin/caddy /usr/bin/caddy

CMD ["caddy", "docker-proxy"]
[–] lmorchard@links.decafbad.com 2 points 1 year ago

I've been playing with my own single-user instance here using Docker. Mostly I just followed the Lemmy docs. It's been nice & responsive and takes barely any resources, so far. I think this system can really benefit from a lot of small instances to spread the load.

[–] Treevan@beehaw.org 2 points 1 year ago (3 children)

Perhaps write a thread, with step-by-step text and photos/screenshots per platform? And then the next one to do would be a step-by-step video?

Example, I'm not technically minded, but have an Unraid box with a 1Gb connection. There are extra steps there that I'm aware of but have no idea how to do because it's over my head.

load more comments (3 replies)
[–] smstnitc@lemmy2.addictmud.org 1 points 1 year ago* (last edited 1 year ago)

Being a highly technical guy, I struggled to get everything running on the server that I am hosting other things on. The biggest hurdle was letsencrypt, but other things weren't working quite right. I ended up just paying for a new ubuntu vps so I can run the ansible playbook (I use arch linux everywhere else). That turned out to be super simple and "just worked".

[–] lixus98@kbin.social 1 points 1 year ago (2 children)

I haven't checked but are kbin instances easier to spin up? Kbin is be able to communicate with Lemmy communities without a problem.

[–] bryson@growers.social 2 points 1 year ago

@lixus98
@cyclohexane

It's easy from the docker from what I can tell, the bare metal / vps is a bit more as more manual pieces but nothing too crazy. I just submitted a pull request for the admin guide so that should help a bit for less head bashing... Though my instance doesn't seem to be federating so that's a new problem for tomorrow.

[–] kbrot@kbin.social 1 points 1 year ago

My two cents, I had a wobbly Lemmy instance setup that couldn't do HTTPS, federation, and stay stable all at once. It was always 1 or 2 of those 3 at best.

Switched my instance to kbin, which took about a half hour of CLI and after that has been a joy. It's just younger and admittedly less feature packed right now.

[–] MyopicTopic@lemmy.ml 1 points 1 year ago (1 children)

Anyone know if setting up an instance via a shared Hostgator server is possible? I already pay for a plan for my personal site so wondered if I could add on a new domain plus a partition to it and take advantage to make my own instance for posting and browsing myself.

[–] cyclohexane@lemmy.ml 1 points 1 year ago (1 children)

Not familiar with Hostgator. Can you provide more details?

[–] MyopicTopic@lemmy.ml 1 points 1 year ago (1 children)

It's a web hosting service. The plan I have is the baby plan shared hosting on this link.

But from looking more myself, not sure if this would work. I think I'd need a VPS to actually install and build Lemmy on.

[–] kiwi@kale.social 1 points 1 year ago

You'll need to be able to ssh into the server.

load more comments
view more: next ›