pleroma issueshttps://git.pleroma.social/pleroma/pleroma/-/issues2024-02-06T05:50:29Zhttps://git.pleroma.social/pleroma/pleroma/-/issues/3188Implement /.well-known/openid-configuration2024-02-06T05:50:29ZGrant sc07Implement /.well-known/openid-configuration[/.well-known/openid-configuration](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata) allows for discovery of the urls for authorization without (requiring) having pleroma-specific code implemented[/.well-known/openid-configuration](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata) allows for discovery of the urls for authorization without (requiring) having pleroma-specific code implementedhttps://git.pleroma.social/pleroma/pleroma/-/issues/31872.5.3: "Reduced permissions of config files and directories, distros requirin...2024-02-06T05:52:41ZKaito2.5.3: "Reduced permissions of config files and directories, distros requiring greater permissions like group-read need to pre-create the directories"Would it be possible to publish a list of config files and directories and their appropriate permissions?Would it be possible to publish a list of config files and directories and their appropriate permissions?https://git.pleroma.social/pleroma/pleroma/-/issues/3186Dockerfile: Harden permissions2023-08-05T11:47:25ZHaelwennDockerfile: Harden permissionsFor example as it's an OTP build, Pleroma shouldn't have write permissions on it's own code.
Compare with <https://gitweb.gentoo.org/repo/proj/guru.git/tree/www-apps/pleroma/pleroma-9999.ebuild>.For example as it's an OTP build, Pleroma shouldn't have write permissions on it's own code.
Compare with <https://gitweb.gentoo.org/repo/proj/guru.git/tree/www-apps/pleroma/pleroma-9999.ebuild>.https://git.pleroma.social/pleroma/pleroma/-/issues/3170Add a notification for the shoutbox2023-07-27T04:47:57Zmiau miauAdd a notification for the shoutboxMe and the users of my pleroma instance really like the shoutbox feature! But it'd be nice if we could get a notification of new incoming messages. Something as basic as an orange circle, at the top right corner of the shoutbox button, w...Me and the users of my pleroma instance really like the shoutbox feature! But it'd be nice if we could get a notification of new incoming messages. Something as basic as an orange circle, at the top right corner of the shoutbox button, would suffice. Currently, there's not much incentive to use shoutbox since we don't get notified of new messages, so we often forget that it's even there.
Here's a crude mockup below of what I mean.
![shoutbox](/uploads/eb83e1ca78c39db98c093f82fb0c4e93/shoutbox.png)https://git.pleroma.social/pleroma/pleroma/-/issues/3168OTP only works with "pleroma@127.0.0.1" node name2023-07-27T04:48:28ZMoon ManOTP only works with "pleroma@127.0.0.1" node nameI am trying to run multiple OTP instances on the same machine. By default they always use "pleroma@127.0.0.1" for the node name. I am able to override this by doing:
```
Environment=ELIXIR_ERL_OPTIONS='-name whatever@127.0.0.1'
```
in ...I am trying to run multiple OTP instances on the same machine. By default they always use "pleroma@127.0.0.1" for the node name. I am able to override this by doing:
```
Environment=ELIXIR_ERL_OPTIONS='-name whatever@127.0.0.1'
```
in the service file, or prepending it to the start command on the cli.
However, when you try to use pleroma_ctl it will automatically connect to "pleroma@127.0.0.1". I discovered this when copying my config to the database overwrote the config for my other otp instance.
If you try doing ELIXIR_ERL_OPTIONS='-name whatever@127.0.0.1' pleroma/bin/pleroma_ctl
you will get an error telling you the node is in use. If you remove ELIXIR_ERL_OPTIONS then it tells you the node is down.
The only way I have been able to admin multiple pleroma OTP on the same machine is, by stopping all the servers, changing the node name of the one I want to work on to "pleroma@127.0.0.1" and then using pleroma_ctl.https://git.pleroma.social/pleroma/pleroma/-/issues/3158MIME Type/Tags route xml2023-07-27T15:55:09ZLucas LópezMIME Type/Tags route xml### Environment
* Soapbox version:Soapbox 3.2.0-72de8fb
* Backend:Pleroma+soapbox 2.5.52-440-g7fd0b309.develop
* Browser/OS: Windows 11 - Chrome & EDGE
### Bug description
There is a problem with MIME type in soapbox/plaroma, where wh...### Environment
* Soapbox version:Soapbox 3.2.0-72de8fb
* Backend:Pleroma+soapbox 2.5.52-440-g7fd0b309.develop
* Browser/OS: Windows 11 - Chrome & EDGE
### Bug description
There is a problem with MIME type in soapbox/plaroma, where when accessing svg files uploaded in the uploads(media) folder, it ends up looking like a text/plan or text/html and with that it renders as if it were a text and not an svg of fat.
Also when I access the mywebsite.com.br/tags/hashtag page directly in the browser it renders the website code and not the page itself it also happens only when accessed directly, it seems to be a problem in the proxy config in nginx, how to fix ? I'm using the original filehttps://git.pleroma.social/pleroma/pleroma/-/issues/3152Requesting archive for deactivated user2023-07-03T15:01:32ZtusooaRequesting archive for deactivated userCurrently an archive for deactivated users won't fetch their outbox correctly, as deactivated users are excluded in the query. It would be desirable to have deactivated users archive their posts properly.Currently an archive for deactivated users won't fetch their outbox correctly, as deactivated users are excluded in the query. It would be desirable to have deactivated users archive their posts properly.https://git.pleroma.social/pleroma/pleroma/-/issues/3149no function clause matching in Pleroma.Web.Metadata.Utils.scrub_html_and_trun...2023-07-07T00:44:59ZWesley Mooreno function clause matching in Pleroma.Web.Metadata.Utils.scrub_html_and_truncate/3 when fetching feed### Environment
* Installation type: Source
* Pleroma version: 2.5.2
* Elixir version: 1.14.4
* Operating system: Alpine Linux
* PostgreSQL version: 12
### Bug description
I am attempting to create an archive of my public posts from m...### Environment
* Installation type: Source
* Pleroma version: 2.5.2
* Elixir version: 1.14.4
* Operating system: Alpine Linux
* PostgreSQL version: 12
### Bug description
I am attempting to create an archive of my public posts from my Pleroma instance. While I do have access to the database this is a pretty raw form and in the absence of a supported export mechanism I noticed that the Atom feed seems pretty complete and supports paging. I wrote a script to fetch the feed for my user, following the `link rel="next"` link in each document. However, after 38 documents fetching the specified next URL results in an Phoenix error:
![error](/uploads/c7afba4c50ba695470ea3e91417ac820/image.png)
You can see it for yourself at <https://decentralised.social/users/wezm/feed.atom?max_id=9kSDsXZb4f6E80QjAm>
At first I thought that I had perhaps reached the last document but looking at the entries in the preceding document suggests that not the case.https://git.pleroma.social/pleroma/pleroma/-/issues/3143Tag Specific Moderation2023-07-01T21:47:48ZiacoreTag Specific ModerationThis issue is mainly about tag-specific moderation.
For Pleroma to act like Reddit, I think the following points are missing.
1. moderators for a specific tag (tags can act like subreddit)
2. indentation based on replies in frontend; s...This issue is mainly about tag-specific moderation.
For Pleroma to act like Reddit, I think the following points are missing.
1. moderators for a specific tag (tags can act like subreddit)
2. indentation based on replies in frontend; so that the posts are easier to read like Reddit/Hacker News
3. downvote
It is not a stretch for Pleroma to serve as a forum (backend logic -wise).https://git.pleroma.social/pleroma/pleroma/-/issues/3142Failure to parse paginated featured collection2023-07-02T15:06:21Zsilverpill silverpillFailure to parse paginated featured collectionIf actor's `featured` collection doesn't have `orderedItems` property (and has a pointer to `OrderedCollectionPage` instead), signature check fails, incoming activity gets dropped and `{"errors":{"detail":"Internal server error"}}` respo...If actor's `featured` collection doesn't have `orderedItems` property (and has a pointer to `OrderedCollectionPage` instead), signature check fails, incoming activity gets dropped and `{"errors":{"detail":"Internal server error"}}` response is returned.
I guess the error comes for [`pin_data_from_featured_collection`](https://git.pleroma.social/pleroma/pleroma/-/blob/043a00991dec09f5804df1db1fdc1b1179843453/lib/pleroma/web/activity_pub/activity_pub.ex#L1712).https://git.pleroma.social/pleroma/pleroma/-/issues/3139Lists are limited to around 180 accounts due to indexing limitations2023-08-11T04:27:39ZCarlos SolísLists are limited to around 180 accounts due to indexing limitations### Environment
* Installation type (OTP or From Source): OTP
* Pleroma version (could be found in the "Version" tab of settings in Pleroma-FE): 2.5.2
* Elixir version (`elixir -v` for from source installations, N/A for OTP): N/A
* Oper...### Environment
* Installation type (OTP or From Source): OTP
* Pleroma version (could be found in the "Version" tab of settings in Pleroma-FE): 2.5.2
* Elixir version (`elixir -v` for from source installations, N/A for OTP): N/A
* Operating system: Debian 11 Bullseye
* PostgreSQL version (`psql -V`): 13.11
### Bug description
When adding a new account to a list, if that list already has enough items, the new addition will fail due to the way that lists are implemented and indexed in the PostgreSQL database.
To replicate:
- On your Pleroma account, open a new list
- Proceed to add accounts to that group
- Eventually, adding a new account to the group will fail with a generic error message.
- Check the logs:
```
pleroma[3589497]: 13:23:23.889 request_id=F2p0aMyDYOMTLgwAAvJi [error] Internal server error: %Postgrex.Error{message: nil, postgres: %{code: :program_limit_exceeded, constraint: "lists_following_index", detail: "Index row references tuple (0,9) in relation \"lists\".", file: "nbtutils.c", hint: "Values larger than 1/3 of a buffer page cannot be indexed.\nConsider a function index of an MD5 hash of the value, or use full text indexing.", line: "2662", message: "index row size 2712 exceeds btree version 4 maximum 2704 for index \"lists_following_index\"", pg_code: "54000", routine: "_bt_check_third_page", schema: "public", severity: "ERROR", table: "lists", unknown: "ERROR"}, connection_id: 3662753, query: nil}
pleroma[3589497]: 13:23:23.891 [error] #PID<0.12250.1> running Pleroma.Web.Endpoint (connection #PID<0.12249.1>, stream id 1) terminated
pleroma[3589497]: Server: social.example.net:80 (http)
pleroma[3589497]: Request: POST /api/v1/lists/13/accounts
pleroma[3589497]: ** (exit) an exception was raised:
pleroma[3589497]: ** (Postgrex.Error) ERROR 54000 (program_limit_exceeded) index row size 2712 exceeds btree version 4 maximum 2704 for index "lists_following_index"
pleroma[3589497]: table: lists
pleroma[3589497]: constraint: lists_following_index
pleroma[3589497]: hint: Values larger than 1/3 of a buffer page cannot be indexed.
pleroma[3589497]: Consider a function index of an MD5 hash of the value, or use full text indexing.
pleroma[3589497]: Index row references tuple (0,9) in relation "lists".
pleroma[3589497]: (ecto_sql 3.9.2) lib/ecto/adapters/sql.ex:913: Ecto.Adapters.SQL.raise_sql_call_error/1
pleroma[3589497]: (ecto 3.9.5) lib/ecto/repo/schema.ex:756: Ecto.Repo.Schema.apply/4
pleroma[3589497]: (ecto 3.9.5) lib/ecto/repo/schema.ex:459: anonymous fn/15 in Ecto.Repo.Schema.do_update/4
pleroma[3589497]: (elixir 1.14.3) lib/enum.ex:975: Enum."-each/2-lists^foreach/1-0-"/2
pleroma[3589497]: (pleroma 3.9.3-0-g39b3d92-develop) lib/pleroma/web/mastodon_api/controllers/list_controller.ex:66: Pleroma.Web.MastodonAPI.ListController.add_to_list/2
pleroma[3589497]: (pleroma 3.9.3-0-g39b3d92-develop) lib/pleroma/web/mastodon_api/controllers/list_controller.ex:5: Pleroma.Web.MastodonAPI.ListController.action/2
pleroma[3589497]: (pleroma 3.9.3-0-g39b3d92-develop) lib/pleroma/web/mastodon_api/controllers/list_controller.ex:5: Pleroma.Web.MastodonAPI.ListController.phoenix_controller_pipeline/2
pleroma[3589497]: (phoenix 1.6.16) lib/phoenix/router.ex:354: Phoenix.Router.__call__/2
```https://git.pleroma.social/pleroma/pleroma/-/issues/3138PUT /api/v1/statuses/:id missing media_attributes2023-07-07T23:02:49ZwebbPUT /api/v1/statuses/:id missing media_attributesThere is an undocumented field in ``PUT /api/v1/statuses/:id`` that allows media to be edited after upload.
https://github.com/mastodon/mastodon/pull/20878
Did a quick grep of the codebase, there doesn't seem to be any reference to thi...There is an undocumented field in ``PUT /api/v1/statuses/:id`` that allows media to be edited after upload.
https://github.com/mastodon/mastodon/pull/20878
Did a quick grep of the codebase, there doesn't seem to be any reference to this. This breaks editing alt text for clients that don't use the Pleroma-specific behaviour of allowing calls to ``PUT /api/v1/media/:id`` after the post the attachment was for has been made.https://git.pleroma.social/pleroma/pleroma/-/issues/3134Ability to use emoji from other servers2023-06-13T18:03:12ZiacoreAbility to use emoji from other servers# Behavior suggestion/Feature request
It is possible to emoji-react to a post using emoji from another server, if someone else used that emoji first.
I wonder if it is possible to create the first reaction to a post using emoji from ano...# Behavior suggestion/Feature request
It is possible to emoji-react to a post using emoji from another server, if someone else used that emoji first.
I wonder if it is possible to create the first reaction to a post using emoji from another server.https://git.pleroma.social/pleroma/pleroma/-/issues/3133Lemmy / Kbin federation issues2023-06-27T00:56:19ZCarlos SolísLemmy / Kbin federation issues### Environment
* Installation type (OTP or From Source): OTP
* Pleroma version (could be found in the "Version" tab of settings in Pleroma-FE): 2.5.2
* Elixir version (`elixir -v` for from source installations, N/A for OTP): N/A
* Oper...### Environment
* Installation type (OTP or From Source): OTP
* Pleroma version (could be found in the "Version" tab of settings in Pleroma-FE): 2.5.2
* Elixir version (`elixir -v` for from source installations, N/A for OTP): N/A
* Operating system: Debian 11 Bullseye
* PostgreSQL version (`psql -V`): 13.11
### Bug description
When following a community from Lemmy or a magazine from Kbin, Pleroma will complain about an issue with the transmogrifier, for example:
```
Jun 12 10:36:15 example.net pleroma[3586219]: 10:36:15.814 [error] Error while fetching https://lemmy.world/activities/create/32ce9250-359e-4d2d-a969-c5b0c09c4a63: {:error, {:transmogrifier, :error}}
Jun 12 10:36:16 example.net pleroma[3586219]: 10:36:16.019 [error] Error while fetching https://programming.dev/activities/like/648e688e-f9d1-4627-9494-8f5ab8a40e26: {:error, {:transmogrifier, :error}}
Jun 12 10:36:16 example.net pleroma[3586219]: 10:36:16.778 [error] Error while fetching https://lemmy.world/activities/like/bc75afd2-2b94-4669-852e-6bc4d1d98743: {:error, {:transmogrifier, :error}}
Jun 12 10:36:17 example.net pleroma[3586219]: 10:36:17.224 [error] Error while fetching https://beehaw.org/activities/like/a8b3ee2b-4112-4354-bc00-5562694a9b6c: {:error, {:transmogrifier, :error}}
```
Furthermore, attached images and website previews are not properly parsed as a result, instead showing a black image (in clients like Fedilab) or a placeholder clip image (in Soapbox):
![imagen](/uploads/48fb8875e9dd8b3596bd47aff6650733/imagen.png)https://git.pleroma.social/pleroma/pleroma/-/issues/3132precompiled version db can't imgrate to compiled db [compiled by elixir 1.15....2023-12-04T03:31:20ZKuoi Zprecompiled version db can't imgrate to compiled db [compiled by elixir 1.15.7 or later]
This is my build log. https://web.archive.org/web/20231204032554/https://build.malacology.net/api/pkg/pleroma/log/1698812320
Following is my running log, but I use what you compile, things run well, but for what I compiled, sth face pr...
This is my build log. https://web.archive.org/web/20231204032554/https://build.malacology.net/api/pkg/pleroma/log/1698812320
Following is my running log, but I use what you compile, things run well, but for what I compiled, sth face problems, is this the issue that I previously use pre-build binary, now I use compiled binary?
It seems that the db generated from OTP release can't imgrate to the binary what I compiled
Renew log can be checked here https://web.archive.org/web/20231204032515/http://fars.ee/kHDY still [debug] for days.
```
Jun 02 04:04:07 helix systemd[1]: pleroma.service: Found left-over process 497 (epmd) in control group while starting unit. Ignoring.
Jun 02 04:04:07 helix systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.
Jun 02 04:04:07 helix systemd[1]: Started Pleroma social network.
Jun 02 04:04:10 helix pleroma[1783]: [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}}
Jun 02 04:04:10 helix pleroma[1783]: [info] Function passed as a handler with ID "pleroma-logger" is local function.
Jun 02 04:04:10 helix pleroma[1783]: This mean that it is either anonymous function or capture of function without module specified. That may cause performance penalty when calling such handler. For more details see note in `telemetry:attach/4` documentation.
Jun 02 04:04:10 helix pleroma[1783]: https://hexdocs.pm/telemetry/telemetry.html#attach-4
Jun 02 04:04:11 helix pleroma[1783]: [debug] QUERY OK source="columns" db=7.1ms queue=12.7ms idle=0.0ms
Jun 02 04:04:11 helix pleroma[1783]: SELECT TRUE FROM "information_schema"."columns" AS c0 WHERE (c0."table_name" = 'objects') AND (c0."column_name" = 'fts_content') LIMIT 1 []
Jun 02 04:04:11 helix pleroma[1783]: [info] Function passed as a handler with ID "telemetry_web__event_handler" is local function.
Jun 02 04:04:11 helix pleroma[1783]: This mean that it is either anonymous function or capture of function without module specified. That may cause performance penalty when calling such handler. For more details see note in `telemetry:attach/4` documentation.
Jun 02 04:04:11 helix pleroma[1783]: https://hexdocs.pm/telemetry/telemetry.html#attach-4
Jun 02 04:04:11 helix pleroma[1783]: [debug] Elixir.Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy is excluded from config descriptions, because does not implement `config_description/0` method.
Jun 02 04:04:11 helix pleroma[1783]: [debug] Elixir.Pleroma.Web.ActivityPub.MRF.ForceMentionsInContent is excluded from config descriptions, because does not implement `config_description/0` method.
Jun 02 04:04:11 helix pleroma[1783]: [debug] Elixir.Pleroma.Web.ActivityPub.MRF.DropPolicy is excluded from config descriptions, because does not implement `config_description/0` method.
Jun 02 04:04:11 helix pleroma[1783]: [debug] Elixir.Pleroma.Web.ActivityPub.MRF.TagPolicy is excluded from config descriptions, because does not implement `config_description/0` method.
Jun 02 04:04:11 helix pleroma[1783]: [debug] Elixir.Pleroma.Web.ActivityPub.MRF.NoPlaceholderTextPolicy is excluded from config descriptions, because does not implement `config_description/0` method.
Jun 02 04:04:11 helix pleroma[1783]: [debug] Elixir.Pleroma.Web.ActivityPub.MRF.ForceBotUnlistedPolicy is excluded from config descriptions, because does not implement `config_description/0` method.
Jun 02 04:04:11 helix pleroma[1783]: [debug] Elixir.Pleroma.Web.ActivityPub.MRF.EnsureRePrepended is excluded from config descriptions, because does not implement `config_description/0` method.
Jun 02 04:04:11 helix pleroma[1783]: [debug] Elixir.Pleroma.Web.ActivityPub.MRF.AntiLinkSpamPolicy is excluded from config descriptions, because does not implement `config_description/0` method.
Jun 02 04:04:11 helix pleroma[1783]: [debug] Elixir.Pleroma.Web.ActivityPub.MRF.AntiFollowbotPolicy is excluded from config descriptions, because does not implement `config_description/0` method.
Jun 02 04:04:11 helix pleroma[1783]: [debug] Elixir.Pleroma.Web.ActivityPub.MRF.FollowBotPolicy is excluded from config descriptions, because does not implement `config_description/0` method.
Jun 02 04:04:11 helix pleroma[1783]: [debug] Elixir.Pleroma.Web.ActivityPub.MRF.NoEmptyPolicy is excluded from config descriptions, because does not implement `config_description/0` method.
Jun 02 04:04:11 helix pleroma[1783]: [debug] Elixir.Pleroma.Web.ActivityPub.MRF.UserAllowListPolicy is excluded from config descriptions, because does not implement `config_description/0` method.
Jun 02 04:04:11 helix pleroma[1783]: [debug] Elixir.Pleroma.Web.ActivityPub.MRF.NoOpPolicy is excluded from config descriptions, because does not implement `config_description/0` method.
Jun 02 04:04:11 helix pleroma[1783]: [debug] QUERY OK source="config" db=3.2ms queue=7.1ms idle=0.0ms
Jun 02 04:04:11 helix pleroma[1783]: SELECT c0."id", c0."key", c0."group", c0."value", c0."inserted_at", c0."updated_at" FROM "config" AS c0 []
Jun 02 04:04:11 helix pleroma[1783]: [info] Function passed as a handler with ID "oban-monitor-failure" is local function.
Jun 02 04:04:11 helix pleroma[1783]: This mean that it is either anonymous function or capture of function without module specified. That may cause performance penalty when calling such handler. For more details see note in `telemetry:attach/4` documentation.
Jun 02 04:04:11 helix pleroma[1783]: https://hexdocs.pm/telemetry/telemetry.html#attach-4
Jun 02 04:04:11 helix pleroma[1783]: [info] Function passed as a handler with ID "oban-monitor-success" is local function.
Jun 02 04:04:11 helix pleroma[1783]: This mean that it is either anonymous function or capture of function without module specified. That may cause performance penalty when calling such handler. For more details see note in `telemetry:attach/4` documentation.
Jun 02 04:04:11 helix pleroma[1783]: https://hexdocs.pm/telemetry/telemetry.html#attach-4
Jun 02 04:04:11 helix pleroma[1783]: [debug] QUERY OK source="data_migrations" db=0.8ms queue=2.5ms idle=44.5ms
Jun 02 04:04:11 helix pleroma[1783]: SELECT d0."id", d0."name", d0."state", d0."feature_lock", d0."params", d0."data", d0."inserted_at", d0."updated_at" FROM "data_migrations" AS d0 WHERE (d0."name" = $1) ["populate_hashtags_table"]
Jun 02 04:04:11 helix pleroma[1783]: [debug] QUERY OK source="data_migrations" db=0.9ms queue=3.4ms idle=44.9ms
Jun 02 04:04:11 helix pleroma[1783]: SELECT d0."id", d0."name", d0."state", d0."feature_lock", d0."params", d0."data", d0."inserted_at", d0."updated_at" FROM "data_migrations" AS d0 WHERE (d0."name" = $1) ["delete_context_objects"]
Jun 02 04:04:11 helix pleroma[1783]: [debug] QUERY OK source="data_migrations" db=2.0ms queue=0.1ms idle=40.4ms
Jun 02 04:04:11 helix pleroma[1783]: SELECT d0."id", d0."name", d0."state", d0."feature_lock", d0."params", d0."data", d0."inserted_at", d0."updated_at" FROM "data_migrations" AS d0 WHERE (d0."name" = $1) ["delete_context_objects"]
Jun 02 04:04:11 helix pleroma[1783]: [debug] QUERY OK source="data_migrations" db=3.7ms idle=46.8ms
Jun 02 04:04:11 helix pleroma[1783]: SELECT d0."id", d0."name", d0."state", d0."feature_lock", d0."params", d0."data", d0."inserted_at", d0."updated_at" FROM "data_migrations" AS d0 WHERE (d0."name" = $1) ["populate_hashtags_table"]
Jun 02 04:04:11 helix pleroma[1783]: [info] Gopher server disabled
Jun 02 04:04:11 helix pleroma[1783]: [debug] QUERY OK db=0.2ms queue=0.5ms idle=40.8ms
Jun 02 04:04:11 helix pleroma[1783]: show server_version []
Jun 02 04:04:11 helix pleroma[1783]: [debug] QUERY OK source="users" db=457.1ms decode=0.1ms queue=2.8ms idle=18.8ms
Jun 02 04:04:11 helix pleroma[1783]: SELECT distinct split_part(u0."nickname", '@', 2) FROM "users" AS u0 WHERE (u0."local" != $1) [true]
Jun 02 04:04:11 helix pleroma[1783]: [debug] QUERY OK source="users" db=4.5ms queue=1.4ms idle=466.6ms
Jun 02 04:04:11 helix pleroma[1783]: SELECT sum(u0."note_count") FROM "users" AS u0 WHERE (NOT (u0."nickname" IS NULL)) AND (NOT (u0."nickname" LIKE 'internal.%')) AND (u0."local" = $1) [true]
Jun 02 04:04:11 helix pleroma[1783]: [debug] QUERY OK source="users" db=2.4ms queue=1.0ms idle=472.6ms
Jun 02 04:04:11 helix pleroma[1783]: SELECT count(u0."id") FROM "users" AS u0 WHERE (u0."is_active" = TRUE) AND (u0."local" = TRUE) AND (NOT (u0."nickname" IS NULL)) AND (NOT (u0."invisible")) []
Jun 02 04:04:13 helix pleroma[1783]: [debug] Tzdata polling for update.
Jun 02 04:04:13 helix pleroma[1783]: [debug] Tzdata polling shows the loaded tz database is up to date.
Jun 02 04:04:16 helix pleroma[1783]: [debug] QUERY OK source="users" db=6.1ms queue=3.1ms idle=1052.9ms
Jun 02 04:04:16 helix pleroma[1783]: SELECT u0."id", u0."bio", u0."raw_bio", u0."email", u0."name", u0."nickname", u0."password_hash", u0."keys", u0."public_key", u0."ap_id", u0."avatar", u0."local", u0."follower_address", u0."following_address", u0."featured_address", u0."tags", u0."last_refreshed_at", u0."last_digest_emailed_at", u0."banner", u0."background", u0."note_count", u0."follower_count", u0."following_count", u0."is_locked", u0."is_confirmed", u0."password_reset_pending", u0."is_approved", u0."registration_reason", u0."confirmation_token", u0."default_scope", u0."domain_blocks", u0."is_active", u0."no_rich_text", u0."ap_enabled", u0."is_moderator", u0."is_admin", u0."show_role", u0."uri", u0."hide_followers_count", u0."hide_follows_count", u0."hide_followers", u0."hide_follows", u0."hide_favorites", u0."email_notifications", u0."mascot", u0."emoji", u0."pleroma_settings_store", u0."fields", u0."raw_fields", u0."is_discoverable", u0."invisible", u0."allow_following_move", u0."skip_thread_containment", u0."actor_type", u0."also_known_as", u0."inbox", u0."shared_inbox", u0."accepts_chat_messages", u0."last_active_at", u0."disclose_client", u0."pinned_objects", u0."is_suggested", u0."last_status_at", u0."birthday", u0."show_birthday", u0."language", u0."notification_settings", u0."blocks", u0."mutes", u0."muted_reblogs", u0."muted_notifications", u0."subscribers", u0."multi_factor_authentication_settings", u0."inserted_at", u0."updated_at" FROM "users" AS u0 WHERE (u0."ap_id" = $1) ["https://social.malacology.net/internal/fetch"]
Jun 02 04:05:12 helix pleroma[1783]: [debug] QUERY OK source="users" db=445.1ms queue=0.1ms idle=1172.6ms
Jun 02 04:05:12 helix pleroma[1783]: SELECT distinct split_part(u0."nickname", '@', 2) FROM "users" AS u0 WHERE (u0."local" != $1) [true]
Jun 02 04:05:12 helix pleroma[1783]: [debug] QUERY OK source="users" db=0.8ms idle=943.6ms
Jun 02 04:05:12 helix pleroma[1783]: SELECT sum(u0."note_count") FROM "users" AS u0 WHERE (NOT (u0."nickname" IS NULL)) AND (NOT (u0."nickname" LIKE 'internal.%')) AND (u0."local" = $1) [true]
Jun 02 04:05:12 helix pleroma[1783]: [debug] QUERY OK source="users" db=0.8ms idle=944.5ms
Jun 02 04:05:12 helix pleroma[1783]: SELECT count(u0."id") FROM "users" AS u0 WHERE (u0."is_active" = TRUE) AND (u0."local" = TRUE) AND (NOT (u0."nickname" IS NULL)) AND (NOT (u0."invisible")) []
Jun 02 04:06:12 helix pleroma[1783]: [debug] QUERY OK source="users" db=415.7ms queue=0.1ms idle=1340.5ms
Jun 02 04:06:12 helix pleroma[1783]: SELECT distinct split_part(u0."nickname", '@', 2) FROM "users" AS u0 WHERE (u0."local" != $1) [true]
Jun 02 04:06:12 helix pleroma[1783]: [debug] QUERY OK source="users" db=2.8ms idle=1362.5ms
Jun 02 04:06:12 helix pleroma[1783]: SELECT sum(u0."note_count") FROM "users" AS u0 WHERE (NOT (u0."nickname" IS NULL)) AND (NOT (u0."nickname" LIKE 'internal.%')) AND (u0."local" = $1) [true]
Jun 02 04:06:12 helix pleroma[1783]: [debug] QUERY OK source="users" db=2.3ms idle=1365.5ms
Jun 02 04:06:12 helix pleroma[1783]: SELECT count(u0."id") FROM "users" AS u0 WHERE (u0."is_active" = TRUE) AND (u0."local" = TRUE) AND (NOT (u0."nickname" IS NULL)) AND (NOT (u0."invisible")) []
```
my nginx here
```
proxy_cache_path /tmp/pleroma-media-cache levels=1:2 keys_zone=pleroma_media_cache:10m max_size=10g
inactive=720m use_temp_path=off;
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name MY_DOMAIN;
include /etc/nginx/custom/ssl.conf;
access_log /var/log/nginx/access.log;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript application/activity+json application/atom+xml;
location / {
# if you do not want remote frontends to be able to access your Pleroma backend
# server, remove these lines.
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Allow-Methods' 'POST, PUT, DELETE, GET, PATCH, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type, Idempotency-Key' always;
add_header 'Access-Control-Expose-Headers' 'Link, X-RateLimit-Reset, X-RateLimit-Limit, X-RateLimit-Remaining, X-Request-Id' always;
if ($request_method = OPTIONS) {
return 204;
}
# stop removing lines here.
add_header X-XSS-Protection "1; mode=block";
add_header X-Permitted-Cross-Domain-Policies none;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header Referrer-Policy same-origin;
add_header X-Download-Options noopen;
# Uncomment this only after you get HTTPS working.
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_pass http://localhost:4000;
client_max_body_size 16m;
}
location /proxy {
proxy_cache pleroma_media_cache;
proxy_cache_lock on;
proxy_ignore_client_abort on;
proxy_pass http://localhost:4000;
}
}
```
my ufw rule, as previously work well, I am sure there is no problem
```
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
4000/tcp ALLOW Anywhere
```
my nginx error is here
```
2023/12/04 10:56:06 [error] 70603#70603: *13 connect() failed (111: Connection refused) while connecting to upstream, client: 172.69.195.81, server: social.malacology.net, request: "GET / HTTP/2.0", upstream: "http://[::1]:4000/", host: "social.malacology.net"
2023/12/04 10:56:06 [error] 70603#70603: *13 connect() failed (111: Connection refused) while connecting to upstream, client: 172.69.195.81, server: social.malacology.net, request: "GET / HTTP/2.0", upstream: "http://127.0.0.1:4000/", host: "social.malacology.net"
2023/12/04 10:56:07 [error] 70603#70603: *18 no live upstreams while connecting to upstream, client: 172.69.194.3, server: social.malacology.net, request: "GET /favicon.ico HTTP/2.0", upstream: "http://localhost/favicon.ico", host: "social.malacology.net", referrer: "https://social.malacology.net/"
2023/12/04 10:56:27 [error] 70603#70603: *33 connect() failed (111: Connection refused) while connecting to upstream, client: 172.69.60.151, server: social.malacology.net, request: "POST /inbox HTTP/2.0", upstream: "http://127.0.0.1:4000/inbox", host: "social.malacology.net"
2023/12/04 10:56:27 [error] 70603#70603: *33 connect() failed (111: Connection refused) while connecting to upstream, client: 172.69.60.151, server: social.malacology.net, request: "POST /inbox HTTP/2.0", upstream: "http://[::1]:4000/inbox", host: "social.malacology.net"
2023/12/04 10:56:47 [error] 70603#70603: *13 connect() failed (111: Connection refused) while connecting to upstream, client: 172.69.195.81, server: social.malacology.net, request: "GET / HTTP/2.0", upstream: "http://127.0.0.1:4000/", host: "social.malacology.net"
2023/12/04 10:56:47 [error] 70603#70603: *13 connect() failed (111: Connection refused) while connecting to upstream, client: 172.69.195.81, server: social.malacology.net, request: "GET / HTTP/2.0", upstream: "http://[::1]:4000/", host: "social.malacology.net"
2023/12/04 10:56:48 [error] 70603#70603: *18 no live upstreams while connecting to upstream, client: 172.69.194.3, server: social.malacology.net, request: "GET /favicon.ico HTTP/2.0", upstream: "http://localhost/favicon.ico", host: "social.malacology.net", referrer: "https://social.malacology.net/"
2023/12/04 10:56:53 [error] 70603#70603: *50 no live upstreams while connecting to upstream, client: 172.70.123.111, server: social.malacology.net, request: "POST /inbox HTTP/2.0", upstream: "http://localhost/inbox", host: "social.malacology.net"
```https://git.pleroma.social/pleroma/pleroma/-/issues/3130Participation reaching ConversationView without an ap_id key2023-11-13T02:54:35ZZeroParticipation reaching ConversationView without an ap_id keySo I saw this error a bunch of times in my Pleroma log, I don't know how to reproduce or what causes it though.
```
15:57:04.522 [error] Process #PID<0.13534.7> raised an exception
** (KeyError) key :ap_id not found in: nil. If you ar...So I saw this error a bunch of times in my Pleroma log, I don't know how to reproduce or what causes it though.
```
15:57:04.522 [error] Process #PID<0.13534.7> raised an exception
** (KeyError) key :ap_id not found in: nil. If you are using the dot syntax, such as map.field, make sure the left-hand side of the dot is a map
lib/pleroma/web/mastodon_api/views/conversation_view.ex:27: Pleroma.Web.MastodonAPI.ConversationView.render/2
lib/pleroma/web/views/streamer_view.ex:142: Pleroma.Web.StreamerView.render/2
lib/pleroma/web/streamer.ex:308: Pleroma.Web.Streamer.push_to_socket/2
```
Here are the relevant code locations:
- [streamer.ex:308](https://git.pleroma.social/pleroma/pleroma/-/blob/31ec5cd35eece97aa1213c401b40d3ab83689ea9/lib/pleroma/web/streamer.ex#L308)
- [streamer_view.ex:142](https://git.pleroma.social/pleroma/pleroma/-/blob/31ec5cd35eece97aa1213c401b40d3ab83689ea9/lib/pleroma/web/views/streamer_view.ex#L130)
- [conversation_view.ex:27](https://git.pleroma.social/pleroma/pleroma/-/blob/31ec5cd35eece97aa1213c401b40d3ab83689ea9/lib/pleroma/web/mastodon_api/views/conversation_view.ex#L27)https://git.pleroma.social/pleroma/pleroma/-/issues/3129Purge or prevent OAuth tokens with no user id2023-05-29T09:44:44ZDuponinPurge or prevent OAuth tokens with no user idFollowing recent security update, I deleted all OAuth tokens but I noticed there was a huge amount (a bit more than 300k) tokens where `user_id` is `NULL`.
In comparison, I had slightly more than 3k valid OAuth tokens (with `user_id` set...Following recent security update, I deleted all OAuth tokens but I noticed there was a huge amount (a bit more than 300k) tokens where `user_id` is `NULL`.
In comparison, I had slightly more than 3k valid OAuth tokens (with `user_id` set).
You can find on your instance doing the following SQL `select count(id) from oauth_tokens where user_id is null;`.
I’ve yet to understand why these tokens without `user_id` exist.
@lanodan told me those exist because of Mastodon applications that don’t work with our MastoAPI implementation (citation needed).
We should prevent those to exist ideally in a first place, but in case we can’t, having a purge would be good.
I’m not sure if this is a security issue, but still concerning nonetheless.https://git.pleroma.social/pleroma/pleroma/-/issues/3128Idea: add a Hashcash or some other proof-of-work to the register page2023-06-22T03:18:50ZZeroIdea: add a Hashcash or some other proof-of-work to the register pageI had this idea and only just learned about Hashcash (https://en.wikipedia.org/wiki/Hashcash).
I think this (along with a better captcha) would be good to slow down things like skids mass creating accounts, which happened recently.
Th...I had this idea and only just learned about Hashcash (https://en.wikipedia.org/wiki/Hashcash).
I think this (along with a better captcha) would be good to slow down things like skids mass creating accounts, which happened recently.
There's an existing Elixir library: https://github.com/danj3/elixir-hashcash
And probably a lot of JS implementation like https://github.com/007/hashcash-js
I found this example of it being used for a sign up page, it's Rails, but it could be a good model for an implementation: https://github.com/BaseSecrete/active_hashcash
Aside from that, maybe some documentation on how to rate limit the login page properly on nginx and such would be helpful.
Just throwing some ideas out there, I don't think I'm competent enough to implement it, though.https://git.pleroma.social/pleroma/pleroma/-/issues/3127Hashtag links don't work in Mona app2023-06-22T03:02:34ZfeldHashtag links don't work in Mona appAllegedly our hashtag links need a class of "mention" applied to them, and then hashtag timeline thing view thing in the app will work correctly like it does for Mastodon?Allegedly our hashtag links need a class of "mention" applied to them, and then hashtag timeline thing view thing in the app will work correctly like it does for Mastodon?https://git.pleroma.social/pleroma/pleroma/-/issues/3122Self-deleting account doesn't purge all its statuses2023-05-27T03:45:26ZtusooaSelf-deleting account doesn't purge all its statuses0. Delete one's own account using the delete account API
1. Their posts are still retained, and still exposed in the context API. This contradicts to user expectation that deleting their account will also purge all of its posts, at least...0. Delete one's own account using the delete account API
1. Their posts are still retained, and still exposed in the context API. This contradicts to user expectation that deleting their account will also purge all of its posts, at least from the point of view of the local server.