~jadedctrl/jam-xwx-moe

Showing details for patch a359b4a7852c9b7eb947f2be05ac8ec2f58caf36.
2024-08-09 (Fri), 4:38 PM - - a359b4a7852c9b7eb947f2be05ac8ec2f58caf36

Donas alidirektigojn nginx-ajn por gutkatoj

Metas agorddosierojn por nginx en la deponejo.
Summary of changes
2 files added
  • nginx/bildosignaj_alidirektigoj.conf
  • nginx/pleroma.conf
1 files modified with 2 lines added and 1 lines removed
  • nginx/alŝuti.sh with 2 added and 1 removed lines
Binary files old-jam-xwx-moe/nginx/404.fonto.jpg and new-jam-xwx-moe/nginx/404.fonto.jpg differ
diff -rN -u old-jam-xwx-moe/nginx/404.fonto.url new-jam-xwx-moe/nginx/404.fonto.url
--- old-jam-xwx-moe/nginx/404.fonto.url	2024-11-24 03:21:46.506133891 +0000
+++ new-jam-xwx-moe/nginx/404.fonto.url	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-https://images2.alphacoders.com/920/thumb-1920-920230.jpg
diff -rN -u old-jam-xwx-moe/nginx/404.html new-jam-xwx-moe/nginx/404.html
--- old-jam-xwx-moe/nginx/404.html	2024-11-24 03:21:46.506133891 +0000
+++ new-jam-xwx-moe/nginx/404.html	1970-01-01 00:00:00.000000000 +0000
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML>
-<html lang="eo">
-  <head>
-	<title>404 — Urseto ne trovita</title>
-	<link rel="stylesheet" type="text/css" href="/x_x/style.css">
-	<meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no">
-</head>
-
-  <body>
-	<div class="panel user-profile-placeholder">
-	  <div class="panel-heading">
-		<div class="title">Eraro 404 — Ne trovita</div>
-	  </div>
-	  <div class="panel-body">
-		<h1>Tiu paĝo ne troviĝis!</h1>
-		<p>Vi eble mistajpis la retadreson: Rekontrolu ĝin!</p>
-		<p>Krom tio, eblas ke foriĝis (aŭ neniam fariĝis) tiu paĝo. Tiuokaze, bedaŭron!</p>
-	  </div>
-	  <div class="panel-body">
-		<img src="/x_x/404.png">
-	  </div>
-	</div>
-  </body>
-
-</html>
Binary files old-jam-xwx-moe/nginx/404.png and new-jam-xwx-moe/nginx/404.png differ
Binary files old-jam-xwx-moe/nginx/404.xcf and new-jam-xwx-moe/nginx/404.xcf differ
Binary files old-jam-xwx-moe/nginx/502.fonto.jpg and new-jam-xwx-moe/nginx/502.fonto.jpg differ
diff -rN -u old-jam-xwx-moe/nginx/502.fonto.url new-jam-xwx-moe/nginx/502.fonto.url
--- old-jam-xwx-moe/nginx/502.fonto.url	2024-11-24 03:21:46.514133904 +0000
+++ new-jam-xwx-moe/nginx/502.fonto.url	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-http://img04.pixiv.net/img/check/23049103.jpg
diff -rN -u old-jam-xwx-moe/nginx/502.html new-jam-xwx-moe/nginx/502.html
--- old-jam-xwx-moe/nginx/502.html	2024-11-24 03:21:46.514133904 +0000
+++ new-jam-xwx-moe/nginx/502.html	1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML>
-<html lang="eo">
-  <head>
-	<title>502 — Servilo paŭzetas</title>
-	<link rel="stylesheet" type="text/css" href="/x_x/style.css">
-	<meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no">
-</head>
-
-  <body>
-	<div class="panel user-profile-placeholder">
-	  <div class="panel-heading">
-		<div class="title">Eraro 502 — Pordega eraro</div>
-	  </div>
-	  <div class="panel-body">
-		<h1>La servilo paŭzetas!</h1>
-		<p>Ĝi kredeble restartiĝos baldaŭ; bonvolu rekontroli post momento.</p>
-		<p>Se post ~15 minutoj ankoraŭ vidas tiun ĉi eraron, bonvolu sciigi jadedctrl! (Prefere per XMPP/Matrix!)</p>
-		<p><b>Matrix:</b> <a href="https://matrix.to/#/@jadedctrl:tedomum.net">@jadedctrl:tedomum.net</a> — <b>XMPP:</b> <a href="xmpp:jaidedim@dismail.de">jaidedim@dismail.de</a><br>
-		<b>Poŝte:</b> <a href="mailto:jadedctrl@posteo.net">jadedctrl@posteo.net</a></p>
-
-	  </div>
-	  <div class="panel-body">
-		<img src="/x_x/502.png">
-	  </div>
-	</div>
-  </body>
-
-</html>
Binary files old-jam-xwx-moe/nginx/502.png and new-jam-xwx-moe/nginx/502.png differ
Binary files old-jam-xwx-moe/nginx/502.xcf and new-jam-xwx-moe/nginx/502.xcf differ
Binary files old-jam-xwx-moe/nginx/503.fonto.jpg and new-jam-xwx-moe/nginx/503.fonto.jpg differ
diff -rN -u old-jam-xwx-moe/nginx/503.fonto.url new-jam-xwx-moe/nginx/503.fonto.url
--- old-jam-xwx-moe/nginx/503.fonto.url	2024-11-24 03:21:46.518133910 +0000
+++ new-jam-xwx-moe/nginx/503.fonto.url	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-https://www.pixiv.net/artworks/106739580
diff -rN -u old-jam-xwx-moe/nginx/503.html new-jam-xwx-moe/nginx/503.html
--- old-jam-xwx-moe/nginx/503.html	2024-11-24 03:21:46.518133910 +0000
+++ new-jam-xwx-moe/nginx/503.html	1970-01-01 00:00:00.000000000 +0000
@@ -1,27 +0,0 @@
-<!DOCTYPE HTML>
-<html lang="eo">
-  <head>
-	<title>503 — Servilo dormetas!</title>
-	<link rel="stylesheet" type="text/css" href="/x_x/style.css">
-	<meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no">
-</head>
-
-  <body>
-	<div class="panel user-profile-placeholder">
-	  <div class="panel-heading">
-		<div class="title">Eraro 503 — Servo nealireblas</div>
-	  </div>
-	  <div class="panel-body">
-		<h1>La servilo dormetas!</h1>
-		<p>Ial, la servilo ne alireblas — bonvolu repovi post kelkajn minutojn.</p>
-		<p>Se post ~15 minutoj ankoraŭ vidas tiun ĉi (verdire tre strangan!) eraron, bonvolu sciigi jadedctrl! (Prefere per XMPP/Matrix!)</p>
-		<p><b>Matrix:</b> <a href="https://matrix.to/#/@jadedctrl:tedomum.net">@jadedctrl:tedomum.net</a> — <b>XMPP:</b> <a href="xmpp:jaidedim@dismail.de">jaidedim@dismail.de</a><br>
-		<b>Poŝte:</b> <a href="mailto:jadedctrl@posteo.net">jadedctrl@posteo.net</a></p>
-	  </div>
-	  <div class="panel-body">
-		<img src="/x_x/503.png">
-	  </div>
-	</div>
-  </body>
-
-</html>
Binary files old-jam-xwx-moe/nginx/503.png and new-jam-xwx-moe/nginx/503.png differ
Binary files old-jam-xwx-moe/nginx/503.xcf and new-jam-xwx-moe/nginx/503.xcf differ
Binary files old-jam-xwx-moe/nginx/504.fonto.jpg and new-jam-xwx-moe/nginx/504.fonto.jpg differ
diff -rN -u old-jam-xwx-moe/nginx/504.fonto.url new-jam-xwx-moe/nginx/504.fonto.url
--- old-jam-xwx-moe/nginx/504.fonto.url	2024-11-24 03:21:46.526133923 +0000
+++ new-jam-xwx-moe/nginx/504.fonto.url	1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-https://twitter.com/_SisterRiver/status/1643983346320699392
diff -rN -u old-jam-xwx-moe/nginx/504.html new-jam-xwx-moe/nginx/504.html
--- old-jam-xwx-moe/nginx/504.html	2024-11-24 03:21:46.526133923 +0000
+++ new-jam-xwx-moe/nginx/504.html	1970-01-01 00:00:00.000000000 +0000
@@ -1,24 +0,0 @@
-<!DOCTYPE HTML>
-<html lang="eo">
-  <head>
-	<title>504 — Servilo tro malrapidas!</title>
-	<link rel="stylesheet" type="text/css" href="/x_x/style.css">
-	<meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no">
-</head>
-
-  <body>
-	<div class="panel user-profile-placeholder">
-	  <div class="panel-heading">
-		<div class="title">Eraro 504 — Pordega tempoelĉerpo</div>
-	  </div>
-	  <div class="panel-body">
-		<h1>La servilo tro malrapidis!</h1>
-		<p>Bed… aŭron… mi ne estas lerta kuristo… mi simple bezonas… momenton…</p>
-	  </div>
-	  <div class="panel-body">
-		<img src="/x_x/504.png">
-	  </div>
-	</div>
-  </body>
-
-</html>
Binary files old-jam-xwx-moe/nginx/504.png and new-jam-xwx-moe/nginx/504.png differ
Binary files old-jam-xwx-moe/nginx/504.xcf and new-jam-xwx-moe/nginx/504.xcf differ
diff -rN -u "old-jam-xwx-moe/nginx/al\305\235uti.sh" "new-jam-xwx-moe/nginx/al\305\235uti.sh"
--- "old-jam-xwx-moe/nginx/al\305\235uti.sh"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/nginx/al\305\235uti.sh"	2024-11-24 03:21:46.562133982 +0000
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+RSYNC_DRYRUN="--dry-run"
+if test "$1" = "--real"; then
+	RSYNC_DRYRUN=""
+fi
+
+rsync $RSYNC_DRYRUN --recursive --delete --archive --verbose ./x_x/ $(whoami)@xwx.moe:/srv/http/jam.xwx.moe/x_x/
+rsync $RSYNC_DRYRUN --archive --verbose ./*.conf $(whoami)@xwx.moe:/etc/nginx/conf.d/
+
+if test "$RSYNC_DRYRUN" = "--dry-run"; then
+	echo "=================================================="
+	echo "Ran in --dry-run mode!"
+	echo "Try '$(basename "$0") --real' if the output seems OK."
+	echo "=================================================="
+fi
diff -rN -u old-jam-xwx-moe/nginx/bildosignaj_alidirektigoj.conf new-jam-xwx-moe/nginx/bildosignaj_alidirektigoj.conf
--- old-jam-xwx-moe/nginx/bildosignaj_alidirektigoj.conf	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/nginx/bildosignaj_alidirektigoj.conf	2024-11-24 03:21:46.562133982 +0000
@@ -0,0 +1,80 @@
+# Antaŭ kelka tempo, ni alinomigis kelkajn bildsignarojn.
+location ~ '^/emoji/gutkatoj/(.*)' {
+return 301 /emoji/Gutkatoj/$1;
+}
+location ~ '^/emoji/Libera Programaro/(.*)' {
+return 301 /emoji/Programaro%20libera/$1;
+}
+location ~ '^/emoji/Mezlibera Programaro/(.*)' {
+return 301 /emoji/Programaro%20mezlibera/$1;
+}
+location ~ '^/emoji/Malliberaj Bitludoj/(.*)' {
+return 301 /emoji/Bitludoj%20malliberaj/$1;
+}
+
+# Iuj gutkatoj renomiĝis (aŭ provizore mankas) en la gutkataro de Tirifto.
+
+# Gutkataj alinomitaj
+location /emoji/Gutkatoj/gutkateto.png                   { return 301 /emoji/Gutkatoj/gutkato_eta.png; }
+location /emoji/Gutkatoj/gutkato_akvo.png                { return 301 /emoji/Gutkatoj/gutkato_trinkas_akvon.png; }
+location /emoji/Gutkatoj/gutkato_signo_dank.png          { return 301 /emoji/Gutkatoj/gutkato_afiŝo_dank.png; }
+location /emoji/Gutkatoj/gutkato_signo_jes.png           { return 301 /emoji/Gutkatoj/gutkato_afiŝo_jes.png; }
+location /emoji/Gutkatoj/gutkato_signo_miaŭ.png          { return 301 /emoji/Gutkatoj/gutkato_afiŝo_miaŭ.png; }
+location /emoji/Gutkatoj/gutkato_signo_ne.png            { return 301 /emoji/Gutkatoj/gutkato_afiŝo_ne.png; }
+location /emoji/Gutkatoj/gutkato_ĉarmas.png              { return 301 /emoji/Gutkatoj/gutkato_x3.png; }
+location /emoji/Gutkatoj/gutkato_bildolibro.png          { return 301 /emoji/Gutkatoj/gutkato_libro; }
+location /emoji/Gutkatoj/gutkato_dikfingro_suben.png     { return 301 /emoji/Gutkatoj/gutkato_dikfingro_malsupren.png; }
+location /emoji/Gutkatoj/gutkato_fantomiĝas.png          { return 301 /emoji/Gutkatoj/gutkato_morta_fantomiĝas.png; }
+location /emoji/Gutkatoj/gutkato_guuu.png                { return 301 /emoji/Gutkatoj/gutkato_adoras.png; }
+location /emoji/Gutkatoj/gutkato_heroo_bastonpana.png    { return 301 /emoji/Gutkatoj/gutkato_heroo_bastonpano.png; }
+location /emoji/Gutkatoj/gutkato_krono.png               { return 301 /emoji/Gutkatoj/kronkato.png; }
+location /emoji/Gutkatoj/gutkato_kafo.png                { return 301 /emoji/Gutkatoj/gutkato_trinkas_kafon.png; }
+location /emoji/Gutkatoj/gutkato_koleriĝas.png           { return 301 /emoji/Gutkatoj/gutkato_kolera.png; }
+location /emoji/Gutkatoj/gutkato_malridetas.png          { return 301 /emoji/Gutkatoj/gutkato_malĝojeta.png; }
+location /emoji/Gutkatoj/gutkato_paro.png                { return 301 /emoji/Gutkatoj/gutkatoj_duopo.png; }
+location /emoji/Gutkatoj/gutkato_ŝvittima.png            { return 301 /emoji/Gutkatoj/gutkato_konsternita.png; }
+location /emoji/Gutkatoj/gutkato_teo.png                 { return 301 /emoji/Gutkatoj/gutkato_trinkas_teon.png; }
+location /emoji/Gutkatoj/gutkato_konsnciiĝas_ion_konsternan.png { return 301 /emoji/Gutkatoj/gutkato_konsciiĝas_ion_konsternan.png; }
+
+# Gutkatoj mankataj
+location /emoji/Gutkatoj/gutkatoj_altkvinas.png          { return 301 /emoji/Gutkatoj/gutkato_post_gutkato.png; }
+location /emoji/Gutkatoj/gutkato_cumiki.png              { return 301 /emoji/Gutkatoj/gutkato_kontenta; }
+location /emoji/Gutkatoj/gutkato_animeulo.png            { return 301 /emoji/Gutkatoj/gutkato_kapturniĝas.png; }
+location /emoji/Gutkatoj/gutkato_dolaroj.png             { return 301 /emoji/Gutkatoj/gutkato_brilokuloj.png; }
+location /emoji/Gutkatoj/gutkato_spesmiloj.png           { return 301 /emoji/Gutkatoj/gutkato_brilokuloj.png; }
+location /emoji/Gutkatoj/gutkato_donaco_rozkolora.png    { return 301 /emoji/Gutkatoj/gutkato_koro.png; }
+location /emoji/Gutkatoj/gutkato_donaco_ruĝa.png         { return 301 /emoji/Gutkatoj/gutkato_koro.png; }
+location /emoji/Gutkatoj/gutkato_donaco_verda.png        { return 301 /emoji/Gutkatoj/gutkato_koro.png; }
+location /emoji/Gutkatoj/gutkato_dorlotiĝas_malgaje.png  { return 301 /emoji/Gutkatoj/gutkato_malgaja.png; }
+location /emoji/Gutkatoj/gutkato_dorlotiĝas.png          { return 301 /emoji/Gutkatoj/gutkato_x3.png; }
+location /emoji/Gutkatoj/gutkato_fotilo.png              { return 301 /emoji/Gutkatoj/gutkato_fingropafas.png; }
+location /emoji/Gutkatoj/gutkato_fritkuko.png            { return 301 /emoji/Gutkatoj/gutkato_manĝas_oblaton.png; }
+location /emoji/Gutkatoj/gutkato_ĝavo.png                { return 301 /emoji/Gutkatoj/gutkato_trinkas_kafon.png; }
+location /emoji/Gutkatoj/gutkato_haibane.png             { return 301 /emoji/Gutkatoj/gutkato_anĝelo.png; } 
+location /emoji/Gutkatoj/gutkato_kato.png                { return 301 /emoji/Gutkatoj/gutkato.png; }
+location /emoji/Gutkatoj/gutkato_kato_gutkato.png        { return 301 /emoji/Gutkatoj/gutkato_adorinda.png; }
+location /emoji/Gutkatoj/gutkato_krevmaizo.png           { return 301 /emoji/Gutkatoj/gutkato_manĝas_pastobuletojn.png; }
+location /emoji/Gutkatoj/gutkato_lain.png                { return 301 /emoji/Gutkatoj/gutkato_klapkomputilo.png; }
+location /emoji/Gutkatoj/gutkato_manĝas_avokadon.png     { return 301 /emoji/Gutkatoj/gutkato_manĝas_fragon.png; }
+location /emoji/Gutkatoj/gutkato_manĝas_disketon.png     { return 301 /emoji/Gutkatoj/gutkato_manĝas_bastontorteton.png; }
+location /emoji/Gutkatoj/gutkato_manĝas_dolĉbastonon.png { return 301 /emoji/Gutkatoj/gutkato_manĝas_glaciaĵstangon.png; }
+location /emoji/Gutkatoj/gutkato_manĝas_hamburgeron.png  { return 301 /emoji/Gutkatoj/gutkato_manĝas_sandviĉon.png; }
+location /emoji/Gutkatoj/gutkato_manĝas_kareon.png       { return 301 /emoji/Gutkatoj/gutkato_manĝas_rizbulon.png; }
+location /emoji/Gutkatoj/gutkato_manĝas_persikon.png     { return 301 /emoji/Gutkatoj/gutkato_manĝas_fragon.png; }
+location /emoji/Gutkatoj/gutkato_manĝas_solanon.png      { return 301 /emoji/Gutkatoj/gutkato_manĝas_kornbulkon.png; }
+location /emoji/Gutkatoj/gutkato_manĝas_tomaton.png       { return 301 /emoji/Gutkatoj/gutkato_manĝas_fragon.png; }
+location /emoji/Gutkatoj/gutkato_marrabisto.png          { return 301 /emoji/Gutkatoj/gutkato_diablo.png; }
+location /emoji/Gutkatoj/gutkato_megumin.png             { return 301 /emoji/Gutkatoj/gutkato_heroo_bastonpano.png; }
+location /emoji/Gutkatoj/gutkato_ninĝo.png               { return 301 /emoji/Gutkatoj/gutkato_post_muro.png; }
+location /emoji/Gutkatoj/gutkato_pafonta.png             { return 301 /emoji/Gutkatoj/gutkato_kolera.png; }
+location /emoji/Gutkatoj/gutkato_piano.png               { return 301 /emoji/Gutkatoj/gutkato_kapaŭskultiloj.png; }
+location /emoji/Gutkatoj/gutkato_pingveno.png            { return 301 "/emoji/Programaro libera/freedo.png"; }
+location /emoji/Gutkatoj/gutkato_renversas_tablon.png    { return 301 /emoji/Gutkatoj/gutkato_kolera.png; }
+location /emoji/Gutkatoj/gutkato_sagaca.png              { return 301 /emoji/Gutkatoj/gutkato_okulvitroj.png; }
+location /emoji/Gutkatoj/gutkato_salutas_soldate.png     { return 301 /emoji/Gutkatoj/gutkato_salutas.png; }
+location /emoji/Gutkatoj/gutkato_sorĉistino.png          { return 301 /emoji/Gutkatoj/gutkato_heroo_bastonpano.png; }
+location /emoji/Gutkatoj/gutkato_ŝokmuso.png             { return 301 "/emoji/Bitludoj malliberaj/ŝokmuso_tenas_kapon.png"; }
+location /emoji/Gutkatoj/gutkato_ŝtelisto.png            { return 301 /emoji/Gutkatoj/gutkato_diablo.png; }
+location /emoji/Gutkatoj/gutkato_tranĉilo.png            { return 301 /emoji/Gutkatoj/gutkato_malica.png; }
+location /emoji/Gutkatoj/gutkato_venkinta.png            { return 301 /emoji/Gutkatoj/gutkato_fiera.png; }
+location /emoji/Gutkatoj/gutvulpo.png                    { return 301 /emoji/Gutkatoj/gutkato_flaŭno.png; }
diff -rN -u old-jam-xwx-moe/nginx/pleroma.conf new-jam-xwx-moe/nginx/pleroma.conf
--- old-jam-xwx-moe/nginx/pleroma.conf	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/nginx/pleroma.conf	2024-11-24 03:21:46.562133982 +0000
@@ -0,0 +1,195 @@
+# default nginx site config for Pleroma
+#
+# Simple installation instructions:
+# 1. Install your TLS certificate, possibly using Let's Encrypt.
+# 2. Replace 'example.tld' with your instance's domain wherever it appears.
+# 3. Copy this file to /etc/nginx/sites-available/ and then add a symlink to it
+#    in /etc/nginx/sites-enabled/ and run 'nginx -s reload' or restart nginx.
+
+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;
+
+# this is explicitly IPv4 since Pleroma.Web.Endpoint binds on IPv4 only
+# and `localhost.` resolves to [::0] on some systems: see issue #930
+upstream phoenix {
+    server 127.0.0.1:4000 max_fails=5 fail_timeout=60s;
+}
+
+server {
+    if ($host = jam.xwx.moe) {
+        return 301 https://$host$request_uri;
+    } # managed by Certbot
+
+	root /srv/http/jam.xwx.moe/;
+	error_page 403 /x_x/404.html;
+	error_page 404 /x_x/404.html;
+	error_page 502 /x_x/404.html;
+
+
+    server_name    jam.xwx.moe;
+
+    listen         80;
+    listen         [::]:80;
+
+    # Uncomment this if you need to use the 'webroot' method with certbot. Make sure
+    # that the directory exists and that it is accessible by the webserver. If you followed
+    # the guide, you already ran 'mkdir -p /var/lib/letsencrypt' to create the folder.
+    # You may need to load this file with the ssl server block commented out, run certbot
+    # to get the certificate, and then uncomment it.
+    #
+    # location ~ /\.well-known/acme-challenge {
+    #     root /var/lib/letsencrypt/;
+    # }
+    location / {
+      return         301 https://$server_name$request_uri;
+    }
+
+
+}
+
+# Enable SSL session caching for improved performance
+ssl_session_cache shared:ssl_session_cache:10m;
+
+server {
+    server_name jam.xwx.moe;
+
+	root /srv/http/jam.xwx.moe/;
+	error_page 404 /x_x/404.html;
+	error_page 502 /x_x/502.html;
+
+    listen 443 ssl http2;
+    listen [::]:443 ssl http2;
+    ssl_session_timeout 1d;
+    ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
+    ssl_session_tickets off;
+
+    ssl_trusted_certificate   /etc/letsencrypt/live/coinsh.red-0004/chain.pem;
+    ssl_certificate /etc/letsencrypt/live/coinsh.red-0004/fullchain.pem; # managed by Certbot
+    ssl_certificate_key /etc/letsencrypt/live/coinsh.red-0004/privkey.pem; # managed by Certbot
+
+    ssl_protocols TLSv1.2 TLSv1.3;
+    ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
+    ssl_prefer_server_ciphers off;
+    # In case of an old server with an OpenSSL version of 1.0.2 or below,
+    # leave only prime256v1 or comment out the following line.
+    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
+    ssl_stapling on;
+    ssl_stapling_verify on;
+
+    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;
+
+    # the nginx default is 1m, not enough for large media uploads
+    client_max_body_size 16m;
+    ignore_invalid_headers off;
+
+    proxy_http_version 1.1;
+    proxy_set_header Upgrade $http_upgrade;
+    proxy_set_header Connection "upgrade";
+    proxy_set_header Host $http_host;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+
+    location / {
+        proxy_pass http://phoenix;
+    }
+
+    location /x_x/ {
+			 root /srv/http/jam.xwx.moe/;
+	}
+
+	include /etc/nginx/conf.d/bildosignaj_alidirektigoj.conf
+
+	location ~ '^/paĝoj(/)*$' {
+		 rewrite '^/paĝoj' '/static/paĝoj-index/index.html';
+	}
+
+	location ~ '^/paĝoj/(.*)' {
+			 rewrite '^/paĝoj/(.*)' '/static/paĝoj-index/$1.html';
+	}
+
+    # Uncomment this if you want notice compatibility routes for frontends like Soapbox.
+    # location ~ ^/@[^/]+/([^/]+)$ {
+    #     proxy_pass http://phoenix/notice/$1;
+    # }
+    #
+    # location ~ ^/@[^/]+/posts/([^/]+)$ {
+    #     proxy_pass http://phoenix/notice/$1;
+    # }
+    #
+    # location ~ ^/[^/]+/status/([^/]+)$ {
+    #     proxy_pass http://phoenix/notice/$1;
+    # }
+
+    location ~ ^/(media|proxy) {
+        proxy_cache        pleroma_media_cache;
+        slice              1m;
+        proxy_cache_key    $host$uri$is_args$args$slice_range;
+        proxy_set_header   Range $slice_range;
+        proxy_cache_valid  200 206 301 304 1h;
+        proxy_cache_lock   on;
+        proxy_ignore_client_abort on;
+        proxy_buffering    on;
+        chunked_transfer_encoding on;
+        proxy_pass         http://phoenix;
+    }
+
+}
+
+
+server {
+    server_name ujo.jam.xwx.moe;
+    listen 443 ssl http2;
+    listen [::]:443 ssl http2;
+
+	root /srv/http/jam.xwx.moe/;
+	error_page 404 /x_x/404.html;
+	error_page 502 /x_x/404.html;
+
+ssl_session_timeout 1d;
+    ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
+    ssl_session_tickets off;
+
+    ssl_trusted_certificate   /etc/letsencrypt/live/coinsh.red-0004/chain.pem;
+    ssl_certificate /etc/letsencrypt/live/coinsh.red-0004/fullchain.pem; # managed by Certbot
+    ssl_certificate_key /etc/letsencrypt/live/coinsh.red-0004/privkey.pem; # managed by Certbot
+
+    ssl_protocols TLSv1.2 TLSv1.3;
+    ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
+    ssl_prefer_server_ciphers off;
+    # In case of an old server with an OpenSSL version of 1.0.2 or below,
+    # leave only prime256v1 or comment out the following line.
+    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
+    ssl_stapling on;
+    ssl_stapling_verify on;
+
+    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;
+
+    proxy_http_version 1.1;
+    proxy_set_header Upgrade $http_upgrade;
+    proxy_set_header Connection "upgrade";
+    proxy_set_header Host $http_host;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+
+    location ~ ^/(media|proxy) {
+        proxy_cache        pleroma_media_cache;
+        slice              1m;
+        proxy_cache_key    $host$uri$is_args$args$slice_range;
+        proxy_set_header   Range $slice_range;
+        proxy_cache_valid  200 206 301 304 1h;
+        proxy_cache_lock   on;
+        proxy_ignore_client_abort on;
+        proxy_buffering    on;
+        chunked_transfer_encoding on;
+        proxy_pass         http://phoenix;
+    }
+}
+
diff -rN -u old-jam-xwx-moe/nginx/push.sh new-jam-xwx-moe/nginx/push.sh
--- old-jam-xwx-moe/nginx/push.sh	2024-11-24 03:21:46.562133982 +0000
+++ new-jam-xwx-moe/nginx/push.sh	1970-01-01 00:00:00.000000000 +0000
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-RSYNC_DRYRUN="--dry-run"
-if test "$1" = "--real"; then
-	RSYNC_DRYRUN=""
-fi
-
-rsync $RSYNC_DRYRUN --recursive --delete --archive --verbose ./ $(whoami)@xwx.moe:/srv/http/jam.xwx.moe/x_x/
-
-if test "$RSYNC_DRYRUN" = "--dry-run"; then
-	echo "=================================================="
-	echo "Ran in --dry-run mode!"
-	echo "Try '$(basename "$0") --real' if the output seems OK."
-	echo "=================================================="
-fi
diff -rN -u old-jam-xwx-moe/nginx/style.css new-jam-xwx-moe/nginx/style.css
--- old-jam-xwx-moe/nginx/style.css	2024-11-24 03:21:46.562133982 +0000
+++ new-jam-xwx-moe/nginx/style.css	1970-01-01 00:00:00.000000000 +0000
@@ -1,80 +0,0 @@
-/* Somewhat riffing off of Pleroma-FE’s generated CSS.
-Using the colors of Tirifto’s Malvo theme. */
-body {
-	background-color: #B5E9EC;
-	font-family: sans-serif;
-	font-size: 14px;
-}
-
-
-.panel {
-	box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 3px 1px rgba(0, 0, 0, 0.5);
-	overflow: hidden;
-	border-radius: 3px;
-	padding: 0;
-	background-color: #F7F7F7;
-	max-width: 1000px;
-	margin: auto;
-}
-
-
-img {
-	bottom: 0;
-	  display: table-cell;
-	  vertical-align: bottom;
-}
-
-
-h1 {
-	text-align: center;
-}
-
-
-.panel-heading {
-	border-radius: 3px 3px 0 0;
-	align-items: stretch;
-	background: transparent;
-	background-color: #E2C2F2;
-	box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 0px 0px rgba(255, 255, 255, 0.3) inset, -1px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;
-	flex-direction: column;
-	padding: .5em;
-	position: relative;
-	text-align: left;
-	font-size: 1.3em;
-}
-
-
-.panel:after {
-	bottom: 0;
-	box-shadow: 1px 1px 4px rgba(0, 0, 0, .6);
-	box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 3px 1px rgba(0, 0, 0, 0.5);
-	content: "";
-	left: 0;
-	pointer-events: none;
-	position: absolute;
-	right: 0;
-	top: 0;
-	z-index: 5;
-}
-
-
-.panel-body p {
-    padding-left: 20px;
-	padding-right: 20px;
-}
-
-
-.panel-body:empty:before {
-    content: "¯\\_(ツ)_/¯";
-    display: block;
-    margin: 1em;
-    text-align: center;
-}
-
-
-.panel-body>p {
-    line-height: 1.3;
-    margin: 0;
-    padding: 1em;
-	text-align: center;
-}
Binary files old-jam-xwx-moe/nginx/x_x/404.fonto.jpg and new-jam-xwx-moe/nginx/x_x/404.fonto.jpg differ
diff -rN -u old-jam-xwx-moe/nginx/x_x/404.fonto.url new-jam-xwx-moe/nginx/x_x/404.fonto.url
--- old-jam-xwx-moe/nginx/x_x/404.fonto.url	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/nginx/x_x/404.fonto.url	2024-11-24 03:21:46.562133982 +0000
@@ -0,0 +1 @@
+https://images2.alphacoders.com/920/thumb-1920-920230.jpg
diff -rN -u old-jam-xwx-moe/nginx/x_x/404.html new-jam-xwx-moe/nginx/x_x/404.html
--- old-jam-xwx-moe/nginx/x_x/404.html	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/nginx/x_x/404.html	2024-11-24 03:21:46.562133982 +0000
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML>
+<html lang="eo">
+  <head>
+	<title>404 — Urseto ne trovita</title>
+	<link rel="stylesheet" type="text/css" href="/x_x/style.css">
+	<meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no">
+</head>
+
+  <body>
+	<div class="panel user-profile-placeholder">
+	  <div class="panel-heading">
+		<div class="title">Eraro 404 — Ne trovita</div>
+	  </div>
+	  <div class="panel-body">
+		<h1>Tiu paĝo ne troviĝis!</h1>
+		<p>Vi eble mistajpis la retadreson: Rekontrolu ĝin!</p>
+		<p>Krom tio, eblas ke foriĝis (aŭ neniam fariĝis) tiu paĝo. Tiuokaze, bedaŭron!</p>
+	  </div>
+	  <div class="panel-body">
+		<img src="/x_x/404.png">
+	  </div>
+	</div>
+  </body>
+
+</html>
Binary files old-jam-xwx-moe/nginx/x_x/404.png and new-jam-xwx-moe/nginx/x_x/404.png differ
Binary files old-jam-xwx-moe/nginx/x_x/404.xcf and new-jam-xwx-moe/nginx/x_x/404.xcf differ
Binary files old-jam-xwx-moe/nginx/x_x/502.fonto.jpg and new-jam-xwx-moe/nginx/x_x/502.fonto.jpg differ
diff -rN -u old-jam-xwx-moe/nginx/x_x/502.fonto.url new-jam-xwx-moe/nginx/x_x/502.fonto.url
--- old-jam-xwx-moe/nginx/x_x/502.fonto.url	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/nginx/x_x/502.fonto.url	2024-11-24 03:21:46.570133995 +0000
@@ -0,0 +1 @@
+http://img04.pixiv.net/img/check/23049103.jpg
diff -rN -u old-jam-xwx-moe/nginx/x_x/502.html new-jam-xwx-moe/nginx/x_x/502.html
--- old-jam-xwx-moe/nginx/x_x/502.html	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/nginx/x_x/502.html	2024-11-24 03:21:46.570133995 +0000
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML>
+<html lang="eo">
+  <head>
+	<title>502 — Servilo paŭzetas</title>
+	<link rel="stylesheet" type="text/css" href="/x_x/style.css">
+	<meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no">
+</head>
+
+  <body>
+	<div class="panel user-profile-placeholder">
+	  <div class="panel-heading">
+		<div class="title">Eraro 502 — Pordega eraro</div>
+	  </div>
+	  <div class="panel-body">
+		<h1>La servilo paŭzetas!</h1>
+		<p>Ĝi kredeble restartiĝos baldaŭ; bonvolu rekontroli post momento.</p>
+		<p>Se post ~15 minutoj ankoraŭ vidas tiun ĉi eraron, bonvolu sciigi jadedctrl! (Prefere per XMPP/Matrix!)</p>
+		<p><b>Matrix:</b> <a href="https://matrix.to/#/@jadedctrl:tedomum.net">@jadedctrl:tedomum.net</a> — <b>XMPP:</b> <a href="xmpp:jaidedim@dismail.de">jaidedim@dismail.de</a><br>
+		<b>Poŝte:</b> <a href="mailto:jadedctrl@posteo.net">jadedctrl@posteo.net</a></p>
+
+	  </div>
+	  <div class="panel-body">
+		<img src="/x_x/502.png">
+	  </div>
+	</div>
+  </body>
+
+</html>
Binary files old-jam-xwx-moe/nginx/x_x/502.png and new-jam-xwx-moe/nginx/x_x/502.png differ
Binary files old-jam-xwx-moe/nginx/x_x/502.xcf and new-jam-xwx-moe/nginx/x_x/502.xcf differ
Binary files old-jam-xwx-moe/nginx/x_x/503.fonto.jpg and new-jam-xwx-moe/nginx/x_x/503.fonto.jpg differ
diff -rN -u old-jam-xwx-moe/nginx/x_x/503.fonto.url new-jam-xwx-moe/nginx/x_x/503.fonto.url
--- old-jam-xwx-moe/nginx/x_x/503.fonto.url	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/nginx/x_x/503.fonto.url	2024-11-24 03:21:46.578134008 +0000
@@ -0,0 +1 @@
+https://www.pixiv.net/artworks/106739580
diff -rN -u old-jam-xwx-moe/nginx/x_x/503.html new-jam-xwx-moe/nginx/x_x/503.html
--- old-jam-xwx-moe/nginx/x_x/503.html	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/nginx/x_x/503.html	2024-11-24 03:21:46.578134008 +0000
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML>
+<html lang="eo">
+  <head>
+	<title>503 — Servilo dormetas!</title>
+	<link rel="stylesheet" type="text/css" href="/x_x/style.css">
+	<meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no">
+</head>
+
+  <body>
+	<div class="panel user-profile-placeholder">
+	  <div class="panel-heading">
+		<div class="title">Eraro 503 — Servo nealireblas</div>
+	  </div>
+	  <div class="panel-body">
+		<h1>La servilo dormetas!</h1>
+		<p>Ial, la servilo ne alireblas — bonvolu repovi post kelkajn minutojn.</p>
+		<p>Se post ~15 minutoj ankoraŭ vidas tiun ĉi (verdire tre strangan!) eraron, bonvolu sciigi jadedctrl! (Prefere per XMPP/Matrix!)</p>
+		<p><b>Matrix:</b> <a href="https://matrix.to/#/@jadedctrl:tedomum.net">@jadedctrl:tedomum.net</a> — <b>XMPP:</b> <a href="xmpp:jaidedim@dismail.de">jaidedim@dismail.de</a><br>
+		<b>Poŝte:</b> <a href="mailto:jadedctrl@posteo.net">jadedctrl@posteo.net</a></p>
+	  </div>
+	  <div class="panel-body">
+		<img src="/x_x/503.png">
+	  </div>
+	</div>
+  </body>
+
+</html>
Binary files old-jam-xwx-moe/nginx/x_x/503.png and new-jam-xwx-moe/nginx/x_x/503.png differ
Binary files old-jam-xwx-moe/nginx/x_x/503.xcf and new-jam-xwx-moe/nginx/x_x/503.xcf differ
Binary files old-jam-xwx-moe/nginx/x_x/504.fonto.jpg and new-jam-xwx-moe/nginx/x_x/504.fonto.jpg differ
diff -rN -u old-jam-xwx-moe/nginx/x_x/504.fonto.url new-jam-xwx-moe/nginx/x_x/504.fonto.url
--- old-jam-xwx-moe/nginx/x_x/504.fonto.url	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/nginx/x_x/504.fonto.url	2024-11-24 03:21:46.582134014 +0000
@@ -0,0 +1 @@
+https://twitter.com/_SisterRiver/status/1643983346320699392
diff -rN -u old-jam-xwx-moe/nginx/x_x/504.html new-jam-xwx-moe/nginx/x_x/504.html
--- old-jam-xwx-moe/nginx/x_x/504.html	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/nginx/x_x/504.html	2024-11-24 03:21:46.582134014 +0000
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML>
+<html lang="eo">
+  <head>
+	<title>504 — Servilo tro malrapidas!</title>
+	<link rel="stylesheet" type="text/css" href="/x_x/style.css">
+	<meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no">
+</head>
+
+  <body>
+	<div class="panel user-profile-placeholder">
+	  <div class="panel-heading">
+		<div class="title">Eraro 504 — Pordega tempoelĉerpo</div>
+	  </div>
+	  <div class="panel-body">
+		<h1>La servilo tro malrapidis!</h1>
+		<p>Bed… aŭron… mi ne estas lerta kuristo… mi simple bezonas… momenton…</p>
+	  </div>
+	  <div class="panel-body">
+		<img src="/x_x/504.png">
+	  </div>
+	</div>
+  </body>
+
+</html>
Binary files old-jam-xwx-moe/nginx/x_x/504.png and new-jam-xwx-moe/nginx/x_x/504.png differ
Binary files old-jam-xwx-moe/nginx/x_x/504.xcf and new-jam-xwx-moe/nginx/x_x/504.xcf differ
diff -rN -u old-jam-xwx-moe/nginx/x_x/style.css new-jam-xwx-moe/nginx/x_x/style.css
--- old-jam-xwx-moe/nginx/x_x/style.css	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/nginx/x_x/style.css	2024-11-24 03:21:46.618134073 +0000
@@ -0,0 +1,80 @@
+/* Somewhat riffing off of Pleroma-FE’s generated CSS.
+Using the colors of Tirifto’s Malvo theme. */
+body {
+	background-color: #B5E9EC;
+	font-family: sans-serif;
+	font-size: 14px;
+}
+
+
+.panel {
+	box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 3px 1px rgba(0, 0, 0, 0.5);
+	overflow: hidden;
+	border-radius: 3px;
+	padding: 0;
+	background-color: #F7F7F7;
+	max-width: 1000px;
+	margin: auto;
+}
+
+
+img {
+	bottom: 0;
+	  display: table-cell;
+	  vertical-align: bottom;
+}
+
+
+h1 {
+	text-align: center;
+}
+
+
+.panel-heading {
+	border-radius: 3px 3px 0 0;
+	align-items: stretch;
+	background: transparent;
+	background-color: #E2C2F2;
+	box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 0px 0px rgba(255, 255, 255, 0.3) inset, -1px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;
+	flex-direction: column;
+	padding: .5em;
+	position: relative;
+	text-align: left;
+	font-size: 1.3em;
+}
+
+
+.panel:after {
+	bottom: 0;
+	box-shadow: 1px 1px 4px rgba(0, 0, 0, .6);
+	box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 3px 1px rgba(0, 0, 0, 0.5);
+	content: "";
+	left: 0;
+	pointer-events: none;
+	position: absolute;
+	right: 0;
+	top: 0;
+	z-index: 5;
+}
+
+
+.panel-body p {
+    padding-left: 20px;
+	padding-right: 20px;
+}
+
+
+.panel-body:empty:before {
+    content: "¯\\_(ツ)_/¯";
+    display: block;
+    margin: 1em;
+    text-align: center;
+}
+
+
+.panel-body>p {
+    line-height: 1.3;
+    margin: 0;
+    padding: 1em;
+	text-align: center;
+}