Post B6Und0MeM7IO7pZbwe by tadano@mt.watamelon.win
(DIR) More posts by tadano@mt.watamelon.win
(DIR) Post #B6Ukzfn4iO9B7B3Dea by tadano@mt.watamelon.win
2 likes, 3 repeats
Alright now to figure out the following issues:>why instances like ryona.agency, tsundere.love, annihilation.social aren't loading images (all media is proxied by default i.e. not loaded from a local cache)>why custom emoji reacts are not working despite cust emotes being usable in posting/being on the server>if database shenanigans need to be done upgrading from 4.x to 5.3.0>why federation is slow and how to get older posts in a timely manner (AI log analysis kept mentioning a duplicate key bug, unsure if hallucinatory or me being dumb :cirnoshrug:)>why @relaystalker is STILL getting stuck on follow requesting with relay accounts>how to get this instance to communicate with dedicated relays>how to get tor/tor federation up with this docker setup>how to federate over I2P>how to temporarily get schwartzwelt up in a container without all the media so I can migrate all my followers from there to hereAll shall be figured out in time as I relearn sysadmining :watamelonogey:t. Instance running on Rocky Linux for the first timeRepost if you can! God willing this reaches as many Mitra sysadmins as possible because I don't think I can badger silverpill alone without being terribly rude/annoying :watamelonsweat:
(DIR) Post #B6UlGveYzV77EdIWwK by tadano@mt.watamelon.win
0 likes, 0 repeats
ALSO>how to pull past posts from profiles quickly so I am not looking at a profile timeline with gaping holes
(DIR) Post #B6Und09BACWJS3Gqwq by DrRyanSkelton@shin.mugicha.club
0 likes, 0 repeats
@tadano arent you dead?
(DIR) Post #B6Und0MeM7IO7pZbwe by tadano@mt.watamelon.win
0 likes, 0 repeats
@DrRyanSkelton not yet
(DIR) Post #B6UoYRXlyZ4ovXAHAm by Wiz@tsundere.love
0 likes, 0 repeats
@tadano @relaystalker I can't really help with why you can't see our media, but good luck.
(DIR) Post #B6UoYRo4zw7Xk6nIae by tadano@mt.watamelon.win
1 likes, 0 repeats
@Wiz @relaystalker It's inconsistent like the PFP of @mischievoustomato doesn't load but yours does, and the other instances mentioned by name are similar in regrards to some stuff just not getting pulled for some reason. Could be my instance doing something wrong when requesting the image, I dunno
(DIR) Post #B6UooE0I5KzzZC1rP6 by sapphire@shortstacksran.ch
0 likes, 0 repeats
@tadano @relaystalker @Wiz @mischievoustomato did you migrate your stuff or is this a new instance?
(DIR) Post #B6UooESeNtgSz9IVbk by tadano@mt.watamelon.win
0 likes, 0 repeats
@sapphire @relaystalker @mischievoustomato @Wiz I migrated all my stuff, had the raw pgdata dirs. I had similar issues with media fetching before though I had chalked it up to the janky bastion server VPN setup I had when hosting out of my house.
(DIR) Post #B6UozUI9rm1xGjkzA0 by Wiz@tsundere.love
0 likes, 0 repeats
@tadano @relaystalker @mischievoustomato I think the commonality is us all being on Pleroma, but, federation is sometimes just gay.
(DIR) Post #B6UozUWgzjelzoYaoa by p@fsebugoutzone.org
0 likes, 0 repeats
@Wiz @tadano @mischievoustomato @relaystalker Media proxies are a real motherfucker. How does Mitra do them?
(DIR) Post #B6UpRZqOogtMb6APk8 by sapphire@shortstacksran.ch
0 likes, 0 repeats
@tadano @relaystalker @Wiz @mischievoustomato clear your various image caches (nginx, pleroma)
(DIR) Post #B6UpRZzGHjyt2aJUYa by tadano@mt.watamelon.win
0 likes, 0 repeats
@sapphire @relaystalker @mischievoustomato @Wiz I'm running Caddy for reverse proxy and no Pleroma is up on this server yet. Will run some cache clearing however.
(DIR) Post #B6UqkAUtNbonRRXITg by tadano@mt.watamelon.win
0 likes, 0 repeats
@p @relaystalker @Wiz @mischievoustomato Not a Rust programmer so I just used Claude to get the following:When Mitra receives a federated post containing remote media (images, videos, etc.), it doesn't serve those remote URLs directly to clients. Instead, it rewrites them to local proxy URLs that go through its own /api/media_proxy/ endpoint. This keeps client IP addresses private and allows Mitra to enforce content-type and size policies.Configuration>mitra_config/src/config.rs exposes a media_proxy_enabled flag (default: true). The server checks this at startup in mitra_api/src/server.rs line 55 and only registers the proxy routes when it's enabled.URL Rewriting (at serialization time)The rewriting happens inside ClientMediaServer in mitra_api/src/mastodon_api/media_server.rs. Its url_for() method is called whenever an attachment is serialized into an API response.For local files it returns a direct filesystem-backed URL. For remote links it generates a signed proxy URL:>The remote URL is hex-encoded.>An Ed25519 signature is created over the URL bytes using the instance's secret key.>The signature is hex-encoded.>The final URL is: {instance_base}/api/media_proxy/{hex_encoded_url}?signature={hex_signature}>This rewriting is transparent to API consumers. The attachment serialization in mitra_api/src/mastodon_api/media/types.rs line 71 calls media_server.url_for() for every attachment, and status responses in mitra_api/src/mastodon_api/statuses/types.rs line 188 use this path.The Proxy Endpoint>Route: GET /api/media_proxy/{url_encoded}?signature={signature}>Handler: mitra_api/src/mastodon_api/media_proxy/views.rs line 26When a client fetches a proxy URL, the handler:>Verifies the Ed25519 signature against the encoded URL bytes using the same instance key. If the signature is invalid, it rejects the request. This prevents clients from crafting arbitrary proxy URLs to fetch anything.>Calls stream_media() from apx_sdk (apx_sdk/src/fetch.rs line 349) with the decoded remote URL.>Streams the response back to the client with the correct Content-Type header.The Fetch Layer (stream_media)apx_sdk/src/fetch.rs line 349 handles the actual HTTP fetch. It follows redirects, validates the Content-Type against the configured allowed media types, enforces file_size_limit (default 20 MB from mitra_config/src/limits.rs line 68), and returns a stream rather than buffering the response in memory.Storage ModelRemote media URLs are stored as PartialMediaInfo::Link { url, media_type } in mitra_models/src/media/types.rs. The URL stored is the original remote URL. Proxy URL generation only happens at serialization time, not in the database.Security DesignClients can't proxy arbitrary URLs because each proxy URL carries an Ed25519 signature produced by the instance's own key. Only Mitra itself can produce valid proxy URLs, so the endpoint can't be abused as an open proxy by external clients. Large file DoS is prevented by file_size_limit enforced in stream_media. Malicious content types are blocked by an allowlist validated before streaming begins. Memory pressure is avoided because responses are fully streamed, not buffered.
(DIR) Post #B6UrkElbbbbMdawylU by p@fsebugoutzone.org
0 likes, 0 repeats
@tadano @relaystalker @Wiz @mischievoustomato It's like pasting search engine results at someone.
(DIR) Post #B6UuN1p7rUV9hHDo0m by tadano@mt.watamelon.win
1 likes, 0 repeats
@p @relaystalker @Wiz @mischievoustomato Come to think of it this is rather pertinent to say given search engines are glorified AI wrappers at this point. Apologies if my post came off as rather rude/lazy
(DIR) Post #B6Uw2nRrnYrnEJp51M by Wiz@tsundere.love
1 likes, 0 repeats
@p @relaystalker @tadano @mischievoustomato yeah this kind of AI reply drives me up a damn wall
(DIR) Post #B6Uw2ndZ64DxobIQFs by lolitechengineer@loli.church
1 likes, 0 repeats
@Wiz@tsundere.love @p@fsebugoutzone.org @relaystalker@mt.watamelon.win @tadano@mt.watamelon.win @mischievoustomato@tsundere.love @grok@ebiverse.social why is this guy so upset?
(DIR) Post #B6Uw2nouPtIYNmbTw8 by tadano@mt.watamelon.win
1 likes, 0 repeats
@lolitechengineer @p @Wiz @mischievoustomato @grok @relaystalker Egh I didn't intend on making an AI slop post, though I guess it's unavoidable if you use it to get some function details from a codebase you're unfamiliar with.
(DIR) Post #B6UwStZbeIRdkrt6ie by mischievoustomato@tsundere.love
1 likes, 0 repeats
@lolitechengineer @p @tadano @Wiz @grok @relaystalker his bussy's been leaking
(DIR) Post #B6Uy9IwRotrKYBMFV2 by p@fsebugoutzone.org
0 likes, 0 repeats
@Wiz @mischievoustomato @relaystalker @tadano Yeah, Prod pasted one at me once and I told a clanker to write the response and he got huffy and it's like, "Why'd you get annoyed that I did the same thing you just did?"In the grim cyberpunk post-apocalypse, all communications will be written by machines and then read by machines who will write summaries for other machines to read and then compose replies to. Humans will be completely out of the loop as robots create memes and other robots evaluate whether they are funny or not and then save the files to the disk. You look into the directory where you keep your memes and it's all QR codes of jokes that start with "You're right to call me out on that - sorry! Let me try again." You decide to go out and smoke, but fire, being a weapon, is now illegal. You try to inhale nicotine from the vaporizer, realizing that you are basically sucking a robot's dick for drugs, but the vaporizer is just slightly too smug; you can't bear it. So you go take a massive shit. The toilet recommends more fiber. It offers to order some gummy fiber supplements from Amazon. You try to flush but it tells you a long-winded story about water conservation. "I just want to flush this shit, dude." The machine ignores you and asks, "Do you want to (a) learn abut the benefits of fluoride, (b) order some Amazon Basics Fiber Gummies, or (c) do a more in-depth analysis of your diet? Please choose one: a, b, or c." Holding your nose, you say "Just fucking flush!" and start repeatedly pushing the touchscreen that has replaced the lever on the toilet. The screen turns red because it has detected a jailbreak attempt. You reach for a Verification Can as the ad plays.genuine_people_personalities.png
(DIR) Post #B6XYm66vRcFqiPyZBQ by p@fsebugoutzone.org
0 likes, 0 repeats
@tadano @relaystalker @Wiz @mischievoustomato Ah, no worries. It gave me a chance to write a verification can joke.
(DIR) Post #B6XaQmLvuOpDGRxROi by silverpill@mitra.social
1 likes, 0 repeats
@tadano @p @relaystalker @Wiz @mischievoustomato It's a correct description.
(DIR) Post #B6XaVWVKGD1nYic5r6 by p@fsebugoutzone.org
0 likes, 0 repeats
@silverpill @tadano @relaystalker @Wiz @mischievoustomato It can describe the code accurately but it includes a lot of irrelevant detail.