Installation Guide¶
Welcome to the comprehensive installation guide for osuNoLimits. This guide will walk you through setting up Shiina-Web and bancho.py-ex from scratch.
Prerequisites
Before starting, ensure you have:
- A Linux server (Ubuntu 24.04+ recommended)
- A domain name with DNS access
- Basic command-line knowledge
- Approximately 30-60 minutes
Domain Configuration¶
Configure the following subdomains to point to your server. We strongly recommend using Cloudflare for DNS management and DDoS protection.
Required Subdomains
Create these DNS records pointing to your server's IP:
Subdomain | Purpose | Example |
---|---|---|
@ |
Main domain | osunolimits.dev |
osu |
Game client connection | osu.osunolimits.dev |
c |
Game server | c.osunolimits.dev |
c4 |
Game server | c4.osunolimits.dev |
a |
API endpoint | a.osunolimits.dev |
assets |
Static assets | assets.osunolimits.dev |
api |
Bancho API | api.osunolimits.dev |
- Add your domain to Cloudflare
- Update nameservers at your registrar
- Create the A records listed above
- Enable proxy (orange cloud) for web traffic protection
SSL Configuration
You can choose between flexible or strict SSL encryption. For production environments, we recommend Full (Strict) SSL mode with valid certificates.
Version Control Recommendation
Create a GitHub fork of the repositories before proceeding. This allows you to:
- Easily pull updates
- Make custom modifications
- Maintain your configuration
Installing bancho.py-ex¶
Docker Installation¶
Docker is required to run bancho.py-ex. Choose your operating system below:
Cleanup First
Remove any conflicting Docker packages:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
sudo apt-get remove $pkg
done
Step 1: Add Docker's official GPG key and repository
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Step 2: Add Docker repository to APT sources
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Step 3: Install Docker
Cleanup First
Remove any conflicting Docker packages:
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do
sudo apt-get remove $pkg
done
Step 1: Add Docker's official GPG key and repository
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Step 2: Add Docker repository to APT sources
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Step 3: Install Docker
Cleanup First
Remove any conflicting Docker packages:
sudo dnf remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
Step 2: Add Docker repository
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
Step 3: Install Docker
Step 4: Enable Docker service
Nginx Installation¶
Nginx serves as our web server and reverse proxy. Follow the instructions for your operating system:
Remove Apache2 (Ubuntu only)
If Apache2 is installed, remove it first to avoid conflicts:
sudo systemctl stop apache2
sudo apt remove apache2 apache2-utils apache2-bin apache2.2-common
sudo apt autoremove
Step 1: Update package list and install Nginx
Step 2: Verify installation
Expected Output
You should see Active: active (running)
in green text.
Git Installation¶
Git is required for cloning the repository and managing updates.
Step 1: Update package list and install Git
Step 2: Verify installation
Expected Output
You should see something like git version 2.34.1
Step 3: Configure Git (replace with your information)
Step 1: Update packages and install Git
Step 2: Verify installation
Expected Output
You should see something like git version 2.34.1
Step 3: Configure Git (replace with your information)
Repository Setup¶
Clone the bancho.py-ex repository to your server:
Use Your Fork
If you created a fork, replace the URL with your fork's URL for easier updates.
Environment Setup¶
First, create your configuration files from the provided examples:
Edit Configuration¶
Open the environment file for editing:
Required Configuration
You must configure these essential settings before proceeding:
Setting | Description | Required |
---|---|---|
OSU_API_KEY |
Get your osu! API key here | ✅ |
DB_PASS |
Strong database password | ✅ |
DOMAIN |
Your domain (e.g., osunolimits.dev ) |
✅ |
Only required for Full/Strict SSL mode
Setting | Description | Example |
---|---|---|
SERVER_NAME |
Your server's display name | osuNoLimits |
DISCORD_URL |
Your Discord invite link | https://discord.gg/yourinvite |
MENU_ICON_URL |
In-game menu icon | URL to your icon |
MENU_ONCLICK_URL |
Click destination | Your website URL |
SEASONAL_BGS |
Background images | Comma-separated URLs |
Nginx Configuration¶
Install the pre-configured nginx setup:
Configuration Complete
Your nginx configuration has been automatically set up with the correct proxy settings for all bancho.py-ex endpoints.
Build and Start¶
With everything configured, build and start the project:
Development vs Production
- For development: Use
make run
for easier debugging - For production: Consider using
make run-bg
orscreen -S bancho make run
to run in background
Autoban Configuration¶
Configure performance point limits to prevent cheating:
PP Caps Configuration
Important Notes
- Set
"enabled": true
to activate automatic banning - Adjust PP values based on your server's skill level
- Monitor logs for any false positives