Config Converter
Convert the .env configuration file of g0v0-server v1 into the set of config/*.json files required by g0v0 server v2, with a one-click bundled download.
The whole conversion runs locally in your browser — your configuration (including database passwords, JWT secrets and other sensitive values) is never uploaded anywhere.
1. Paste your g0v0-server v1 .env content
Everything is converted locally in your browser — no data is uploaded.
2. Generated v2 config files
Put these files into the config/ directory of your g0v0 server v2 (e.g. g0v0.Server.Realtime).
Paste or upload your v1 .env above — the defaults below are used for missing values.
{
"UseLegacyDatabase": true,
"MySqlHost": "localhost",
"MySqlPort": "3306",
"MySqlDatabase": "osu_api",
"MySqlUsername": "osu_api",
"MySqlPassword": "password",
"PostgresqlConnectionString": "Host=localhost;Port=5432;Username=g0v0;Password=password;Database=g0v0",
"RedisHost": "localhost:6379",
"JwtSecretKey": "your_jwt_secret_here",
"JwtAlgorithm": "HS256",
"JwtAudience": "5",
"JwtIssuer": null,
"OsuClientId": 5,
"OsuClientSecret": "FGc9GAtyHzeQDshWP5Ah7dega8hJACAJpQtw6OXk",
"OsuWebClientId": 6,
"OsuWebClientSecret": "your_osu_web_client_secret_here",
"FetcherClientId": 0,
"FetcherClientSecret": "",
"FetcherBeatmapRawCacheExpireHours": 24,
"ServerUrl": "http://localhost:8000"
}
Converted variables
| v1 .env variable | v2 target |
|---|---|
MYSQL_HOST | general.json → MySqlHost |
MYSQL_PORT | general.json → MySqlPort |
MYSQL_DATABASE | general.json → MySqlDatabase |
MYSQL_USER | general.json → MySqlUsername |
MYSQL_PASSWORD | general.json → MySqlPassword |
REDIS_URL | general.json → RedisHost |
JWT_SECRET_KEY | general.json → JwtSecretKey |
JWT_ALGORITHM | general.json → JwtAlgorithm |
JWT_AUDIENCE | general.json → JwtAudience |
JWT_ISSUER | general.json → JwtIssuer |
OSU_CLIENT_ID | general.json → OsuClientId |
OSU_CLIENT_SECRET | general.json → OsuClientSecret |
OSU_WEB_CLIENT_ID | general.json → OsuWebClientId |
OSU_WEB_CLIENT_SECRET | general.json → OsuWebClientSecret |
FETCHER_CLIENT_ID | general.json → FetcherClientId |
FETCHER_CLIENT_SECRET | general.json → FetcherClientSecret |
BEATMAP_CACHE_EXPIRE_HOURS | general.json → FetcherBeatmapRawCacheExpireHours |
SERVER_URL | general.json → ServerUrl |
ENABLE_RX / ENABLE_OSU_RX | game.json → EnableRelax |
ENABLE_AP / ENABLE_OSU_AP | game.json → EnableAutopilot |
ENABLE_ALL_BEATMAP_LEADERBOARD | game.json → EnableAllBeatmapLeaderboard |
SENTRY_DSN | realtime.json → Sentry.Dsn |
STORAGE_SERVICE | storage.json → Type |
STORAGE_SETTINGS | storage.json → Options |
Usage
- Paste the content of your v1 server's
.envinto the input box above, or use "Upload file" to pick the.envfile (you can also click "Load sample" to try it out first). - Review the generated JSON files (
general.json,game.json,realtime.json,chat.json,storage.json). - Click "Download all (.zip)", then extract the
config/directory into the working directory of your v2 server (e.g.g0v0.Server.Realtime).
Missing variables fall back to the v2 defaults automatically. v1 variables that have no v2 counterpart are listed below the converter so you can review them one by one.
Notes
UseLegacyDatabaseingeneral.jsondefaults totrue(keep using the v1 MySQL database). If you want to switch to the new v2 PostgreSQL database, untick the option in the "Other v2 settings" section and fill inPostgresqlConnectionString.REDIS_URLis converted into thehost:portformat that v2 expects (theredis://scheme and any embedded password are stripped).- v2-only settings (such as the replay upload concurrency and multiplayer room limits in
realtime.json, or the chat limits inchat.json) are generated with their defaults and can be tuned in the collapsible "Other v2 settings" section below the input box. See the g0v0.Server.Realtime README for the full field reference. config/chat.jsonis optional: when the file is absent, all chat limits use the defaults from osu-web.
Working with other v2 services
The configuration generated on this page applies to the g0v0 server v2 series. All v2 services share the database, JWT and storage settings from config/general.json, so make sure every service uses the same general.json and storage.json when migrating.