guweb is the front-facing appearance of the osu! server protocol, bancho.py! Using native async/await syntax written on top of Quart and cmyui's multipurpose library, guweb achieves flexability, cleanliness, and efficiency not seen in other frontend implementations - all while maintaining the simplicity of Python.
- Some know-how with Linux (tested on Ubuntu 18.04), Python, and general-programming knowledge.
- MySQL
- NGINX
- NodeJS
Setup is relatively simple - these commands should set you right up.
Notes:
- Ubuntu 20.04 is known to have issues with NGINX and osu! for unknown reasons?
- If you have any difficulties setting up guweb, feel free to join the Discord server at the top of the README, we now have a bit of a community!
# Install Python >=3.9 and latest version of PIP.
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.9 python3.9-dev python3.9-distutils
wget https://bootstrap.pypa.io/get-pip.py
python3.9 get-pip.py && rm get-pip.py
# Install MySQL and NGINX.
sudo apt install mysql-server nginx
# Install Nodejs and npm or yarn
# see https://nodejs.org/en/download/ .
# Clone guweb from GitHub.
git clone https://github.com/varkaria/guweb.git
cd guweb
# Initialize and update the submodules.
git submodule init && git submodule update
# Install requirements from pip.
python3.9 -m pip install -r ext/requirements.txt
# Add and configure guweb's NGINX config to your nginx/sites-enabled.
sudo ln -r -s ext/nginx.conf /etc/nginx/sites-enabled/guweb.conf
sudo nano ext/nginx.conf
sudo nginx -s reload
# Configure guweb.
cp ext/config.sample.py config.py
nano config.py
# Configure locales
cp config.sample.js config.js
# edit the copied file to meet yor needs
# build locales
npm run i18n:build
# or use yarn
yarn i18n:c
# Run guweb (on port 8000).
python3.9 main.py # Run directly to access debug features for development!
hypercorn main.py # Please run guweb with hypercorn when in production! It will improve performance drastically by disabling all of the debug features a developer would need!
- VSCode (recommend)
- VSCode plugin: i18n-ally (recommend)
- Node
npm install -D
- open any html files with i18n-ally plugin enabled.
- translate keys
- run
npm run i18n:build
to generate files for python-i18n
.
βββ blueprints # Modular routes such as the API, Frontend, or Admin Panel.
βββ docs # Markdown files used in guweb's documentation system.
βββ ext # External files from guweb's primary operation.
βββ objects # Code for representing privileges, global objects, and more.
βββ static # Code or content that is not modified or processed by guweb itself.
βββ locales # translations
βββ templates # HTML that contains content that is rendered after the page has loaded.
βββ admin # Templated content for the admin panel (/admin).
βββ settings # Templated content for settings (/settings).
β ... # Templated content for all of guweb (/).
- Yoru | Backend, Grammar Checking [Deprecated]
- Varkaria | Frontend, Backend?
- ppysb-Team | i18n, Maintainer
Well know that you know everything, why not check out the original code guweb was based off of in this i think i should continue this work to finish work?