You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
xthulu ("ch-THOO-loo") Python asyncio community server
While xthulu is intended to be a community server with multiple avenues of
interaction (e.g. terminal, browser, REST API), its primary focus is to provide
a modern SSH terminal interface which pays tribute to the bulletin boards of
the 1990s. Rather than leaning entirely into DOS-era nostalgia, modern
character sets (UTF-8) and terminal capabilities are taken advantage of.
If you want to perform the steps in the setup script manually for some reason,
here they are:
Create a configuration file and generate host keys
# in the data/ directory
cp config.example.toml config.toml
ssh-keygen -f ssh_host_key -t rsa -b 4096 -N ""
Prepare the docker images
# in the docker/ directory
docker compose build base-image
docker compose pull --ignore-buildable
Create and seed the database
โน๏ธ Note the names of the scripts. The bin/xt script is the command line
interface for server tasks, while the bin/xtu script is for userland.
# in the project root
bin/xt db create --seed
bin/xtu db create --seed
Build the static web assets
# in the project root
bin/build-web
Start the services
# in the docker/ directory
docker compose up -d
Connect
Connect to the terminal server
There is a guest account which demonstrates the ability for some accounts to
bypass authentication.
ssh guest@localhost
There is a user account with a password for testing password authentication.
ssh user@localhost # password is also "user"
Connect to the web server
For the time being, the web server only demonstrates simple interoperability
between the REST API and static pages. It is available at https://localhost.
There is a demo application that can be used for chatting with other users
connected via both the web and the SSH server.
โ ๏ธTraefik will be using an untrusted certificate, and you will likely be
presented with a warning.
The same credentials may be used here; for the guest account, any password (or
a blank password) will work.
About
Python asyncio community server (HTTPS, SFTP, SSH) with a modern terminal interface