{"id":43294525,"url":"https://github.com/sunrisecommunity/solar-system","last_synced_at":"2026-04-20T13:11:50.577Z","repository":{"id":332690855,"uuid":"1122975086","full_name":"SunriseCommunity/Solar-System","owner":"SunriseCommunity","description":"🚀 Solar System - The Sunrise server orchestrator","archived":false,"fork":false,"pushed_at":"2026-01-25T01:23:43.000Z","size":4159,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-25T14:35:32.459Z","etag":null,"topics":["docker","docker-compose","game-server","osu","osu-mirror","osu-pp","osu-server","osugame","private-server","rythm-game","rythmgame"],"latest_commit_sha":null,"homepage":"https://sunrize.uk","language":"Batchfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SunriseCommunity.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-26T00:21:30.000Z","updated_at":"2026-01-25T01:23:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/SunriseCommunity/Solar-System","commit_stats":null,"previous_names":["sunrisecommunity/solar-system"],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/SunriseCommunity/Solar-System","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunriseCommunity%2FSolar-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunriseCommunity%2FSolar-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunriseCommunity%2FSolar-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunriseCommunity%2FSolar-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SunriseCommunity","download_url":"https://codeload.github.com/SunriseCommunity/Solar-System/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SunriseCommunity%2FSolar-System/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28986332,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T18:17:03.387Z","status":"ssl_error","status_checked_at":"2026-02-01T18:16:57.287Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","game-server","osu","osu-mirror","osu-pp","osu-server","osugame","private-server","rythm-game","rythmgame"],"created_at":"2026-02-01T19:00:40.025Z","updated_at":"2026-04-20T13:11:50.569Z","avatar_url":"https://github.com/SunriseCommunity.png","language":"Batchfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Solar System - The Sunrise server orchestrator\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/SunriseCommunity/Solar-System/blob/main/.github/default.png?raw=true\" alt=\"Artwork made by kita (kitairoha). We don't own the rights to this image.\"\u003e\n\u003c/p\u003e\n\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![GitHub stars](https://img.shields.io/github/stars/SunriseCommunity/Solar-System.svg?style=social\u0026label=Star)](https://github.com/SunriseCommunity/Solar-System)\n\nMonorepo with all services to run instance of Sunrise server\n\n## Description 📖\n\nSolar System is a **monorepo** containing all the essential components required to run a complete Sunrise server stack. Each major piece is managed as a submodule within this repository, allowing you to orchestrate, develop, and deploy everything together with ease.\n\n## Preview 🖼️\n\n![preview](./.github/preview.jpg)\n\n## Components 🧩\n\n- [x] [**🌅 Sunrise (Server Core)**](https://github.com/SunriseCommunity/Sunrise)  \n  The main server backend, handling core game logic and API for osu! servers.\n\n- [x] [**🌇 Sunset (Frontend)**](https://github.com/SunriseCommunity/Sunset)  \n  The frontend web interface of Sunrise. Allows to browse profiles, leaderboards, multiplayer lobbies, and manage users/beatmaps using admin panel.\n\n- [x]  [**🔭 Observatory (Beatmap Manager)**](https://github.com/SunriseCommunity/Observatory)  \n  Powerful \"on demand\" beatmap manager which uses osu! API and popular beatmap mirrors to prioritize speed and efficiency. Used by Sunrise to fetch beatmaps and calculate performance points.\n\n- [x] [**🌻 Sunshine (Discord Bot)**](https://github.com/SunriseCommunity/Sunshine)  \n  A Discord bot that integrates directly with your Sunrise server, delivering community features and server utilities directly into your Discord server.\n\n## Installation 📩\n\n\u003e [!TIP]\n\u003e 👀 We recommend watching the **[installation video guide](https://youtu.be/ukVc4anmtIs?si=ElITsNDIXw6ijxGP)** for a step-by-step walkthrough. \n\u003e\n\u003e [![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/ukVc4anmtIs/mqdefault.jpg)](https://youtu.be/ukVc4anmtIs?si=ElITsNDIXw6ijxGP)\n\u003e\n\u003e From it you will learn how to set up Solar-System and how to customize it for your branding\n\n### Prerequisites\n\nBefore you begin, ensure you have the following installed:\n\n- [**Git**](https://git-scm.com/)\n- [**Docker** and **Docker Compose**](https://www.docker.com/get-started/)\n- Basic knowledge of command line operations\n\n### Installation Steps\n\n1. **Clone the repository with submodules:**\n\n   ```console\n   git clone --recursive https://github.com/SunriseCommunity/Solar-System.git\n   cd Solar-System\n   ```\n\n   Or if you've already cloned without submodules:\n\n   ```console\n   git submodule update --init --recursive --remote\n   ```\n\n2. **Set up configuration files:**\n   \n   Create copies of the example configuration files:\n   \n   ```console\n   cp .env.example .env\n   cp Sunrise.Config.Production.json.example Sunrise.Config.Production.json\n   ```\n   \n   Fill in the required parameters in both files.\n   \n  \u003e [!IMPORTANT]\n  \u003e Make sure to edit `WEB_DOMAIN=` in `.env` to your actual domain that you plan to host on.\n   \n  \u003e [!TIP]\n  \u003e You can customize the configuration files to match your requirements. For example, in `Sunrise.Config.Production.json`, you can change the bot username:\n  \u003e ```json\n  \u003e \"Bot\": {\n  \u003e   \"Username\": \"Sunshine Bot\",\n  \u003e   ...\n  \u003e }\n  \u003e ```\n\n3. **Generate API keys:**\n   \n   #### 3.1 Generate the token secret for Sunrise API requests:\n   \n   ```console\n   chmod +x lib/scripts/generate-api-sunrise-key.sh\n   ./lib/scripts/generate-api-sunrise-key.sh\n   ```\n\n   This will generate a token secret for the Sunrise API requests.\n   \n   #### 3.2 Generate the Observatory API key (allows Sunrise to request Observatory without internal rate limits):\n   \n   ```console\n   chmod +x lib/scripts/generate-observatory-api-key.sh\n   ./lib/scripts/generate-observatory-api-key.sh\n   ```\n\n   This will generate an API key for the Observatory to ignore rate limits for requests coming from Sunrise.\n\n   #### 3.3 Generate secure database passwords:\n\n   ```console\n   chmod +x lib/scripts/generate-database-passwords.sh\n   ./lib/scripts/generate-database-passwords.sh\n   ```\n   This will generate secure passwords for both MySQL and PostgreSQL databases. \n  \n   Make sure to not lose these credentials as they are required to access the databases! You can find them in the `.env` file under `SUNRISE_MYSQL_ROOT_PASSWORD` and `OBSERVATORY_POSTGRES_PASSWORD`.\n   \n  \u003e [!TIP]\n  \u003e You will be prompted to run multiple `.sh` scripts during setup, if you are using **Windows**, please use `.bat` equivalent scripts located in the same folder.\n   \n\n4. **Start the server:**\n   \n   ```console\n   chmod +x ./start.sh\n   ./start.sh\n   ```\n   \n   This should start the server without any problems.\n\n5. **Verify the server is running:**\n   \n   You can check that all containers are running with:\n   \n   ```console\n   docker ps\n   ```\n   \n   You should see containers for Sunrise server, Sunset website, Observatory, Sunshine Discord bot, and supporting services (PostgreSQL, Redis, Grafana, etc.) all running.\n\n\u003e [!NOTE]\n\u003e For more in-depth documentation with detailed setup instructions, visit [https://docs.sunrize.uk/](https://docs.sunrize.uk/).\n\n\u003e [!TIP]\n\u003e Join our [Discord server](https://discord.gg/BjV7c9VRfn) if you have any questions or just want to chill with us!\n\n### Hosting to the Internet 🌐\n\nTo make your server accessible on the internet:\n\n1. **Configure DNS records:**\n   \n   Make sure you have DNS records pointing the following subdomains to your server's IP address:\n   \n   - `*` (wildcard)\n   - `api`\n   - `osu`\n   - `a`\n   - `c`\n   - `assets`\n   - `cho`\n   - `c4`\n   - `b`\n   - `grafana`\n   \n   These subdomains are required for the server to function properly.\n\n2. **Start Caddy reverse proxy:**\n   \n   For simplicity, we use Caddy as a reverse proxy. By default, the `Caddyfile` is configured to host the website, server, and Grafana. You can uncomment additional configurations in the `Caddyfile` if needed.\n\n   Start Caddy by running:\n   \n   ```console\n   sudo caddy start --envfile .env\n   ```\n   \n   Your server should now be up and accessible!\n\n  \u003e [!IMPORTANT]\n  \u003e If you are intending to use **Grafana** for monitoring, make sure to uncomment the Grafana section in the `Caddyfile` before starting Caddy.\n  \u003e After starting Caddy, make sure to visit `grafana.*` subdomain and change the default password for the admin account!\n\n  \u003e [!CAUTION]\n  \u003e Make sure you have the correct ports open in your firewall (80 and 443) for the server to be accessible from the internet.\n  \u003e\n  \u003e Also to readers notice, docker containers are capable of overriding firewall rules, which can expose your server to the internet even if you don't want it to. We recommend setting up ufw-docker to manage this. You can find the instructions in the [ufw-docker](https://github.com/chaifeng/ufw-docker#install) repository.\n\n## Contributing 💖\n\nIf you want to contribute to the project, feel free to fork the repository and submit a pull request. We are open to any\nsuggestions and improvements.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunrisecommunity%2Fsolar-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunrisecommunity%2Fsolar-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunrisecommunity%2Fsolar-system/lists"}