Tech Snippets

Random notes and code snippets from everyday IT life. Might be of help in some cases.

#azuracast #radio #linux #picotts

Many of us want (or are required to have) a periodic time and station ID announcement for our internet radio stations. We could make sound files for every hour and minute and write crazy long scripts to play those at the top of the hour (TOTH), but there is a much easier way:

How about having a simple MP3 file that you can use in your playlists any time and that always has the correct time and station ID?

Read more...

Tags: #nextcloud #writefreely #linux

Writefreely is a superb, minimalistic blogging platform, but it lacks an easy means of integrating images (and other files). Imagine you could use simple Markdown to include images from your Nextcloud instance, like so:

![Frog](/files/USERNAME/Frog.jpg)

Well, I show you how to!

Read more...

Tags: #selfhosting #nginx #npm #prosody

Let’s assume you run Prosody as your XMPP server, and use Converse.js as your web chat client. Using Prosody’s mod_conversejs, your base URL (say https://chat.example.com:5281/) will show just a boring “Prosody is running” page, and serve the web chat client under https://chat.example.com:5281/conversejs.

What you want instead is your main page directly show the Converse.js web chat under https://chat.example.com/ but still be able to access sub-paths and files in your web root directly (like maybe favicon.ico, or Prosody’s BOSH URL https://chat.example.com/http-bind).

Read more...

Tags: #selfhosting #letsencrypt #nginx #npm #prosody #python

Especially when self-hosting, the wonderful Nginx Proxy Manager (NPM) is often used as a reverse proxy, and for generating and auto-renewing SSL certificates. But how to export the right certificate to another machine that needs it, like the Prosody XMPP server?

This can get rather complicated, since NPM internally stores its configuration and certificates in numbered files instead of using the domain names for filenames.

Well, here is a possible solution.

Read more...