Skip to content

RealistikOsu/Soumetsu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

50 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Soumetsu - RealistikOsu! Frontend

A modern, feature-rich web frontend for custom osu! servers

Go Version License

Features β€’ Quick Start β€’ Configuration β€’ Development


🌟 About

Soumetsu is the official web frontend for RealistikOsu!, a custom server for the popular rhythm game osu!. Built with modern web technologies and a focus on user experience, Soumetsu provides a beautiful, responsive interface for players to interact with the server.

Originally based on hanayo, Soumetsu has evolved into a fully-featured web application that powers one of the most active custom osu! communities. With a clean, modern design and extensive customization options, it's the perfect foundation for your own osu! server.

Why Choose Soumetsu?

  • 🎨 Modern UI/UX - Beautiful, responsive design built with Tailwind CSS
  • ⚑ High Performance - Fast, efficient Go backend with optimised templates
  • πŸ”§ Highly Customisable - Easy to modify and extend for your needs
  • 🌐 Feature Complete - Everything you need for a thriving osu! community
  • πŸ“± Mobile Friendly - Works seamlessly on all devices
  • πŸ”’ Secure - Built with security best practices in mind

✨ Features

Soumetsu comes packed with all the features you'd expect from a modern osu! server frontend:

Core Features

  • πŸ‘€ User Profiles - Comprehensive user profiles with statistics, achievements, and customization
  • 🎡 Beatmap System - Browse, search, and download beatmaps with ranking support
  • πŸ† Leaderboards - Global and country-specific leaderboards for all game modes
  • πŸ‘₯ Clan System - Create and manage clans with member management and boards
  • πŸ“Š Statistics - Detailed performance tracking and analytics
  • πŸ’¬ Community Features - User interactions, comments, and social features

Game Mode Support

  • 🎯 osu!standard - Full support for standard mode
  • πŸ₯ osu!taiko - Taiko mode leaderboards and statistics
  • 🍎 osu!catch - Catch the Beat mode support
  • ⌨️ osu!mania - Mania mode rankings and features

Additional Features

  • πŸ” Authentication - Secure login and registration system
  • πŸ“§ Email Integration - Password reset and notifications via Mailgun
  • πŸ€– Discord Integration - Connect with Discord for authentication and features
  • πŸ›‘οΈ Security - reCAPTCHA support and IP-based security features

πŸš€ Quick Start

Prerequisites

Before you begin, ensure you have the following installed:

  • Go 1.21 or higher (Download)
  • Node.js 16+ and npm (Download)
  • MySQL 5.7+ or MariaDB 10.3+
  • Redis 6.0+
  • Make (optional, for Docker builds)

Installation

  1. Clone the repository

    git clone https://github.com/RealistikOsu/soumetsu.git
    cd soumetsu
  2. Install Go dependencies

    go mod download
  3. Install Node.js dependencies

    npm install
  4. Build frontend assets

    npm run tailwind:build
    # Or use the build script
    ./build.sh
  5. Configure the application

    cp env.example .env
    # Edit .env with your configuration (see Configuration section)
  6. Run the application

    go run ./cmd/soumetsu

The application will be available at http://localhost:8080 (or your configured port).


βš™οΈ Configuration

Soumetsu uses environment variables for configuration. Copy env.example to .env and customise the values:

Application Settings

SOUMETSU_PORT=8080                    # Port to run the server on
SOUMETSU_ENV=development              # Environment (development/production)
SOUMETSU_COOKIE_SECRET=your-secret    # Secret key for cookies (min 32 chars)
SOUMETSU_KEY=your-soumetsu-key        # Application key
SOUMETSU_BASE_URL=http://localhost:8080

Database Configuration

MYSQL_HOST=localhost
MYSQL_TCP_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your-password
MYSQL_DATABASE=rosu

Redis Configuration

REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASS=
REDIS_DB=0
REDIS_USE_SSL=false

External Services

Mailgun (Email)

MAILGUN_DOMAIN=your-mailgun-domain
MAILGUN_API_KEY=your-api-key
MAILGUN_PUBLIC_KEY=your-public-key
MAILGUN_FROM=noreply@your-domain.com

Discord Integration

DISCORD_SERVER_URL=https://discord.gg/your-server
DISCORD_APP_CLIENT_ID=your-client-id
DISCORD_APP_CLIENT_SECRET=your-client-secret

reCAPTCHA

RECAPTCHA_SITE_KEY=your-site-key
RECAPTCHA_SECRET_KEY=your-secret-key

File Paths

SOUMETSU_INTERNAL_AVATARS_PATH=./static/avatars
SOUMETSU_INTERNAL_BANNERS_PATH=./static/banners
SOUMETSU_AVATAR_URL=https://a.ussr.pl
SOUMETSU_BANCHO_URL=https://c.ussr.pl

API Endpoints

SOUMETSU_API_URL=http://localhost:5000
SOUMETSU_BEATMAP_MIRROR_API_URL=https://api.ussr.pl
SOUMETSU_BEATMAP_DOWNLOAD_MIRROR_URL=https://mirror.ussr.pl

Note: Make sure to change all default values, especially secrets and keys, before running in production!


πŸ› οΈ Development

Running in Development Mode

  1. Start the development server with hot-reload for CSS

    # Terminal 1: Run the Go server
    go run ./cmd/soumetsu
    
    # Terminal 2: Watch Tailwind CSS changes
    npm run tailwind:watch
  2. Build for production

    # Build Go binary
    go build -o soumetsu ./cmd/soumetsu
    
    # Build frontend assets
    npm run tailwind:build

Docker Support

Soumetsu includes Docker support for easy deployment:

# Build Docker image
make build
# or
docker build -t soumetsu:latest .

# Run with Docker
make run
# or
docker run --network=host --env-file=.env soumetsu:latest

Project Structure

soumetsu/
β”œβ”€β”€ cmd/
β”‚   └── soumetsu/          # Main application entry point
β”œβ”€β”€ internal/              # Internal Go packages
β”‚   β”œβ”€β”€ api/              # API handlers
β”‚   β”œβ”€β”€ config/          # Configuration management
β”‚   └── models/          # Data models
β”œβ”€β”€ web/
β”‚   β”œβ”€β”€ static/          # Static assets (CSS, JS, images)
β”‚   └── templates/       # HTML templates
β”œβ”€β”€ data/                # Data files (YAML, JSON)
β”œβ”€β”€ scripts/             # Build and utility scripts
└── website-docs/        # Documentation content

Available Scripts

  • npm run tailwind:watch - Watch and rebuild Tailwind CSS on changes
  • npm run tailwind:build - Build Tailwind CSS for production
  • npm run dev - Alias for tailwind:watch
  • ./build.sh - Full build script (installs deps, builds CSS and JS)

πŸ“š Additional Resources


πŸ“„ License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE file for details.

The AGPL-3.0 license ensures that any modifications to this software, when run on a network server, must be made available to users of that server.


Ready to build your own osu! server? Get started with Soumetsu today!

⬆ Back to Top

About

The RealistikOsu frontend!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •