A asset hosting platform for Beat Saber.
To run the server, you must have a instance of PostgreSQL & a database ready for the server to use. If you do not provide Discord OAuth2 credentials, the server will disable authentication and will not allow sign-ins. The importer also requires a Discord bot token in order to make API requests to get users when running the ModelSaber importer.
- Pull the frontend and backend images.
- Look at the
docker-compose.example.ymlfile for an example of how to set up the server with Docker Compose. - Copy the
docker-compose.example.ymlfile todocker-compose.ymland fill in the environment variables. - Run
docker-compose up -dto start the server.
Both the frontend and backend use yarn as their package manager. You can start both by running yarn dev in their respective folders.
- Clone the repository.
- Navigate to the
backendfolder. - Install the dependencies using
yarn. - Copy the
.default.envfile to.envand fill in the environment variables. - Navigate to the
frontendfolder. - Install the dependencies using
yarn. - Copy the
.default.envfile to.env.
The backend server stores all of its data in a folder called storage. If you are using docker, this folder is located at /app/storage. If you are running the server locally, it is located in the root directory of the backend folder (same folder that build & src are).
The frontend uses Inlang/Paraglide for translations. All translation files are located in frontend/src/lib/paraglide/messages/. Translations are built when running yarn install in the frontend folder, but you can also run yarn i18n to rebuild them.
The backend uses Vitest for testing. Test files are located in the test folder. You can run the tests by executing yarn test in the backend folder. Docker is required for running the tests as it relies on a PostgreSQL container.