Skip to content

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.

json
{
  "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 variablev2 target
MYSQL_HOSTgeneral.json → MySqlHost
MYSQL_PORTgeneral.json → MySqlPort
MYSQL_DATABASEgeneral.json → MySqlDatabase
MYSQL_USERgeneral.json → MySqlUsername
MYSQL_PASSWORDgeneral.json → MySqlPassword
REDIS_URLgeneral.json → RedisHost
JWT_SECRET_KEYgeneral.json → JwtSecretKey
JWT_ALGORITHMgeneral.json → JwtAlgorithm
JWT_AUDIENCEgeneral.json → JwtAudience
JWT_ISSUERgeneral.json → JwtIssuer
OSU_CLIENT_IDgeneral.json → OsuClientId
OSU_CLIENT_SECRETgeneral.json → OsuClientSecret
OSU_WEB_CLIENT_IDgeneral.json → OsuWebClientId
OSU_WEB_CLIENT_SECRETgeneral.json → OsuWebClientSecret
FETCHER_CLIENT_IDgeneral.json → FetcherClientId
FETCHER_CLIENT_SECRETgeneral.json → FetcherClientSecret
BEATMAP_CACHE_EXPIRE_HOURSgeneral.json → FetcherBeatmapRawCacheExpireHours
SERVER_URLgeneral.json → ServerUrl
ENABLE_RX / ENABLE_OSU_RXgame.json → EnableRelax
ENABLE_AP / ENABLE_OSU_APgame.json → EnableAutopilot
ENABLE_ALL_BEATMAP_LEADERBOARDgame.json → EnableAllBeatmapLeaderboard
SENTRY_DSNrealtime.json → Sentry.Dsn
STORAGE_SERVICEstorage.json → Type
STORAGE_SETTINGSstorage.json → Options

Usage ​

  1. Paste the content of your v1 server's .env into the input box above, or use "Upload file" to pick the .env file (you can also click "Load sample" to try it out first).
  2. Review the generated JSON files (general.json, game.json, realtime.json, chat.json, storage.json).
  3. 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 ​

  • UseLegacyDatabase in general.json defaults to true (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 in PostgresqlConnectionString.
  • REDIS_URL is converted into the host:port format that v2 expects (the redis:// 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 in chat.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.json is 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.

Released under the MIT License