RiiTag-Next
RiiTag-Next copied to clipboard
A customizable Gamertag for Wii, Wii U and more! Now powered by Next.js.
RiiTag Next
This is RiiTag rewritten in Next.js.
Features
- Customizable Gamertag with a lot of options like backgrounds, fonts, etc.
- Automatically updating the tag works for Wii, Wii U, Cemu and Citra
- Game Leaderboards
- Collect coins when you play a game and show everyone what you have been playing!
- Shows every game with a cover from GameTDB
Requirements
- NodeJS v16+
- MySQL or MariaDB database
-
Sharpii .NET Core in
PATH
assharpii
- Active internet connection
Developing
-
git clone https://github.com/...
-
npm i
- Copy
.env
to.env.development.local
and fill it in (at leastDATABASE_URL
andIRON_SECRET
, see table below) -
npm run dev:db-reset
-
npm run dev:start
- If you have changed the db scheme, create a migration with
npm run dev:db-create-migration
Deploy
- Copy
.env
to.env.production.local
and fill it in according to the table below -
npm ci --production
-
npm run prod:migrate
-
npm run prod:build
-
./node_modules/.bin/next start -p PORT
In the "deploy
" folder you can find configuration files for NGINX, Caddy and Systemd.
Update
-
git pull
-
npm ci --production
-
npm run prod:migrate
-
npm run prod:build
OAuth Setup
Discord
- Visit https://discord.com/developers/applications
- Create an application and edit it
- Select "OAuth2" in the sidebar
- Here you can find your Client ID and Secret
- Add as a redirect:
http://localhost:3000/api/auth/login/discord
plus the equivalent production URL
Administration notes
You can set yourself as an administrator by chaing the "role" column to "admin" for your user. This will unlock an administration panel where you can add Terms of Services, a Privacy Policy and update the GameTDB titles list.
Environment Variables
Key | Description | Example |
---|---|---|
NEXT_PUBLIC_BASE_URL | Base URL of your instance | https://tag.example.com |
DATABASE_URL | Connection String | mysql://USER:[email protected]:3306/DATABASE |
IRON_SECRET | Secret for Iron to encrypt the cookie | stringwithatleast64chars |
DISCORD_CLIENT_ID | Discord Client ID | |
DISCORD_CLIENT_SECRET | Discord Client Secret | |
WEBPACK_ANALYZE | Runs Webpack Analyzer on start | true |
NEXT_PUBLIC_LOGGING_LEVEL | Logging Level | TRACE, DEBUG, INFO, WARNING, ERROR or CRITICAL |
NEXT_PUBLIC_STAGING | If the instance is a staging instance where data may be deleted | true |