Website for chat.phryk.net, handling invite-based registration, guiding people through installation of a supported client and offering a web-based client as fallback.
Go to file
phryk a3092d988c minor content improvements; typos, grammar and formatting. 2023-07-21 05:45:18 +02:00
articles minor content improvements; typos, grammar and formatting. 2023-07-21 05:45:18 +02:00
resources
templates less verbose console log for converse.js 2022-08-14 19:35:11 +02:00
.gitignore
README.md
config.py.sample added cli command to download converse.js, added websocket support to converse initialization 2022-08-14 19:27:42 +02:00
defaults.py
main.py added cli command to download converse.js, added websocket support to converse initialization 2022-08-14 19:27:42 +02:00

README.md

This repository holds the code for the website of the XMPP service at chat.phryk.net. It interfaces to any webserver via WSGI.

Features

  • Implements invite-based registrations
  • Offers dynamically generated installation/registration guides for every defined OS/client combination.
  • Provides ConverseJS web-based XMPP client as fallback
  • Renders markdown articles
  • SCSS integration
  • looks spiffy, but has no JS except for Converse

Dependencies

What you don't need is a database. :)

Future Plans

Code is currently a wee bit messy and not terribly well suited to customization. This is supposed to change in order to make it easier for others to set up invite-based XMPP services.

In particular, we want to:

* Make the site easily extensible (routes, assets, content  the works)
* Make all integrated templates and assets overridable
* Make the whole thing a bit cleaner
* Add CLI command to automatically pull ConverseJS resources
* Package the whole thing for easy installation

Deployment

No time to write a proper guide.

For now, you can check out Flasks deployment docs if you get stuck.

You need:

  • A config.py (look at config.py.sample)
  • An HTTP server, commonly nginx or Apache
  • Something that talks WSGI
  • The contents of this repository

If you use nginx, use uwsgi to run the app. Read their docs, try this .ini:

chdir = /path/to/xmpp-site

# unix socket uwsgi listens on
socket = /tmp/xmpp-site.sock

wsgi = main:app

Hook it up to nginx via uwsgi_pass.

If you use Apache, we have no idea, read the docs of mod_wsgi. The WSGI application object is app in main.py.