[-] Illecors@lemmy.cafe 5 points 21 hours ago

I think this is a legitimate email. What it's saying is that your google password is compromised. Google blocked the login attempt for other reasons, but please change your password.

[-] Illecors@lemmy.cafe 12 points 2 days ago

I've been occasionally giving Linux a shot since bubuntu 5.04 and it would never stick. I guess many things aligned at some point in 2017-18 when I just gave up on windows and microsoft in general. I've been sticking to my beloved gnome, fighting it to do things it wasn't built to.

And then came 2019 and sway 1.0 got released. It felt like reddit imploded. Decided to finally give this "tiling nonsense" a try. A week or so later it finally clicked and I've not been fighting my system anymore.

Fast forward a few years and I'm now a Gentoo, OpenRC, OpenRC-init and Hyprland nutter :)

[-] Illecors@lemmy.cafe 4 points 3 days ago* (last edited 3 days ago)

TIL!

Edit: actually - it will. Not the image itself, but the representation of it on any reasonable screen.

[-] Illecors@lemmy.cafe 6 points 3 days ago

I'm intrigued to see the crossover of it getting too pixelated to gain enough votes vs the vote requirement!

7
submitted 2 months ago by Illecors@lemmy.cafe to c/general@lemmy.cafe

It's been a while since I've last done one of those. Life happened, but things are settling down slowly. I'll combine all five months since September into a single post, but will keep them separated visually.

Income is applied on date of arrival. Stripe (LiberaPay uses it as processor) pays out in advance and as such income shows up as 0, even though LiberaPay banner shows a non-zero value.

Any financial help is greatly appreciated! To donate click the banner here or in the sidebar:

February 2024

Contributions

  • LiberaPay: £0

Expenses

  • Servers: £38.94

Month balance

  • -£38.94

Previous balance

  • -£216.05

Balance to date

  • -£254.99

January 2024

Contributions

  • LiberaPay: £0

Expenses

  • Servers: £38.66

Month balance

  • -£38.66

Previous balance

  • -£177.39

Balance to date

  • -£216.05

December 2023

Contributions

  • LiberaPay: £0

Expenses

  • Servers: £38.59
  • Backblaze B2: £0.64

Month balance

  • -£39.23

Previous balance

  • -£138.16

Balance to date

  • -£177.39

November 2023

Contributions

  • LiberaPay: £0

Expenses

  • Servers: £38.74

Month balance

  • -£38.74

Previous balance

  • -£99.42

Balance to date

  • -£138.16

October 2023

Contributions

  • LiberaPay: £0

Expenses

  • Servers: £37.32

Month balance

  • -£37.32

Previous balance

  • -£62.1

Balance to date

  • -£99.42

Finance History

September 2023 August 2023 July 2023 June 2023
Contributions £11.41 £15.26 £0 £0
Expenses £28.85 £24.75 £19.18 £15.99
Difference -£17.44 -£9.49 -£19.18 -£15.99
Balance -£62.1 -£44.66 -£35.17 -£15.99

Previous reports


September 2023


August 2023


July 2023


June 2023

[-] Illecors@lemmy.cafe 186 points 3 months ago* (last edited 3 months ago)

The article is crap, but it is correct in that you don't need to use airplane mode. I would, however, advise to still use it purely to preserve battery life of your device as otherwise it will very aggressively keep scanning for networks and drain it.

167
submitted 3 months ago* (last edited 3 months ago) by Illecors@lemmy.cafe to c/mildlyinfuriating@lemmy.world

EDIT: you guys have dug up some truly horrible pisstakes :D Thank you for those.

To the serious folk - relax a little. This is Mildly Infuriating, not I'm dying if this doesn't stop. As a non-native speaker I was taught a certain way to use the language. The rules were not written down by me, nor the teachers - it was done by the native folk. Peace!

38
submitted 3 months ago by Illecors@lemmy.cafe to c/folderol@lemmy.cafe

Archive link

Maybe those board and ceo shenanigans did leave a bad taste internally, afterall.

81
submitted 3 months ago by Illecors@lemmy.cafe to c/spacetime@lemmy.cafe
7
submitted 3 months ago by Illecors@lemmy.cafe to c/11foot8@lemmy.cafe
1
submitted 3 months ago by Illecors@lemmy.cafe to c/11foot8@lemmy.cafe
1
But should you? (lemmy.world)
submitted 3 months ago by Illecors@lemmy.cafe to c/11foot8@lemmy.cafe
34
submitted 4 months ago by Illecors@lemmy.cafe to c/general@lemmy.cafe

The upgrade has gone through smoothly and everything seems to be running smoothly.

The performance looks to be better on the backend, time will tell if the memory leak issue is actually solved. So far, though - so good!

29
submitted 4 months ago* (last edited 4 months ago) by Illecors@lemmy.cafe to c/general@lemmy.cafe

Lemmy Cafe will be having its database upgraded.

Reasons

  • Pict-rs is expecting PostgreSQL 16. It's running fine now, but it might not be at some future point.
  • PostgreSQL 15 has a bug that requires jit to be turned off - otherwise DB keeps consuming all the memory available on the system and then some. In the end it gets culled by the kernel. This has performance as well as reliability issues. While turning jit off has remedied the constant failure, it has also made the database a bit slower. I prefer squeezing out as much performance as possible :)

Plan

  • Point nginx to the maintenance page
  • Shut down PostgreSQL 15
  • Run the upgrade tool
  • Start up PostgreSQL 16
  • Point nginx to lemmy

Expected downtime

About an hour, if things go well. More if not so.

Will try to keep the maintenance page updated.

Here's the timezone converter

473
36
submitted 4 months ago* (last edited 4 months ago) by Illecors@lemmy.cafe to c/graybeard@lemmy.cafe

There are a few reasons why pict-rs might not be running, upgrades being one of them. At the moment the whole of lemmy UI will crash and burn if it cannot load a site icon. Yes, that little thing. Here's the github issue.

To work around this I have set the icon and banner (might as well since we're working on this) to be loaded from a local file rather than nginx.

Here's a snippet of nginx config from the server block:

location /static-img/ {
      alias /srv/lemmy/lemmy.cafe/static-img/;

      # Rate limit
      limit_req zone=lemmy.cafe_ratelimit burst=30 nodelay;

      # Asset cache defined in /etc/nginx/conf.d/static-asset-cache.conf
      proxy_cache lemmy_cache;
    }

I have also included the rate limitting and cache config, but it is not, strictly speaking, necessary.

The somewhat important bit here is the location - I've tried using static, but that is already used by lemmy itself, and as such breaks the UI. Hence the static-img.

I have downloaded the icon and banner from the URLs saved in the database (assuming your instance id in site is, in fact, 1):

SELECT id, icon, banner FROM site WHERE id = 1;
 id |                     icon                     |                     banner
----+----------------------------------------------+------------------------------------------------
  1 | https://lemmy.cafe/pictrs/image/43256175-2cc1-4598-a4b8-2575430ab253.webp | https://lemmy.cafe/pictrs/image/c982358f-6a51-4eb6-bf0e-7a07a756e600.webp
(1 row)

I have then saved those files in /srv/lemmy/lemmy.cafe/static-img/ as site-icon.webp and site-banner.webp. Changed the ownership to that of nginx (www-data in debian universe, http and httpd in others.

I have then updated the site table to point to the new location for icon and banner:

UPDATE site SET icon = 'https://lemmy.cafe/static-img/site-icon.webp' WHERE id = 1;
UPDATE site SET banner = 'https://lemmy.cafe/static-img/site-banner.webp' WHERE id = 1;

Confirm it got applied:

SELECT id, icon, banner FROM site WHERE id = 1;
 id |                     icon                     |                     banner
----+----------------------------------------------+------------------------------------------------
  1 | https://lemmy.cafe/static-img/site-icon.webp | https://lemmy.cafe/static-img/site-banner.webp
(1 row)

That's it! You can now reload your nginx server (nginx -s reload) to apply the new path!

29
submitted 4 months ago by Illecors@lemmy.cafe to c/graybeard@lemmy.cafe

docker compose


I'm using a v2 - notice the lack of a dash between docker and compose.

I've recently learnt of the default filenames docker compose is trying to source upon invocation and decided to give it a try. The files are:

  • compose.yml
  • compose.override.yml

I have split the default docker-compose.yml that lemmy comes with into 2 parts - compose.yml holds pict-rs, postfix and, in my case, gatus. compose.override.yml is responsible for lemmy services only. This is what the files contain:

compose.yml

x-logging: &default-logging
  driver: "json-file"
  options:
    max-size: "20m"
    max-file: "4"

services:
  pictrs:
    image: asonix/pictrs:0.5.0
    user: 991:991
    ports:
      - "127.0.0.1:28394:8080"
    volumes:
      - ./volumes/pictrs:/mnt
    restart: always
    logging: *default-logging
    entrypoint: /sbin/tini -- /usr/local/bin/pict-rs run
    environment:
      - PICTRS__OLD_REPO__PATH=/mnt/sled-repo
      - PICTRS__REPO__TYPE=postgres
      - PICTRS__REPO__URL=postgres://pictrs:<redacted>@psql:5432/pictrs
      - RUST_LOG=warn
      - PICTRS__MEDIA__MAX_FILE_SIZE=1
      - PICTRS__MEDIA__IMAGE__FORMAT=webp
    deploy:
      resources:
        limits:
          memory: 512m
  postfix:
    image: mwader/postfix-relay
    environment:
      - POSTFIX_myhostname=lemmy.cafe
    volumes:
      - ./volumes/postfix:/etc/postfix
    restart: "always"
    logging: *default-logging

  gatus:
    image: twinproduction/gatus
    ports:
      - "8080:8080"
    volumes:
      - ./volumes/gatus:/config
    restart: always
    logging: *default-logging
    deploy:
      resources:
        limits:
          memory: 128M


compose.override.yml is actually a hardlink to the currently active deployment. I have two separate files - compose-green.yml and compose-blue.yml. This allows me to prepare and deploy an upgrade to lemmy while the old version is still running.

compose-green.yml

services:
  lemmy-green:
    image: dessalines/lemmy:0.19.2
    hostname: lemmy-green
    ports:
      - "127.0.1.1:14422:8536"
    restart: always
    logging: *default-logging
    environment:
      - RUST_LOG="warn"
    volumes:
      - ./lemmy.hjson:/config/config.hjson
    # depends_on:
    #   - pictrs
    deploy:
      resources:
        limits:
          # cpus: "0.1"
          memory: 128m
    entrypoint: lemmy_server --disable-activity-sending --disable-scheduled-tasks

  lemmy-federation-green:
    image: dessalines/lemmy:0.19.2
    hostname: lemmy-federation-green
    ports:
      - "127.0.1.1:14423:8536"
    restart: always
    logging: *default-logging
    environment:
      - RUST_LOG="warn,activitypub_federation=info"
    volumes:
      - ./lemmy-federation.hjson:/config/config.hjson
    # depends_on:
    #   - pictrs
    deploy:
      resources:
        limits:
          cpus: "0.2"
          memory: 512m
    entrypoint: lemmy_server --disable-http-server --disable-scheduled-tasks

  lemmy-tasks-green:
    image: dessalines/lemmy:0.19.2
    hostname: lemmy-tasks
    ports:
      - "127.0.1.1:14424:8536"
    restart: always
    logging: *default-logging
    environment:
      - RUST_LOG="info"
    volumes:
      - ./lemmy-tasks.hjson:/config/config.hjson
    # depends_on:
    #   - pictrs
    deploy:
      resources:
        limits:
          cpus: "0.1"
          memory: 128m
    entrypoint: lemmy_server --disable-http-server --disable-activity-sending

#############################################################################

  lemmy-ui-green:
    image: dessalines/lemmy-ui:0.19.2
    ports:
      - "127.0.1.1:17862:1234"
    restart: always
    logging: *default-logging
    environment:
      - LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy-green:8536
      - LEMMY_UI_LEMMY_EXTERNAL_HOST=lemmy.cafe
      - LEMMY_UI_HTTPS=true
    volumes:
      - ./volumes/lemmy-ui/extra_themes:/app/extra_themes
    depends_on:
      - lemmy-green
    deploy:
      resources:
        limits:
          memory: 256m

compose-blue.yml

services:
  lemmy-blue:
    image: dessalines/lemmy:0.19.2-rc.5
    hostname: lemmy-blue
    ports:
      - "127.0.2.1:14422:8536"
    restart: always
    logging: *default-logging
    environment:
      - RUST_LOG="warn"
    volumes:
      - ./lemmy.hjson:/config/config.hjson
    # depends_on:
    #   - pictrs
    deploy:
      resources:
        limits:
          # cpus: "0.1"
          memory: 128m
    entrypoint: lemmy_server --disable-activity-sending --disable-scheduled-tasks

  lemmy-federation-blue:
    image: dessalines/lemmy:0.19.2-rc.5
    hostname: lemmy-federation-blue
    ports:
      - "127.0.2.1:14423:8536"
    restart: always
    logging: *default-logging
    environment:
      - RUST_LOG="warn,activitypub_federation=info"
    volumes:
      - ./lemmy-federation.hjson:/config/config.hjson
    # depends_on:
    #   - pictrs
    deploy:
      resources:
        limits:
          cpus: "0.2"
          memory: 512m
    entrypoint: lemmy_server --disable-http-server --disable-scheduled-tasks

  lemmy-tasks-blue:
    image: dessalines/lemmy:0.19.2-rc.5
    hostname: lemmy-tasks-blue
    ports:
      - "127.0.2.1:14424:8536"
    restart: always
    logging: *default-logging
    environment:
      - RUST_LOG="info"
    volumes:
      - ./lemmy-tasks.hjson:/config/config.hjson
    # depends_on:
    #   - pictrs
    deploy:
      resources:
        limits:
          cpus: "0.1"
          memory: 128m
    entrypoint: lemmy_server --disable-http-server --disable-activity-sending

#############################################################################

  lemmy-ui-blue:
    image: dessalines/lemmy-ui:0.19.2-rc.5
    ports:
      - "127.0.2.1:17862:1234"
    restart: always
    logging: *default-logging
    environment:
      - LEMMY_UI_LEMMY_INTERNAL_HOST=lemmy-blue:8536
      - LEMMY_UI_LEMMY_EXTERNAL_HOST=lemmy.cafe
      - LEMMY_UI_HTTPS=true
    volumes:
      - ./volumes/lemmy-ui/extra_themes:/app/extra_themes
    depends_on:
      - lemmy-blue
    deploy:
      resources:
        limits:
          memory: 256m


The only constant different between the two is the IP address I use to expose them to the host. I've tried using ports, but found that it's much easier to follow it in my mind by sticking to the ports and changing the bound IP.

I also have two nginx configs to reflect the different IP for green/blue deployments, but pasting the whole config here would be a tad too much.

No-downtime upgrade


Let's say green is the currently active deployment. In that case - edit the compose-blue.yml file to change the version of lemmy on all 4 components - lemmy, federation, tasks and ui. Then bring down the tasks container from the active deployment, activate the whole of blue deployment and link it to be the compose.override.yml. Once the tasks container is done with whatever tasks it's supposed to do - switch over the nginx config. Et voilà - no downtime upgrade is live!

Now all that's left to do is tear down the green containers.

docker compose down lemmy-tasks-green
docker compose -f compose-blue.yml up -d
ln -f compose-blue.yml compose.override.yml
# Wait for tasks to finish
ln -sf /etc/nginx/sites-available/lemmy.cafe-blue.conf /etc/sites-enabled/lemmy.cafe.conf
nginx -t && nginx -s reload
docker compose -f compose-green.yml down lemmy-green lemmy-federation-green lemmy-tasks-green lemmy-ui-green

lemmy.hjson


I have also multiplied lemmy.hjson to provide a bit more control.

lemmy.hjson

{
  database: {
    host: "psql"
    port: 5432
    user: "lemmy"
    password: "<redacted>"
    pool_size: 3
  }
  hostname: "lemmy.cafe"
  pictrs: {
    url: "http://pictrs:8080/"
    api_key: "<redacted>"
  }
  email: {
    smtp_server: "postfix:25"
    smtp_from_address: "lemmy@lemmy.cafe"
    tls_type: "none"
  }
}

lemmy-federation.hjson

{
  database: {
    host: "psql"
    port: 5432
    user: "lemmy_federation"
    password: "<redacted>"
    pool_size: 10
  }
  hostname: "lemmy.cafe"
  pictrs: {
    url: "http://pictrs:8080/"
    api_key: "<redacted>"
  }
  email: {
    smtp_server: "postfix:25"
    smtp_from_address: "lemmy@lemmy.cafe"
    tls_type: "none"
  }
  worker_count: 10
  retry_count: 2
}

lemmy-tasks.hjson

{
  database: {
    host: "10.20.0.2"
    port: 5432
    user: "lemmy_tasks"
    password: "<redacted>"
    pool_size: 3
  }
  hostname: "lemmy.cafe"
  pictrs: {
    url: "http://pictrs:8080/"
    api_key: "<redacted>"
  }
  email: {
    smtp_server: "postfix:25"
    smtp_from_address: "lemmy@lemmy.cafe"
    tls_type: "none"
  }
}


I suspect it might be possible to remove pict-rs and/or email config from some of them, but honestly it's not a big deal and I haven't had enough time, yet, to look at it.

Future steps

I'd like to script the actual switch-over - it's really trivial, especially since most of the parts are there already. All I'd really like is apply strict failure mode on the script and see how it behaves; do a few actual upgrades.

Once that happens - I'll post it here.

So long and thanks for all the fish!

[-] Illecors@lemmy.cafe 130 points 7 months ago

Threads? Seriously? Have they learnt nothing?

[-] Illecors@lemmy.cafe 108 points 8 months ago

I see angry wankers want to moan for the sake of moaning.

Eliminating smoking is a goos thing! I'll take my wins whenever possible, doesn't happen all that often.

[-] Illecors@lemmy.cafe 89 points 8 months ago

Sorry, I'm gonna be that person.

*What. It should say What it feels like.

[-] Illecors@lemmy.cafe 114 points 8 months ago

I think a lot of it is increase in diagnostic capabilities.

[-] Illecors@lemmy.cafe 98 points 9 months ago* (last edited 9 months ago)

In what fuckin universe does that even make sense. How dull does the mind have to be to justify this? I couldn't chop an arm off of someone I hate, let alone a kid. Let alone all the other insert word to describe this horror.

[-] Illecors@lemmy.cafe 195 points 9 months ago* (last edited 9 months ago)

I just don't get it. If it's unlimited - in what universe is using it beyond 15TB considered abuse?

I get the reseller part, I get the stupid chia mining part. But if they can say that was the problem - then get rid of those users, as clearly you have already identified them. Don't shift the blame away from your dumbass marketing team onto your users and play an innocent company.

I can't believe how much support dropbox is getting. People seem to accept, without questioning, every bollocks pr statement these days.

[-] Illecors@lemmy.cafe 119 points 9 months ago

I'm glad they found a way, but at the same time - what the hell? Why is it OK for game devs of this magnitude to have a hardcoded hardware list? Look for feature support, not a string that is easy to manipulate outside your control!

view more: next ›

Illecors

joined 5 years ago
MODERATOR OF