A wiki that contains all osu! rulesets
The new era of Rūrusetto is beginning!
The new website is targeted to revamp all the UI of the old website and make Rūrusetto a dynamic website with a lot more of new functions that cannot be added to the old website's source code.
The old source code of the website is in the other branch
We also provide the API for developer who want to use of our rulesets information in our database for your own dream project. More info available in the documentation.
We just add support for localization on website. You can help us by translate your language by go to POEditor, add your language that you want to help us to translate and start on translation process. We always update localization file weekly.
Please make sure you have the following prerequisites:
- Python 3.8 or newer
- During development on the codebase, we recommend an IDE with intelligent code completion and syntax highlighting. Our recommendation is PyCharm or Visual Studio Code
- Git
Clone the repository:
git clone https://github.com/Rurusetto/rurusetto/
cd rurusetto
To update the source code to the latest commit, run the following command inside the Rūrusetto directory:
git pull
During the development progress, we recommend using a virtual environment.
First, make a folder to contain the virtual environment in Rūrusetto directory. Then build the virtual environment.
cd rurusetto
mkdir venv
python3 -m venv rurusettovenv
When you want to access the virtual environment just use source
command and link it to the activate
file to activate the virtual environment file in Rūrusetto directory.
source rurusettovenv/bin/activate
And when you want to get out of from the virtual environment, use the deactivate
command.
deactivate
Note : If you use PyCharm, you can click on the python interpreter and you can add the new interpreter to create a new virtual environment. Then when you run the commands in PyCharm terminal, all commands will persist in the virtual environment.
When you start the virtual environment, you need to install the requirements that are listed in requirements.txt
file. Run this command in Rūrusetto directory to do so automatically:
pip install -r requirements.txt
Before we can start the server, we must make a database for the website by migrating the database from the code. Run this command in Rūrusetto directory to make the database.
cd rurusetto # get in the Rūrusetto project config folder
python manage.py migrate
We must render the localization file to make the localization work properly.
cd rurusetto/wiki # get in wiki app
django-admin compilemessages # make localization file
cd ..
cd users
django-admin compilemessages # make localization file
Rūrusetto uses python-decouple
library to separate the configuration value and secret key. This library will read the configuration value from the .env
file. Create the .env
file in rurusetto
folder. Below is the template for this file.
SECRET_KEY = awesome_key_here
DEBUG = True
TEST_SERVER = True
ALLOWED_HOSTS = 127.0.0.1
OSU_OAUTH_CLIENT_ID = idgohere
OSU_OAUTH_CLIENT_SECRET = keygohere
OSU_API_V1_KEY = keygohere
GITHUB_TOKEN = githubtokengohere
For full environment file for using in production environment please see .env.example
file.
Note : The OSU_OAUTH_CLIENT_ID
OSU_OAUTH_CLIENT_SECRET
and OSU_API_V1_KEY
are required when you want to development with osu! OAuth system or some program parts that require the osu! API you must fill the osu! API key and OAuth app number in .env
to start development on this function. But if you are not testing this function it's okay to leave the key blank. (The development OAuth server callback is http://127.0.0.1:8000/accounts/osu/login/callback/.)
Run the runserver
command in Rūrusetto directory
cd rurusetto # get in the Rūrusetto project config folder
python manage.py runserver
When it comes to contributing to the project, the two main things you can do to help out are reporting issues and submitting pull requests. We have prepared a list of contributing guidelines that should hopefully ease you into our collaboration process.
Note that the contributing guidelines are not exhaustive. Nothing is set in stone. If you have an issue with the way the code is structured, with any libraries we are using, or with any processes involved with contributing, please bring it up and ask us! We welcome all feedback, so we can make contributions to this project as hassle-free as possible.
We use code of conduct from Contributor Covenant
.
- @IKeepItNoodles for icon, branding design and new color schemes.
- Netlify for sponsors us the open source plan using in hosting some static site of our project like documentation site.
- Sentry for sponsor us a sponsored plan using in error monitoring tool for our project.
- POEditor for sponsor us a sponsored plan using in localization tool for our project.
The code in this repository is licensed under the MIT license. Please see the license file for more information.
TL;DR you can do whatever you want as long as you include the original copyright and license notice in any copy of the software/source.
The images in this website and the content that is upload by the users and community are covered by DMCA. If you are the work's original owner and want to request to remove your work, please email the team by contact HelloYeew (project leader) at [email protected].
Each ruleset has its own license.
The licensing here does not directly apply to osu!
and ppy
, as it is bound to its own licensing.