Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
bsdcafe-technical-details [2024/08/23 06:22] stefanobsdcafe-technical-details [2024/11/17 08:49] (current) stefano
Line 6: Line 6:
  
   * A dedicated jail hosts Nginx, serving as a reverse proxy. It manages certificates and directs traffic. This is also serving the [[https://element.bsd.cafe|https://element.bsd.cafe]] Matrix web client   * A dedicated jail hosts Nginx, serving as a reverse proxy. It manages certificates and directs traffic. This is also serving the [[https://element.bsd.cafe|https://element.bsd.cafe]] Matrix web client
-  * Another jail contains a small OpenSMTPD server, handling email dispatch internally to avoid external service reliance.+  * Another jail contains a small <del>OpenSMTPD</del>  Postfix server, handling email dispatch internally to avoid external service reliance.
  
 The [[https://mastodon.bsd.cafe|https://mastodon.bsd.cafe]] instance is structured as follows: The [[https://mastodon.bsd.cafe|https://mastodon.bsd.cafe]] instance is structured as follows:
Line 13: Line 13:
   * Another jail runs KeyDB for the Mastodon cache   * Another jail runs KeyDB for the Mastodon cache
   * Another jail runs PostgreSQL, serving as the database - the memory of BSD Cafe.   * Another jail runs PostgreSQL, serving as the database - the memory of BSD Cafe.
-  * There's a separate jail designated for media storage, acting as the 'multimedia memory' of BSD Cafe. This jail resides on an external server with rotating disks <del>behind Cloudflare</del>. There are reverse proxies located in various parts of the world that receive and cache requests, serving them from the nearest server. The goal is to use georeplicated caching of multimedia data to reduce bandwidth consumption. The selection of reverse proxies is handled at the DNS level through a PowerDNS LUA script.+  * There's a separate jail designated for media storage, acting as the 'multimedia memory' of BSD Cafe. This jail resides on an external server with rotating disks <del>behind Cloudflare</del>. There are [[:bsdcafemedia-reverse-proxies|reverse proxies]] located in various parts of the world that receive and cache requests, serving them from the nearest server. The goal is to use georeplicated caching of multimedia data to reduce bandwidth consumption. The selection of reverse proxies is handled at the DNS level through a PowerDNS LUA script. More details have been documented here: [[https://it-notes.dragas.net/2024/08/26/building-a-self-hosted-cdn-for-bsd-cafe-media/|Building a Self-Hosted CDN for BSD Cafe Media]]
   * Two jails host the Mastodon application itself, including sidekiq, puma, and streaming components. This is where all processing and connection management occur. They're running in different hosts and are both providing some sidekiq queues and one of the two is set as a backup puma and streaming server when the first one (more powerful) is down. This is useful when updating, to avoid downtime.   * Two jails host the Mastodon application itself, including sidekiq, puma, and streaming components. This is where all processing and connection management occur. They're running in different hosts and are both providing some sidekiq queues and one of the two is set as a backup puma and streaming server when the first one (more powerful) is down. This is useful when updating, to avoid downtime.
  
Line 25: Line 25:
  
 [[https://blendit.bsd.cafe|https://blendit.bsd.cafe]] is composed of two FreeBSD jails: one for PostgreSQL, and the other contains the rest (the frontend in Node and the backend in Rust). [[https://blendit.bsd.cafe|https://blendit.bsd.cafe]] is composed of two FreeBSD jails: one for PostgreSQL, and the other contains the rest (the frontend in Node and the backend in Rust).
 +
 +[[https://press.bsd.cafe|https://press.bsd.cafe]] is a FreeBSD jail running all the stack for Wallabag: nginx, php, postgresql, valkey.
  
 [[https://brew.bsd.cafe|https://brew.bsd.cafe]] is a FreeBSD jail running PostgreSQL, KeyDB and Forgejo. [[https://brew.bsd.cafe|https://brew.bsd.cafe]] is a FreeBSD jail running PostgreSQL, KeyDB and Forgejo.