Router di collegamenti brevi Discourse | Semplifica gli URL di supporto

Hai mai desiderato avere un pulsante “Installa questo tema sul tuo sito” per tutto? Ho sviluppato un sito per farlo! Puoi utilizzarlo all’indirizzo https://discourserouter.pyxfluff.dev.

Invece di dire qualcosa come:

Puoi visualizzarlo all’indirizzo example.com/admin/config/emoji/settings.

… ora puoi fare:

Ecco dove puoi modificare questo: https://discourserouter.pyxfluff.dev/admin/config/emoji/settings

Quando visiti il sito per la prima volta, ti verrà chiesto di aggiungere il tuo sito, ma verrà ricordato in un cookie in modo che tu possa utilizzare lo stesso sito in futuro. Si tratta di una sostituzione diretta del percorso, non è necessario alcun prefisso del percorso. Basta sostituire l’URL del tuo forum con discourserouter.pyxfluff.dev!

Mostra


Tieni presente che si tratta ancora di un prodotto nuovo e potrebbero esserci problemi! Puoi segnalare tutti i problemi, i pensieri e altri feedback in questo thread qui. Ho testato al meglio delle mie possibilità, ma non si può mai essere sicuri al 100%.

Il codice sorgente è disponibile su GitHub come progetto Python (FastAPI) e le PR sono sempre benvenute.

Costi Operativi

Attualmente, non costa nulla eseguirlo perché lo faccio girare sul mio server a casa, quindi non ci sono costi cloud oltre ai miei 10 dollari all’anno per il mio dominio. Tuttavia, sto cercando di espandere questo progetto in un dominio dedicato. Al momento non ho un URL pubblico per le donazioni, ma se desideri sponsorizzare un dominio adeguato, contattami tramite messaggio privato e troveremo un accordo.

Divertiti e fammi sapere cosa ne pensi! :slight_smile:

2 Mi Piace

In pratica, se si è iscritti, si ottengono informazioni su chi ha cliccato un link qui e dove è stato reindirizzato :thinking: Oppure come funziona?

Per trasparenza, ecco i log del server durante i test locali:

Ho lasciato per errore un log di sviluppo; tuttavia, è stato disabilitato in produzione a partire da questo commit. Non c’è molto che possa fare riguardo ai log di Uvicorn sulle richieste agli endpoint (e non sono nemmeno sicuro che sia qualcosa che desideri, per motivi di sicurezza), ma il mio obiettivo non è registrare gli URL degli endpoint perché credo nella privacy. In ogni caso, i log del server si trovano in un’unità systemd che non ho intenzione di estrarre a meno che non sia strettamente necessario per individuare un errore o qualcosa di simile.

Il sito web è anche collegato alla mia istanza PA, così posso sapere quante persone lo utilizzano senza analytics invasivi. La sostanza è che non traccio il tuo indirizzo IP, l’URL del sito o praticamente nulla. Posso solo vedere che qualcuno ha visitato il sito ed è stato reindirizzato. Sentiti libero di farmi sapere se hai preoccupazioni, ma tutta la questione dei “log di Uvicorn sulle richieste di reindirizzamento” è semplicemente un difetto di progettazione legato al modo in cui ho deciso di costruire l’app (tramite cookie e jinja2).

Ovviamente, se per qualche motivo non ti fidi di me, puoi semplicemente ospitarlo tu stesso (pubblicherò una guida domani), ma puoi controllare il codice da solo: il container è sincronizzato con GitHub. :slight_smile:

Ovviamente non mi fido di te. Pochi dovrebbero fidarsi di te. Sei solo un altro nome utente senza volto su Internet.

Ma prendo quel sì, otterrai quelle informazioni?

1 Mi Piace

No, l’URL del sito è contenuto in un cookie del browser che non viene salvato nei log del server.

Il massimo che posso fare è pubblicare il codice sorgente speculare, mostrare i log e descrivere chiaramente le tecnologie utilizzate dal sito (tutto sulla mia infrastruttura). Se decidi di non esaminare tali informazioni o continui a non credermi, non c’è molto altro che io possa fare per te :man_shrugging:

1 Mi Piace

Ciao a tutti! Ho preparato un breve sondaggio per aiutarmi a decidere quante risorse dedicare a questo progetto (tempo per la manutenzione personale, fondi, ecc.). Indipendentemente dal tuo parere sul progetto nello stato attuale, compilare il modulo mi aiuterà molto (c’è uno spazio per indicare cosa non ti piace se rispondi di no alla prima domanda). Grazie! :slight_smile:

Il problema che ho con questo tipo di servizio è che possono essere dismessi in futuro e gli URL potrebbero essere reindirizzati a qualcosa di dannoso.

Non ho dubbi sulla tua buona fede, ma per esperienza so che succede[1], quindi preferirei non farci affidamento affatto se posso evitarlo.


  1. In un forum che ho migrato, molte immagini erano ospitate su un servizio di terze parti che dopo alcuni anni ha sovrascritto tutti i link alle immagini :upside_down_face: ↩︎

2 Mi Piace

Ciao a tutti, a causa del basso utilizzo procederò a chiudere preventivamente l’istanza ospitata ufficialmente. Lo faccio perché non ci sono prove che sia stata utilizzata da nessuna parte (come confermato da 0 visite nelle statistiche di questa settimana), quindi non voglio che qualcuno la trovi, la utilizzi e poi si trovi a dover gestire link non funzionanti.

Si è trattato solo di un piccolo progetto divertente per il fine settimana, quindi non sono troppo preoccupato e il repository GitHub rimarrà attivo; correggerò eventuali problemi critici se mi verranno segnalati, ma per ora non ci saranno novità. Richiede quasi zero risorse per essere eseguito, quindi qualsiasi sistema in grado di eseguire Python moderno può farlo funzionare. Può essere riadattato per praticamente tutto; l’ho semplicemente chiamato “discourse router” perché era l’intenzione originale.

2 Mi Piace

Pensavo di aver promesso di scrivere un README in precedenza, ma immagino di no. Comunque, ho pubblicato una guida semplice su come ospitarlo in proprio o riutilizzarlo! Il repository è ancora su GitHub, ma lo incollerò qui sotto nel caso non vogliate uscire da qui per qualche motivo.

Istruzioni

Configurazione

Assicuratevi di avere un venv e Python 3.13 o successivo (testato solo su 3.14, ma 3.13 non dovrebbe dare problemi; se riscontrate errori di compilazione, aggiornate semplicemente Python):

uv venv
source .venv/bin/activate
uv pip install .

Modificate opzionalmente il file di configurazione:

nano src/backend_config.jsonc

La maggior parte delle impostazioni è autoesplicativa. web.hostname serve semplicemente a fini estetici nell’interfaccia utente e non influisce sulla funzionalità.

Ed è tutto! Avviate e fate funzionare:

python3 -m src

Non è necessario eseguire manualmente l’app uvicorn; il modulo Python la eseguirà automaticamente.

1 Mi Piace